This commit is contained in:
Glenn Maynard
2005-01-16 20:37:08 +00:00
parent 39384227c4
commit 37fe56a4f7
+22 -9
View File
@@ -11,6 +11,12 @@
#include "Font.h"
#include "ActorUtil.h" // for BeginHandleArgs
/*
* XXX: Changing a whole array of diffuse colors every frame (several times) is a waste,
* when we're usually setting them all to the same value. Rainbow and fading are annoying
* to optimize, but rarely used. Iterating over every character in Draw() is dumb.
*/
/* XXX:
* We need some kind of font modifier string for metrics. For example,
* "valign=top;spacing = x+5,y+2"
@@ -76,7 +82,8 @@ bool BitmapText::LoadFromFont( const CString& sFontFilePath )
{
CHECKPOINT_M( ssprintf("BitmapText::LoadFromFont(%s)", sFontFilePath.c_str()) );
if( m_pFont ) {
if( m_pFont )
{
FONT->UnloadFont( m_pFont );
m_pFont = NULL;
}
@@ -93,7 +100,8 @@ bool BitmapText::LoadFromTextureAndChars( const CString& sTexturePath, const CSt
{
CHECKPOINT_M( ssprintf("BitmapText::LoadFromTextureAndChars(\"%s\",\"%s\")", sTexturePath.c_str(), sChars.c_str()) );
if( m_pFont ) {
if( m_pFont )
{
FONT->UnloadFont( m_pFont );
m_pFont = NULL;
}
@@ -124,7 +132,8 @@ void BitmapText::BuildChars()
verts.clear();
tex.clear();
if(m_wTextLines.empty()) return;
if( m_wTextLines.empty() )
return;
m_size.y = float(m_pFont->GetHeight() * m_wTextLines.size());
int MinSpacing = 0;
@@ -390,13 +399,16 @@ bool BitmapText::StringWillUseAlternate(const CString& sText, const CString& sAl
ASSERT( m_pFont );
/* Can't use the alternate if there isn't one. */
if(!sAlternateText.size()) return false;
if( !sAlternateText.size() )
return false;
/* False if the alternate isn't needed. */
if(m_pFont->FontCompleteForString(CStringToWstring(sText))) return false;
if( m_pFont->FontCompleteForString(CStringToWstring(sText)) )
return false;
/* False if the alternate is also incomplete. */
if(!m_pFont->FontCompleteForString(CStringToWstring(sAlternateText))) return false;
if( !m_pFont->FontCompleteForString(CStringToWstring(sAlternateText)) )
return false;
return true;
}
@@ -425,7 +437,6 @@ bool BitmapText::EarlyAbortDraw()
// draw text at x, y using colorTop blended down to colorBottom, with size multiplied by scale
void BitmapText::DrawPrimitives()
{
Actor::SetRenderStates(); // set Actor-specified render states
DISPLAY->SetTextureModeModulate();
@@ -492,14 +503,16 @@ void BitmapText::DrawPrimitives()
/* Rebuild when these change. */
void BitmapText::SetHorizAlign( HorizAlign ha )
{
if(ha == m_HorizAlign) return;
if( ha == m_HorizAlign )
return;
Actor::SetHorizAlign(ha);
BuildChars();
}
void BitmapText::SetVertAlign( VertAlign va )
{
if(va == m_VertAlign) return;
if( va == m_VertAlign )
return;
Actor::SetVertAlign(va);
BuildChars();
}