Unpremultiply shader

This commit is contained in:
Glenn Maynard
2007-02-24 23:20:25 +00:00
parent 45cff83b71
commit 138b96a3b0
3 changed files with 7 additions and 0 deletions
+4
View File
@@ -350,6 +350,7 @@ GLhandleARB LoadShader( GLenum ShaderType, RString sFile, vector<RString> asDefi
static int g_iAttribTextureMatrixScale;
static GLhandleARB g_bUnpremultiplyShader = 0;
static GLhandleARB g_bColorBurnShader = 0;
static GLhandleARB g_bColorDodgeShader = 0;
static GLhandleARB g_bVividLightShader = 0;
@@ -359,6 +360,7 @@ void InitShaders()
{
vector<RString> asDefines;
g_bTextureMatrixShader = LoadShader( GL_VERTEX_SHADER_ARB, "Data/Shaders/GLSL/Texture matrix scaling.vert", asDefines );
g_bUnpremultiplyShader = LoadShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Unpremultiply.frag", asDefines );
g_bColorBurnShader = LoadShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Color burn.frag", asDefines );
g_bColorDodgeShader = LoadShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Color dodge.frag", asDefines );
g_bVividLightShader = LoadShader( GL_FRAGMENT_SHADER_ARB, "Data/Shaders/GLSL/Vivid light.frag", asDefines );
@@ -1576,6 +1578,7 @@ void RageDisplay_OGL::SetEffectMode( EffectMode effect )
switch( effect )
{
case EffectMode_Normal: hShader = 0; break;
case EffectMode_Unpremultiply: hShader = g_bUnpremultiplyShader; break;
case EffectMode_ColorBurn: hShader = g_bColorBurnShader; break;
case EffectMode_ColorDodge: hShader = g_bColorDodgeShader; break;
case EffectMode_VividLight: hShader = g_bVividLightShader; break;
@@ -1598,6 +1601,7 @@ bool RageDisplay_OGL::IsEffectModeSupported( EffectMode effect )
switch( effect )
{
case EffectMode_Normal: return true;
case EffectMode_Unpremultiply: return g_bUnpremultiplyShader != 0;
case EffectMode_ColorBurn: return g_bColorBurnShader != 0;
case EffectMode_ColorDodge: return g_bColorDodgeShader != 0;
case EffectMode_VividLight: return g_bVividLightShader != 0;
+2
View File
@@ -96,6 +96,8 @@ static const char *EffectModeNames[] =
/* Normal blending. All supported texture modes have their standard effects. */
"Normal",
"Unpremultiply",
/* Layered blending. */
"ColorBurn",
"ColorDodge",
+1
View File
@@ -37,6 +37,7 @@ LuaDeclareType( TextureMode );
enum EffectMode
{
EffectMode_Normal,
EffectMode_Unpremultiply,
EffectMode_ColorBurn,
EffectMode_ColorDodge,
EffectMode_VividLight,