Add TextureHints font metric.

By default, load fonts as 4-bit grayscale, 4-bit alpha (I4A4) maps.
This halves font texture memory usage.
This commit is contained in:
Glenn Maynard
2003-10-08 02:54:40 +00:00
parent 93653882ef
commit a37668e44e
2 changed files with 13 additions and 3 deletions
+9 -1
View File
@@ -39,7 +39,14 @@ void FontPage::Load( FontPageSettings cfg )
// load texture
RageTextureID ID(m_sTexturePath);
ID.iColorDepth = 16;
if( cfg.TextureHints != "default" )
ID.AdditionalTextureHints = cfg.TextureHints;
else
{
/* Using grayscale and 16bpp together means to use a 16bpp image if a grayscale
* image couldn't be loaded. */
ID.AdditionalTextureHints = "grayscale 16bpp";
}
m_pTexture = TEXTUREMAN->LoadTexture( ID );
ASSERT( m_pTexture != NULL );
@@ -484,6 +491,7 @@ void Font::LoadFontPageSettings(FontPageSettings &cfg, IniFile &ini, const CStri
ini.GetValue( PageName, "Baseline", cfg.Baseline );
ini.GetValue( PageName, "DefaultWidth", cfg.DefaultWidth );
ini.GetValue( PageName, "AdvanceExtraPixels", cfg.AdvanceExtraPixels );
ini.GetValue( PageName, "TextureHints", cfg.TextureHints );
/* Iterate over all keys. */
const IniFile::key *k = ini.GetKey(PageName);
+4 -2
View File
@@ -48,7 +48,8 @@ struct FontPageSettings
DefaultWidth,
AdvanceExtraPixels;
float ScaleAllWidthsBy;
CString TextureHints;
map<longchar,int> CharToGlyphNo;
/* If a value is missing, the width of the texture frame is used. */
map<int,int> GlyphWidths;
@@ -61,7 +62,8 @@ struct FontPageSettings
Baseline(-1),
DefaultWidth(-1),
AdvanceExtraPixels(1),
ScaleAllWidthsBy(1)
ScaleAllWidthsBy(1),
TextureHints("default")
{ }
/* Map a range from a character map to glyphs. If cnt is -1, map the