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.7 by root, Sat Aug 11 11:28:03 2007 UTC vs.
Revision 1.8 by root, Sat Aug 11 11:32:29 2007 UTC

218 { 218 {
219 renderer->key.texname = g->tex.name; 219 renderer->key.texname = g->tex.name;
220 renderer->arr = rc_array (renderer->rc, &renderer->key); 220 renderer->arr = rc_array (renderer->rc, &renderer->key);
221 } 221 }
222 222
223 rc_t2f_v3f (x1, y1, x , y , 0); 223 rc_t2f_v3f (renderer->arr, x1, y1, x , y , 0);
224 rc_t2f_v3f (x2, y1, x + g->tex.w, y , 0); 224 rc_t2f_v3f (renderer->arr, x2, y1, x + g->tex.w, y , 0);
225 rc_t2f_v3f (x2, y2, x + g->tex.w, y + g->tex.h, 0); 225 rc_t2f_v3f (renderer->arr, x2, y2, x + g->tex.w, y + g->tex.h, 0);
226 rc_t2f_v3f (x1, y2, x , y + g->tex.h, 0); 226 rc_t2f_v3f (renderer->arr, x1, y2, x , y + g->tex.h, 0);
227} 227}
228 228
229static void 229static void
230draw_trapezoid (PangoRenderer *renderer_, 230draw_trapezoid (PangoRenderer *renderer_,
231 PangoRenderPart part, 231 PangoRenderPart part,
244 key.format = GL_V2F; 244 key.format = GL_V2F;
245 key.texname = 0; 245 key.texname = 0;
246 246
247 arr = rc_array (renderer->rc, &key); 247 arr = rc_array (renderer->rc, &key);
248 248
249 rc_v2f (x11, y1); 249 rc_v2f (arr, x11, y1);
250 rc_v2f (x21, y1); 250 rc_v2f (arr, x21, y1);
251 rc_v2f (x22, y2); 251 rc_v2f (arr, x22, y2);
252 rc_v2f (x12, y2); 252 rc_v2f (arr, x12, y2);
253} 253}
254 254
255void 255void
256pango_opengl_render_layout_subpixel (PangoLayout *layout, 256pango_opengl_render_layout_subpixel (PangoLayout *layout,
257 int x, int y, 257 int x, int y,
259 int flags) 259 int flags)
260{ 260{
261 PangoContext *context; 261 PangoContext *context;
262 PangoFontMap *fontmap; 262 PangoFontMap *fontmap;
263 PangoRenderer *renderer; 263 PangoRenderer *renderer;
264 PangoOpenGLRenderer *gl;
264 265
265 context = pango_layout_get_context (layout); 266 context = pango_layout_get_context (layout);
266 fontmap = pango_context_get_font_map (context); 267 fontmap = pango_context_get_font_map (context);
267 renderer = _pango_opengl_font_map_get_renderer (PANGO_OPENGL_FONT_MAP (fontmap)); 268 renderer = _pango_opengl_font_map_get_renderer (PANGO_OPENGL_FONT_MAP (fontmap));
268
269 PANGO_OPENGL_RENDERER (renderer)->r = r; 269 gl = PANGO_OPENGL_RENDERER (renderer);
270 PANGO_OPENGL_RENDERER (renderer)->g = g; 270
271 PANGO_OPENGL_RENDERER (renderer)->b = b; 271 gl->rc = rc_alloc ();
272 PANGO_OPENGL_RENDERER (renderer)->a = a; 272 gl->r = r;
273 PANGO_OPENGL_RENDERER (renderer)->flags = flags; 273 gl->g = g;
274 gl->b = b;
275 gl->a = a;
276 gl->flags = flags;
274 277
275 pango_renderer_draw_layout (renderer, layout, x, y); 278 pango_renderer_draw_layout (renderer, layout, x, y);
279
280 rc_free (gl->rc);
276} 281}
277 282
278void 283void
279pango_opengl_render_layout (PangoLayout *layout, 284pango_opengl_render_layout (PangoLayout *layout,
280 int x, int y, 285 int x, int y,
304 unsigned char r, g, b, a; 309 unsigned char r, g, b, a;
305 310
306 renderer->underline = PANGO_UNDERLINE_NONE; 311 renderer->underline = PANGO_UNDERLINE_NONE;
307 renderer->strikethrough = FALSE; 312 renderer->strikethrough = FALSE;
308 313
309 renderer->key.mode = GL_QUADS; 314 glrenderer->key.mode = GL_QUADS;
310 renderer->key.format = GL_T2F_V2F; 315 glrenderer->key.format = GL_T2F_V3F;
311 renderer->key.texname = 0; 316 glrenderer->key.texname = 0;
312 317
313 for (l = run->item->analysis.extra_attrs; l; l = l->next) 318 for (l = run->item->analysis.extra_attrs; l; l = l->next)
314 { 319 {
315 PangoAttribute *attr = l->data; 320 PangoAttribute *attr = l->data;
316 321
353 r ^= 0xffU; 358 r ^= 0xffU;
354 g ^= 0xffU; 359 g ^= 0xffU;
355 b ^= 0xffU; 360 b ^= 0xffU;
356 } 361 }
357 362
358 renderer->key.r = r; 363 glrenderer->key.r = r;
359 renderer->key.g = g; 364 glrenderer->key.g = g;
360 renderer->key.b = b; 365 glrenderer->key.b = b;
361 renderer->key.a = a; 366 glrenderer->key.a = a;
362} 367}
363 368
364static void 369static void
365draw_begin (PangoRenderer *renderer_) 370draw_begin (PangoRenderer *renderer_)
366{ 371{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines