From c13677122cf3f4f26f4f87c858da753d2a254bf7 Mon Sep 17 00:00:00 2001 From: elasota Date: Tue, 13 Oct 2020 10:01:55 -0400 Subject: [PATCH] Fix flicker --- AerofoilSDL/ShaderCode/DrawQuadPaletteP.cpp | 10 ++++++++-- AerofoilSDL/ShaderCode/Functions.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/AerofoilSDL/ShaderCode/DrawQuadPaletteP.cpp b/AerofoilSDL/ShaderCode/DrawQuadPaletteP.cpp index 6150e1a..28eace7 100644 --- a/AerofoilSDL/ShaderCode/DrawQuadPaletteP.cpp +++ b/AerofoilSDL/ShaderCode/DrawQuadPaletteP.cpp @@ -17,7 +17,11 @@ "{\n"\ " vec4 resultColor = vec4(SamplePixel(texCoord.xy), 1.0);\n"\ " resultColor *= constants_Modulation;\n"\ +"#ifdef ENABLE_FLICKER\n"\ " resultColor = ApplyFlicker(constants_FlickerAxis, texCoord.zw, constants_FlickerStartThreshold, constants_FlickerEndThreshold, resultColor * constants_Modulation);\n"\ +" if (resultColor.a < 1)\n"\ +" discard;\n"\ +"#endif\n"\ " resultColor = ApplyDesaturation(constants_Desaturation, resultColor);\n"\ "\n"\ " gl_FragColor = vec4(ApplyColorSpaceTransform(resultColor.rgb), resultColor.a);\n"\ @@ -25,6 +29,8 @@ namespace GpBinarizedShaders { - const char *g_drawQuadPaletteP_GL2 = GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; - const char *g_drawQuadPaletteICCP_GL2 = "#define USE_ICC_PROFILE\n" GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; + const char *g_drawQuadPalettePF_GL2 = "#define ENABLE_FLICKER\n" GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; + const char *g_drawQuadPalettePNF_GL2 = GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; + const char *g_drawQuadPaletteICCPF_GL2 = "#define USE_ICC_PROFILE\n" "#define ENABLE_FLICKER\n" GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; + const char *g_drawQuadPaletteICCPNF_GL2 = "#define USE_ICC_PROFILE\n" GP_GL_SHADER_CODE_PRECISION_PREFIX GP_GL_SHADER_CODE_DRAWQUADPIXELCONSTANTS_H GP_GL_SHADER_CODE_FUNCTIONS_H GP_GL_SHADER_CODE_DRAWQUADPALETTEP_GLSL; } diff --git a/AerofoilSDL/ShaderCode/Functions.h b/AerofoilSDL/ShaderCode/Functions.h index 3900593..9d46d8a 100644 --- a/AerofoilSDL/ShaderCode/Functions.h +++ b/AerofoilSDL/ShaderCode/Functions.h @@ -47,7 +47,7 @@ " if (flickerTotal < startThreshold)\n"\ " return vec4(0, 0, 0, 0);\n"\ " else if (flickerTotal >= endThreshold)\n"\ -" return color;\n"\ +" return vec4(color.rgb, 1);\n"\ "\n"\ " return vec4(1, 1, 1, 1);\n"\ "}\n"\