add StrokeIsUnder font option

This commit is contained in:
Chris Danford
2008-05-05 22:34:34 +00:00
parent 2ed5c7eff8
commit 4d30695f08
3 changed files with 26 additions and 7 deletions
+22 -7
View File
@@ -517,6 +517,18 @@ bool BitmapText::EarlyAbortDraw() const
return m_wTextLines.empty();
}
#define DRAW_STROKE \
bool bUsingStrokeTexture = !!m_vpFontPageTextures[0]->m_pTextureStroke; \
if( bUsingStrokeTexture && m_StrokeColor.a > 0 ) \
{ \
RageColor c = m_StrokeColor; \
c.a *= m_pTempState->diffuse[0].a; \
for( unsigned i=0; i<m_aVertices.size(); i++ ) \
m_aVertices[i].c = c; \
DrawChars( true ); \
}
// draw text at x, y using colorTop blended down to colorBottom, with size multiplied by scale
void BitmapText::DrawPrimitives()
{
@@ -543,6 +555,14 @@ void BitmapText::DrawPrimitives()
DISPLAY->PopMatrix();
}
//
// render the stroke
//
if( m_pFont->GetStrokeIsUnder() )
{
DRAW_STROKE;
}
//
// render the diffuse pass
//
@@ -633,14 +653,9 @@ void BitmapText::DrawPrimitives()
//
// render the stroke
//
bool bUsingStrokeTexture = !!m_vpFontPageTextures[0]->m_pTextureStroke;
if( bUsingStrokeTexture && m_StrokeColor.a > 0 )
if( !m_pFont->GetStrokeIsUnder() )
{
RageColor c = m_StrokeColor;
c.a *= m_pTempState->diffuse[0].a;
for( unsigned i=0; i<m_aVertices.size(); i++ )
m_aVertices[i].c = c;
DrawChars( true );
DRAW_STROKE;
}
}
+2
View File
@@ -230,6 +230,7 @@ Font::Font()
m_bRightToLeft = false;
m_fFontBaseZoom = 1;
m_DefaultStrokeColor = RageColor(1,1,1,1);
m_bStrokeIsUnder = true;
}
Font::~Font()
@@ -695,6 +696,7 @@ void Font::Load( const RString &sIniPath, RString sChars )
RString s;
if( ini.GetValue( "main", "DefaultStrokeColor", s ) )
m_DefaultStrokeColor.FromString( s );
ini.GetValue( "main", "StrokeIsUnder", m_bStrokeIsUnder );
}
{
+2
View File
@@ -149,6 +149,7 @@ public:
bool IsRightToLeft() const { return m_bRightToLeft; };
float GetFontBaseZoom() const { return m_fFontBaseZoom; };
const RageColor &GetDefaultStrokeColor() const { return m_DefaultStrokeColor; };
const bool GetStrokeIsUnder() const { return m_bStrokeIsUnder; };
private:
/* List of pages and fonts that we use (and are responsible for freeing). */
@@ -169,6 +170,7 @@ private:
float m_fFontBaseZoom;
RageColor m_DefaultStrokeColor;
bool m_bStrokeIsUnder; // draw stroke under if true, over if false
/* We keep this around only for reloading. */
RString m_sChars;