merge SetTextureMode functions

This commit is contained in:
Glenn Maynard
2007-02-13 04:02:08 +00:00
parent d7833bb019
commit 4b707da08b
6 changed files with 67 additions and 75 deletions
+4 -3
View File
@@ -203,9 +203,10 @@ public:
virtual void ClearAllTextures() = 0; virtual void ClearAllTextures() = 0;
virtual int GetNumTextureUnits() = 0; virtual int GetNumTextureUnits() = 0;
virtual void SetTexture( TextureUnit tu, unsigned iTexture ) = 0; virtual void SetTexture( TextureUnit tu, unsigned iTexture ) = 0;
virtual void SetTextureModeModulate() = 0; virtual void SetTextureMode( TextureMode tm ) = 0;
virtual void SetTextureModeGlow() = 0; void SetTextureModeModulate() { SetTextureMode( TextureMode_Modulate ); }
virtual void SetTextureModeAdd() = 0; void SetTextureModeGlow() { SetTextureMode( TextureMode_Glow ); }
void SetTextureModeAdd() { SetTextureMode( TextureMode_Add ); }
virtual void SetTextureWrapping( bool b ) = 0; virtual void SetTextureWrapping( bool b ) = 0;
virtual int GetMaxTextureSize() const = 0; virtual int GetMaxTextureSize() const = 0;
virtual void SetTextureFiltering( bool b ) = 0; virtual void SetTextureFiltering( bool b ) = 0;
+17 -21
View File
@@ -1155,11 +1155,15 @@ void RageDisplay_D3D::SetTexture( TextureUnit tu, unsigned iTexture )
SetPalette( iTexture ); SetPalette( iTexture );
} }
} }
void RageDisplay_D3D::SetTextureModeModulate()
void RageDisplay_D3D::SetTextureMode( TextureMode tm )
{ {
if( g_currentTextureUnit >= (int) g_DeviceCaps.MaxSimultaneousTextures ) // not supported if( g_currentTextureUnit >= (int) g_DeviceCaps.MaxSimultaneousTextures ) // not supported
return; return;
switch( tm )
{
case TextureMode_Modulate:
// Use D3DTA_CURRENT instead of diffuse so that multitexturing works // Use D3DTA_CURRENT instead of diffuse so that multitexturing works
// properly. For stage 0, D3DTA_CURRENT is the diffuse color. // properly. For stage 0, D3DTA_CURRENT is the diffuse color.
@@ -1169,32 +1173,24 @@ void RageDisplay_D3D::SetTextureModeModulate()
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
} break;
case TextureMode_Add:
void RageDisplay_D3D::SetTextureModeGlow()
{
if( g_currentTextureUnit >= (int) g_DeviceCaps.MaxSimultaneousTextures ) // not supported
return;
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLOROP, D3DTOP_SELECTARG2 );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
}
void RageDisplay_D3D::SetTextureModeAdd()
{
if( g_currentTextureUnit >= (int) g_DeviceCaps.MaxSimultaneousTextures ) // not supported
return;
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG1, D3DTA_TEXTURE ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG2, D3DTA_CURRENT ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLOROP, D3DTOP_ADD ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLOROP, D3DTOP_ADD );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE ); g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
break;
case TextureMode_Glow:
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLORARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_COLOROP, D3DTOP_SELECTARG2 );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( g_currentTextureUnit, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
break;
}
} }
void RageDisplay_D3D::SetTextureFiltering( bool b ) void RageDisplay_D3D::SetTextureFiltering( bool b )
+1 -3
View File
@@ -36,9 +36,7 @@ public:
void ClearAllTextures(); void ClearAllTextures();
int GetNumTextureUnits(); int GetNumTextureUnits();
void SetTexture( TextureUnit tu, unsigned iTexture ); void SetTexture( TextureUnit tu, unsigned iTexture );
void SetTextureModeModulate(); void SetTextureMode( TextureMode tm );
void SetTextureModeGlow();
void SetTextureModeAdd();
void SetTextureWrapping( bool b ); void SetTextureWrapping( bool b );
int GetMaxTextureSize() const; int GetMaxTextureSize() const;
void SetTextureFiltering( bool b); void SetTextureFiltering( bool b);
+1 -3
View File
@@ -33,9 +33,7 @@ public:
void ClearAllTextures() { } void ClearAllTextures() { }
int GetNumTextureUnits() { return 1; } int GetNumTextureUnits() { return 1; }
void SetTexture( TextureUnit tu, unsigned iTexture ) { } void SetTexture( TextureUnit tu, unsigned iTexture ) { }
void SetTextureModeModulate() { } void SetTextureMode( TextureMode tm ) { }
void SetTextureModeGlow() { }
void SetTextureModeAdd() { }
void SetTextureWrapping( bool b ) { } void SetTextureWrapping( bool b ) { }
int GetMaxTextureSize() const { return 2048; } int GetMaxTextureSize() const { return 2048; }
void SetTextureFiltering( bool b) { } void SetTextureFiltering( bool b) { }
+11 -10
View File
@@ -1411,13 +1411,17 @@ void RageDisplay_OGL::SetTexture( TextureUnit tu, unsigned iTexture )
} }
} }
void RageDisplay_OGL::SetTextureModeModulate() void RageDisplay_OGL::SetTextureMode( TextureMode tm )
{ {
switch( tm )
{
case TextureMode_Modulate:
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
} break;
case TextureMode_Add:
void RageDisplay_OGL::SetTextureModeGlow() glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD );
{ break;
case TextureMode_Glow:
if( !GLExt.m_bARB_texture_env_combine && !GLExt.m_bEXT_texture_env_combine ) if( !GLExt.m_bARB_texture_env_combine && !GLExt.m_bEXT_texture_env_combine )
{ {
/* This is changing blend state, instead of texture state, which isn't /* This is changing blend state, instead of texture state, which isn't
@@ -1437,11 +1441,8 @@ void RageDisplay_OGL::SetTextureModeGlow()
glTexEnvi( GL_TEXTURE_ENV, GLenum(GL_SOURCE0_ALPHA_EXT), GL_PRIMARY_COLOR_EXT ); 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_OPERAND1_ALPHA_EXT), GL_SRC_ALPHA );
glTexEnvi( GL_TEXTURE_ENV, GLenum(GL_SOURCE1_ALPHA_EXT), GL_TEXTURE ); glTexEnvi( GL_TEXTURE_ENV, GLenum(GL_SOURCE1_ALPHA_EXT), GL_TEXTURE );
} break;
}
void RageDisplay_OGL::SetTextureModeAdd()
{
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
} }
void RageDisplay_OGL::SetTextureFiltering( bool b ) void RageDisplay_OGL::SetTextureFiltering( bool b )
+1 -3
View File
@@ -43,9 +43,7 @@ public:
void ClearAllTextures(); void ClearAllTextures();
int GetNumTextureUnits(); int GetNumTextureUnits();
void SetTexture( TextureUnit tu, unsigned iTexture ); void SetTexture( TextureUnit tu, unsigned iTexture );
void SetTextureModeModulate(); void SetTextureMode( TextureMode tm );
void SetTextureModeGlow();
void SetTextureModeAdd();
void SetTextureWrapping( bool b ); void SetTextureWrapping( bool b );
int GetMaxTextureSize() const; int GetMaxTextureSize() const;
void SetTextureFiltering( bool b); void SetTextureFiltering( bool b);