Maelstrom: Added support for hi-res fonts

https://github.com/libsdl-org/Maelstrom/commit/00090e866f7c181ebbd72eba643697efbb77c9ed

From 00090e866f7c181ebbd72eba643697efbb77c9ed Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 22 Oct 2012 23:20:16 -0700
Subject: [PATCH] Added support for hi-res fonts

---
 game/MaelstromUI.cpp       | 9 +++++++--
 screenlib/UIDrawEngine.cpp | 4 ++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/game/MaelstromUI.cpp b/game/MaelstromUI.cpp
index c02063ab..42302359 100644
--- a/game/MaelstromUI.cpp
+++ b/game/MaelstromUI.cpp
@@ -127,6 +127,11 @@ MaelstromUI::CreateText(const char *text, const char *fontName, int fontSize, UI
 	char *key;
 	int keysize;
 	SDL_Texture *texture;
+	float logicalScale;
+
+	/* Adjust the font size by our logical scale */
+	logicalScale = m_screen->GetLogicalScale();
+	fontSize = (int)(fontSize * logicalScale);
 
 	/* First see if we can find it in our cache */
 	keysize = strlen(fontName)+1+2+1+1+1+8+1+strlen(text)+1;
@@ -134,7 +139,7 @@ MaelstromUI::CreateText(const char *text, const char *fontName, int fontSize, UI
 	SDL_snprintf(key, keysize, "%s:%d:%c:%8.8x:%s", fontName, fontSize, '0'+fontStyle, color, text);
 	if (hash_find(m_strings, key, (const void**)&texture)) {
 		SDL_stack_free(key);
-		return new UITexture(texture);
+		return new UITexture(texture, logicalScale);
 	}
 
 	font = GetFont(fontName, fontSize);
@@ -165,7 +170,7 @@ MaelstromUI::CreateText(const char *text, const char *fontName, int fontSize, UI
 	}
 	SDL_stack_free(key);
 
-	return new UITexture(texture);
+	return new UITexture(texture, logicalScale);
 }
 
 void 
diff --git a/screenlib/UIDrawEngine.cpp b/screenlib/UIDrawEngine.cpp
index 29402f0c..cd7dad94 100644
--- a/screenlib/UIDrawEngine.cpp
+++ b/screenlib/UIDrawEngine.cpp
@@ -139,12 +139,12 @@ UIDrawEngine::OnDraw()
 			m_screen->GetRGB(m_element->GetTextShadowColor(), &r, &g, &b);
 			SDL_SetTextureColorMod(m_textImage->Texture(), r, g, b);
 
-			m_screen->QueueBlit(m_textImage->Texture(), area->X()+x, area->Y()+y, NOCLIP);
+			m_screen->QueueBlit(m_textImage->Texture(), area->X()+x, area->Y()+y, area->Width(), area->Height(), NOCLIP);
 
 			m_screen->GetRGB(m_element->GetCurrentColor(), &r, &g, &b);
 			SDL_SetTextureColorMod(m_textImage->Texture(), r, g, b);
 		}
-		m_screen->QueueBlit(m_textImage->Texture(), area->X(), area->Y(), NOCLIP);
+		m_screen->QueueBlit(m_textImage->Texture(), area->X(), area->Y(), area->Width(), area->Height(), NOCLIP);
 	}
 }