glamor: Add the glyph cache from UXA (de-camelCased).

This doesn't yet have an optimized glamor_composite_rects()
implementation, but it does triple the speed of x11perf -aa10text.
This commit is contained in:
Eric Anholt 2010-02-09 23:17:09 -06:00 • committed by Zhigang Gong
commit f4a3194837
5 changed files with 975 additions and 0 deletions

View file

@ -222,6 +222,8 @@ glamor_init(ScreenPtr screen)
ps->Composite = glamor_composite;
glamor_priv->saved_trapezoids = ps->Trapezoids;
ps->Trapezoids = glamor_trapezoids;
glamor_priv->saved_glyphs = ps->Glyphs;
ps->Glyphs = glamor_glyphs;
#endif
glamor_init_solid_shader(screen);
@ -230,6 +232,8 @@ glamor_init(ScreenPtr screen)
glamor_init_composite_shaders(screen);
glamor_init_finish_access_shaders(screen);
glamor_glyphs_init(screen);
return TRUE;
fail:
@ -246,6 +250,8 @@ glamor_fini(ScreenPtr screen)
PictureScreenPtr ps = GetPictureScreenIfSet(screen);
#endif
glamor_glyphs_fini(screen);
screen->CreateGC = glamor_priv->saved_create_gc;
screen->CreatePixmap = glamor_priv->saved_create_pixmap;
screen->DestroyPixmap = glamor_priv->saved_destroy_pixmap;
@ -255,5 +261,7 @@ glamor_fini(ScreenPtr screen)
screen->BitmapToRegion = glamor_priv->saved_bitmap_to_region;
#ifdef RENDER
ps->Composite = glamor_priv->saved_composite;
ps->Trapezoids = glamor_priv->saved_trapezoids;
ps->Glyphs = glamor_priv->saved_glyphs;
#endif
}