diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-01-16 20:04:46 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-01-16 20:13:23 +0400 |
commit | a780e7f3f09ffec99600a518a17b219b5aaee2c6 (patch) | |
tree | b6cc469fa8c76d61477ea3182a4e819653a7c4d4 /source/blender/blenfont/intern | |
parent | de28a4d4b2c9397c5233a5ee1dbf1400f450a15c (diff) |
BLF: Fix for changing the DPI storing many fonts (300+)
Each dpi value stores its own set of font sizes, so while dragging the
dpi value would collect many sizes and never free.
Also change how BLF_cache_clear works,
it was freeing memory but not the OpenGL textures.
Now just free all the cache and GL textures and let drawing allocate them again as needed.
Diffstat (limited to 'source/blender/blenfont/intern')
-rw-r--r-- | source/blender/blenfont/intern/blf_glyph.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c index 637f534563f..248c645edc0 100644 --- a/source/blender/blenfont/intern/blf_glyph.c +++ b/source/blender/blenfont/intern/blf_glyph.c @@ -121,17 +121,9 @@ GlyphCacheBLF *blf_glyph_cache_new(FontBLF *font) void blf_glyph_cache_clear(FontBLF *font) { GlyphCacheBLF *gc; - GlyphBLF *g; - int i; - - for (gc = font->cache.first; gc; gc = gc->next) { - for (i = 0; i < 257; i++) { - while ((g = BLI_pophead(&gc->bucket[i]))) { - blf_glyph_free(g); - } - } - memset(gc->glyph_ascii_table, 0, sizeof(gc->glyph_ascii_table)); + while ((gc = BLI_pophead(&font->cache))) { + blf_glyph_cache_free(gc); } } |