Changeset - r23357:ee1931a5afcf
[Not reviewed]
master
0 3 0
PeterN - 5 years ago 2019-02-24 16:27:44
peter@fuzzle.org
Fix #7266: Reorder reinitialization of caches when changing font zoom level. (#7273)
3 files changed with 7 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/fontcache.cpp
Show inline comments
 
@@ -421,6 +421,9 @@ FreeTypeFontCache::~FreeTypeFontCache()
 
 */
 
void FreeTypeFontCache::ClearFontCache()
 
{
 
	/* Font scaling might have changed, determine font size anew if it was automatically selected. */
 
	if (this->face != NULL) this->SetFontSize(this->fs, this->face, this->req_size);
 

	
 
	if (this->glyph_to_sprite == NULL) return;
 

	
 
	for (int i = 0; i < 256; i++) {
 
@@ -438,9 +441,6 @@ void FreeTypeFontCache::ClearFontCache()
 
	this->glyph_to_sprite = NULL;
 

	
 
	Layouter::ResetFontCache(this->fs);
 

	
 
	/* GUI scaling might have changed, determine font size anew if it was automatically selected. */
 
	if (this->face != NULL) this->SetFontSize(this->fs, this->face, this->req_size);
 
}
 

	
 
FreeTypeFontCache::GlyphEntry *FreeTypeFontCache::GetGlyphPtr(GlyphID key)
src/gfx.cpp
Show inline comments
 
@@ -1131,13 +1131,14 @@ TextColour GetContrastColour(uint8 backg
 
 */
 
void LoadStringWidthTable(bool monospace)
 
{
 
	ClearFontCache();
 

	
 
	for (FontSize fs = monospace ? FS_MONO : FS_BEGIN; fs < (monospace ? FS_END : FS_MONO); fs++) {
 
		for (uint i = 0; i != 224; i++) {
 
			_stringwidth_table[fs][i] = GetGlyphWidth(fs, i + 32);
 
		}
 
	}
 

	
 
	ClearFontCache();
 
	ReInitAllWindows();
 
}
 

	
src/settings_gui.cpp
Show inline comments
 
@@ -556,16 +556,15 @@ struct GameOptionsWindow : Window {
 
				GfxClearSpriteCache();
 
				_gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index);
 
				UpdateCursorSize();
 
				LoadStringWidthTable();
 
				UpdateAllVirtCoords();
 
				ReInitAllWindows();
 
				break;
 

	
 
			case WID_GO_FONT_ZOOM_DROPDOWN:
 
				GfxClearSpriteCache();
 
				_font_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index);
 
				ClearFontCache();
 
				LoadStringWidthTable();
 
				UpdateAllVirtCoords();
 
				ReInitAllWindows();
 
				break;
 

	
 
			case WID_GO_BASE_GRF_DROPDOWN:
0 comments (0 inline, 0 general)