diff --git a/stepmania/src/BitmapText.cpp b/stepmania/src/BitmapText.cpp index f3b53550ec..1e358fe024 100644 --- a/stepmania/src/BitmapText.cpp +++ b/stepmania/src/BitmapText.cpp @@ -482,7 +482,7 @@ void BitmapText::DrawPrimitives() /* render the glow pass */ if( m_pTempState->glow.a > 0.0001f ) { - DISPLAY->SetTextureModeGlow(m_pTempState->glowmode); + DISPLAY->SetTextureModeGlow(); for( unsigned i=0; iglow; diff --git a/stepmania/src/RageDisplay.h b/stepmania/src/RageDisplay.h index 36450bf21b..22a07e4383 100644 --- a/stepmania/src/RageDisplay.h +++ b/stepmania/src/RageDisplay.h @@ -184,7 +184,7 @@ public: virtual int GetNumTextureUnits() = 0; virtual void SetTexture( int iTextureUnitIndex, RageTexture* pTexture ) = 0; virtual void SetTextureModeModulate() = 0; - virtual void SetTextureModeGlow( GlowMode m=GLOW_WHITEN ) = 0; + virtual void SetTextureModeGlow() = 0; virtual void SetTextureModeAdd() = 0; virtual void SetTextureWrapping( bool b ) = 0; virtual int GetMaxTextureSize() const = 0; diff --git a/stepmania/src/RageDisplay_D3D.cpp b/stepmania/src/RageDisplay_D3D.cpp index 576c68e3eb..9ec9819064 100644 --- a/stepmania/src/RageDisplay_D3D.cpp +++ b/stepmania/src/RageDisplay_D3D.cpp @@ -999,7 +999,7 @@ void RageDisplay_D3D::SetTextureModeModulate() g_pd3dDevice->SetTextureStageState( g_iCurrentTextureIndex, D3DTSS_ALPHAOP, D3DTOP_MODULATE ); } -void RageDisplay_D3D::SetTextureModeGlow(GlowMode m) +void RageDisplay_D3D::SetTextureModeGlow() { if( g_iCurrentTextureIndex >= (int) g_DeviceCaps.MaxSimultaneousTextures ) // not supported return; diff --git a/stepmania/src/RageDisplay_D3D.h b/stepmania/src/RageDisplay_D3D.h index bbc12f0ec4..9c3c77217c 100644 --- a/stepmania/src/RageDisplay_D3D.h +++ b/stepmania/src/RageDisplay_D3D.h @@ -33,7 +33,7 @@ public: int GetNumTextureUnits(); void SetTexture( int iTextureUnitIndex, RageTexture* pTexture ); void SetTextureModeModulate(); - void SetTextureModeGlow( GlowMode m=GLOW_WHITEN ); + void SetTextureModeGlow(); void SetTextureModeAdd(); void SetTextureWrapping( bool b ); int GetMaxTextureSize() const; diff --git a/stepmania/src/RageDisplay_Null.h b/stepmania/src/RageDisplay_Null.h index 510ea61d49..685325a022 100644 --- a/stepmania/src/RageDisplay_Null.h +++ b/stepmania/src/RageDisplay_Null.h @@ -31,7 +31,7 @@ public: int GetNumTextureUnits() { return 1; } void SetTexture( int iTextureUnitIndex, RageTexture* pTexture ) { } void SetTextureModeModulate() { } - void SetTextureModeGlow( GlowMode m=GLOW_WHITEN ) { } + void SetTextureModeGlow() { } void SetTextureModeAdd() { } void SetTextureWrapping( bool b ) { } int GetMaxTextureSize() const { return 2048; } diff --git a/stepmania/src/RageDisplay_OGL.cpp b/stepmania/src/RageDisplay_OGL.cpp index 3d13238a56..6441a3b5d3 100644 --- a/stepmania/src/RageDisplay_OGL.cpp +++ b/stepmania/src/RageDisplay_OGL.cpp @@ -1344,31 +1344,27 @@ void RageDisplay_OGL::SetTextureModeModulate() glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); } -void RageDisplay_OGL::SetTextureModeGlow(GlowMode m) +void RageDisplay_OGL::SetTextureModeGlow() { - if(m == GLOW_WHITEN && !g_bEXT_texture_env_combine) - m = GLOW_BRIGHTEN; /* we can't do GLOW_WHITEN */ - - switch(m) + if( !g_bEXT_texture_env_combine ) { - case GLOW_BRIGHTEN: + /* This is changing blend state, instead of texture state, which isn't + * great, but it's better than doing nothing. */ glBlendFunc( GL_SRC_ALPHA, GL_ONE ); return; - - case GLOW_WHITEN: - /* Source color is the diffuse color only: */ - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_COMBINE_RGB_EXT), GL_REPLACE); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE0_RGB_EXT), GL_PRIMARY_COLOR_EXT); - - /* Source alpha is texture alpha * diffuse alpha: */ - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_COMBINE_ALPHA_EXT), GL_MODULATE); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_OPERAND0_ALPHA_EXT), GL_SRC_ALPHA); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE0_ALPHA_EXT), GL_PRIMARY_COLOR_EXT); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_OPERAND1_ALPHA_EXT), GL_SRC_ALPHA); - glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE1_ALPHA_EXT), GL_TEXTURE); - return; } + + /* Source color is the diffuse color only: */ + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_COMBINE_RGB_EXT), GL_REPLACE); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE0_RGB_EXT), GL_PRIMARY_COLOR_EXT); + + /* Source alpha is texture alpha * diffuse alpha: */ + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_COMBINE_ALPHA_EXT), GL_MODULATE); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_OPERAND0_ALPHA_EXT), GL_SRC_ALPHA); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE0_ALPHA_EXT), GL_PRIMARY_COLOR_EXT); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_OPERAND1_ALPHA_EXT), GL_SRC_ALPHA); + glTexEnvi(GL_TEXTURE_ENV, GLenum(GL_SOURCE1_ALPHA_EXT), GL_TEXTURE); } void RageDisplay_OGL::SetTextureModeAdd() diff --git a/stepmania/src/RageDisplay_OGL.h b/stepmania/src/RageDisplay_OGL.h index a4547cef18..f3cbbe525b 100644 --- a/stepmania/src/RageDisplay_OGL.h +++ b/stepmania/src/RageDisplay_OGL.h @@ -34,7 +34,7 @@ public: int GetNumTextureUnits(); void SetTexture( int iTextureUnitIndex, RageTexture* pTexture ); void SetTextureModeModulate(); - void SetTextureModeGlow( GlowMode m=GLOW_WHITEN ); + void SetTextureModeGlow(); void SetTextureModeAdd(); void SetTextureWrapping( bool b ); int GetMaxTextureSize() const; diff --git a/stepmania/src/Sprite.cpp b/stepmania/src/Sprite.cpp index 2a08252bdc..f407c315ea 100644 --- a/stepmania/src/Sprite.cpp +++ b/stepmania/src/Sprite.cpp @@ -511,7 +511,7 @@ void Sprite::DrawTexture( const TweenState *state ) ////////////////////// if( state->glow.a > 0.0001f ) { - DISPLAY->SetTextureModeGlow(state->glowmode); + DISPLAY->SetTextureModeGlow(); v[0].c = v[1].c = v[2].c = v[3].c = state->glow; DISPLAY->DrawQuad( v ); }