--- deliantra/Deliantra-Client/pango-render.c 2007/08/11 11:28:03 1.7 +++ deliantra/Deliantra-Client/pango-render.c 2007/08/11 11:32:29 1.8 @@ -220,10 +220,10 @@ renderer->arr = rc_array (renderer->rc, &renderer->key); } - rc_t2f_v3f (x1, y1, x , y , 0); - rc_t2f_v3f (x2, y1, x + g->tex.w, y , 0); - rc_t2f_v3f (x2, y2, x + g->tex.w, y + g->tex.h, 0); - rc_t2f_v3f (x1, y2, x , y + g->tex.h, 0); + rc_t2f_v3f (renderer->arr, x1, y1, x , y , 0); + rc_t2f_v3f (renderer->arr, x2, y1, x + g->tex.w, y , 0); + rc_t2f_v3f (renderer->arr, x2, y2, x + g->tex.w, y + g->tex.h, 0); + rc_t2f_v3f (renderer->arr, x1, y2, x , y + g->tex.h, 0); } static void @@ -246,10 +246,10 @@ arr = rc_array (renderer->rc, &key); - rc_v2f (x11, y1); - rc_v2f (x21, y1); - rc_v2f (x22, y2); - rc_v2f (x12, y2); + rc_v2f (arr, x11, y1); + rc_v2f (arr, x21, y1); + rc_v2f (arr, x22, y2); + rc_v2f (arr, x12, y2); } void @@ -261,18 +261,23 @@ PangoContext *context; PangoFontMap *fontmap; PangoRenderer *renderer; + PangoOpenGLRenderer *gl; context = pango_layout_get_context (layout); fontmap = pango_context_get_font_map (context); renderer = _pango_opengl_font_map_get_renderer (PANGO_OPENGL_FONT_MAP (fontmap)); + gl = PANGO_OPENGL_RENDERER (renderer); - PANGO_OPENGL_RENDERER (renderer)->r = r; - PANGO_OPENGL_RENDERER (renderer)->g = g; - PANGO_OPENGL_RENDERER (renderer)->b = b; - PANGO_OPENGL_RENDERER (renderer)->a = a; - PANGO_OPENGL_RENDERER (renderer)->flags = flags; + gl->rc = rc_alloc (); + gl->r = r; + gl->g = g; + gl->b = b; + gl->a = a; + gl->flags = flags; pango_renderer_draw_layout (renderer, layout, x, y); + + rc_free (gl->rc); } void @@ -306,9 +311,9 @@ renderer->underline = PANGO_UNDERLINE_NONE; renderer->strikethrough = FALSE; - renderer->key.mode = GL_QUADS; - renderer->key.format = GL_T2F_V2F; - renderer->key.texname = 0; + glrenderer->key.mode = GL_QUADS; + glrenderer->key.format = GL_T2F_V3F; + glrenderer->key.texname = 0; for (l = run->item->analysis.extra_attrs; l; l = l->next) { @@ -355,10 +360,10 @@ b ^= 0xffU; } - renderer->key.r = r; - renderer->key.g = g; - renderer->key.b = b; - renderer->key.a = a; + glrenderer->key.r = r; + glrenderer->key.g = g; + glrenderer->key.b = b; + glrenderer->key.a = a; } static void