Phil Race wrote:
I'm not sure at which level you (or rather XRender) are caching the
glyphs. You can certainly cache the glyph images, as we do for
OGL/D3D (see AccelGlyphCache.c), but I don't see how you could (or
would want to) cache position information, etc.
It makes sense to do the same as OGL, if you can. Note that the
GlyphInfo struct has a field "struct _CacheCellInfo *cellInfo" which
is used by OGL/D3D so that if the glyph is freed, it knows to tell the
OGL/D3D and in Clemen's case, XRender cache to free it too.
As Chris says, see AccelGlyphCache.c.
This presumes that XRender and OpenGL aren't both in use at
the same time, which I expect will be true, otherwise they'd
be fighting over that field.
In 6u10 the AccelGlyph has been improved to support multiple caches
per glyph. For example, for the D3D pipeline the same glyph
can be cached in a textures per screen (since each d3d device
has its own cache).
When this code makes it to openjdk it will make it possible to have
both opengl and xrender caches at the same time.
Thanks,
Dmitri