ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/pango-render.c
(Generate patch)

Comparing deliantra/Deliantra-Client/pango-render.c (file contents):
Revision 1.10 by root, Sat Aug 11 12:07:54 2007 UTC vs.
Revision 1.12 by root, Mon Aug 13 15:31:21 2007 UTC

164static void 164static void
165draw_glyph (PangoRenderer *renderer_, PangoFont *font, PangoGlyph glyph, double x, double y) 165draw_glyph (PangoRenderer *renderer_, PangoFont *font, PangoGlyph glyph, double x, double y)
166{ 166{
167 PangoOpenGLRenderer *renderer = PANGO_OPENGL_RENDERER (renderer_); 167 PangoOpenGLRenderer *renderer = PANGO_OPENGL_RENDERER (renderer_);
168 glyph_info *g; 168 glyph_info *g;
169 float x1, y1, x2, y2;
170 169
171 if (glyph & PANGO_GLYPH_UNKNOWN_FLAG) 170 if (glyph & PANGO_GLYPH_UNKNOWN_FLAG)
172 { 171 {
173 glyph = pango_opengl_get_unknown_glyph (font); 172 glyph = pango_opengl_get_unknown_glyph (font);
174 173
207 } 206 }
208 207
209 x += g->left; 208 x += g->left;
210 y -= g->top; 209 y -= g->top;
211 210
212 x1 = g->tex.x * (1. / TC_WIDTH );
213 y1 = g->tex.y * (1. / TC_HEIGHT);
214 x2 = g->tex.w * (1. / TC_WIDTH ) + x1;
215 y2 = g->tex.h * (1. / TC_HEIGHT) + y1;
216
217 if (g->tex.name != renderer->key.texname) 211 if (g->tex.name != renderer->key.texname)
218 { 212 {
219 renderer->key.texname = g->tex.name; 213 renderer->key.texname = g->tex.name;
220 renderer->arr = rc_array (renderer->rc, &renderer->key); 214 renderer->arr = rc_array (renderer->rc, &renderer->key);
221 } 215 }
222 216
223 rc_t2f_v3f (renderer->arr, x1, y1, x , y , 0); 217 rc_glyph (renderer->arr, g->tex.x, g->tex.y, g->tex.w, g->tex.h, x, y);
224 rc_t2f_v3f (renderer->arr, x2, y1, x + g->tex.w, y , 0);
225 rc_t2f_v3f (renderer->arr, x2, y2, x + g->tex.w, y + g->tex.h, 0);
226 rc_t2f_v3f (renderer->arr, x1, y2, x , y + g->tex.h, 0);
227} 218}
228 219
229static void 220static void
230draw_trapezoid (PangoRenderer *renderer_, 221draw_trapezoid (PangoRenderer *renderer_,
231 PangoRenderPart part, 222 PangoRenderPart part,
312 303
313 renderer->underline = PANGO_UNDERLINE_NONE; 304 renderer->underline = PANGO_UNDERLINE_NONE;
314 renderer->strikethrough = FALSE; 305 renderer->strikethrough = FALSE;
315 306
316 gl->key.mode = GL_QUADS; 307 gl->key.mode = GL_QUADS;
317 gl->key.format = GL_T2F_V3F; 308 gl->key.format = 0; // glyphs
318 gl->key.texname = 0; 309 gl->key.texname = 0;
319 310
320 for (l = run->item->analysis.extra_attrs; l; l = l->next) 311 for (l = run->item->analysis.extra_attrs; l; l = l->next)
321 { 312 {
322 PangoAttribute *attr = l->data; 313 PangoAttribute *attr = l->data;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines