mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
- Added preloading of fonts to reduce the chance that characters from a single
font will require more than one hardware texture to display. SVN r717 (trunk)
This commit is contained in:
parent
4c9d633a94
commit
499fefec07
4 changed files with 52 additions and 0 deletions
|
@ -1,4 +1,6 @@
|
||||||
January 26, 2008
|
January 26, 2008
|
||||||
|
- Added preloading of fonts to reduce the chance that characters from a single
|
||||||
|
font will require more than one hardware texture to display.
|
||||||
- Fixed: P_RailAttack() crashed if you didn't specify a puff for a rail.
|
- Fixed: P_RailAttack() crashed if you didn't specify a puff for a rail.
|
||||||
- Decided that allowing arbitrary alpha values for color remaps isn't so hot.
|
- Decided that allowing arbitrary alpha values for color remaps isn't so hot.
|
||||||
Changed it back the way it was.
|
Changed it back the way it was.
|
||||||
|
|
|
@ -741,6 +741,50 @@ int FFont::GetCharWidth (int code) const
|
||||||
return Chars[code - FirstChar].Pic->GetScaledWidth();
|
return Chars[code - FirstChar].Pic->GetScaledWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// FFont :: Preload
|
||||||
|
//
|
||||||
|
// Loads most of the 7-bit ASCII characters. In the case of D3DFB, this
|
||||||
|
// means all the characters of a font have a better chance of being packed
|
||||||
|
// into the same hardware texture.
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
void FFont::Preload() const
|
||||||
|
{
|
||||||
|
// First and last char are the same? Wait until it's actually needed
|
||||||
|
// since nothing is gained by preloading now.
|
||||||
|
if (FirstChar == LastChar)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = MAX(FirstChar, 0x21); i < MIN(LastChar, 0x7e); ++i)
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
FTexture *pic = GetChar(i, &foo);
|
||||||
|
if (pic != NULL)
|
||||||
|
{
|
||||||
|
pic->GetNative(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
// FFont :: StaticPreloadFonts
|
||||||
|
//
|
||||||
|
// Preloads all the defined fonts.
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
void FFont::StaticPreloadFonts()
|
||||||
|
{
|
||||||
|
for (FFont *font = FirstFont; font != NULL; font = font->Next)
|
||||||
|
{
|
||||||
|
font->Preload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -91,8 +91,10 @@ public:
|
||||||
int GetSpaceWidth () const { return SpaceWidth; }
|
int GetSpaceWidth () const { return SpaceWidth; }
|
||||||
int GetHeight () const { return FontHeight; }
|
int GetHeight () const { return FontHeight; }
|
||||||
int GetDefaultKerning () const { return GlobalKerning; }
|
int GetDefaultKerning () const { return GlobalKerning; }
|
||||||
|
void Preload() const;
|
||||||
|
|
||||||
static FFont *FindFont (const char *fontname);
|
static FFont *FindFont (const char *fontname);
|
||||||
|
static void StaticPreloadFonts();
|
||||||
|
|
||||||
// Return width of string in pixels (unscaled)
|
// Return width of string in pixels (unscaled)
|
||||||
int StringWidth (const BYTE *str) const;
|
int StringWidth (const BYTE *str) const;
|
||||||
|
|
|
@ -1386,6 +1386,10 @@ bool V_DoModeSetup (int width, int height, int bits)
|
||||||
screen->SetFont (SmallFont);
|
screen->SetFont (SmallFont);
|
||||||
screen->SetGamma (Gamma);
|
screen->SetGamma (Gamma);
|
||||||
|
|
||||||
|
// Load fonts now so they can be packed into textures straight away,
|
||||||
|
// if D3DFB is being used for the display.
|
||||||
|
FFont::StaticPreloadFonts();
|
||||||
|
|
||||||
{
|
{
|
||||||
int ratio;
|
int ratio;
|
||||||
int cwidth;
|
int cwidth;
|
||||||
|
|
Loading…
Reference in a new issue