forked from AuroraMiddleware/gtk
gl: Fix glyph cache aging
The logic here seems faulty. We want to keep a timestamp that tells us when the glyph was last used, so always update the timestamp. And whenever we use a glyph, it turns 'young' again, so remove it from the old pixels accounting. The (MAX_AGE, MAX_AGE+CHECK_INTERVAL) interval is only relevant to prevent us from turning a cached glyph old more than once, and that is already taken care of.
This commit is contained in:
parent
3059d76b4c
commit
e0803f039f
@ -308,15 +308,15 @@ gsk_gl_glyph_cache_lookup (GskGLGlyphCache *cache,
|
||||
{
|
||||
const guint age = cache->timestamp - value->timestamp;
|
||||
|
||||
if (MAX_AGE <= age && age < MAX_AGE + CHECK_INTERVAL)
|
||||
if (MAX_AGE <= age)
|
||||
{
|
||||
GskGLGlyphAtlas *atlas = value->atlas;
|
||||
|
||||
if (atlas)
|
||||
atlas->old_pixels -= value->draw_width * value->draw_height;
|
||||
|
||||
value->timestamp = cache->timestamp;
|
||||
}
|
||||
|
||||
value->timestamp = cache->timestamp;
|
||||
}
|
||||
|
||||
if (create && value == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user