diff --git a/inc/paletteshader.h b/inc/paletteshader.h index dccd9aa..26258ec 100644 --- a/inc/paletteshader.h +++ b/inc/paletteshader.h @@ -27,28 +27,12 @@ static const char *PaletteFragShader110Src = // new static const char *PassthroughVertShaderSrc = - "#if __VERSION__ >= 130\n" - "#define COMPAT_VARYING out\n" - "#define COMPAT_ATTRIBUTE in\n" - "#define COMPAT_TEXTURE texture\n" - "#else\n" - "#define COMPAT_VARYING varying \n" - "#define COMPAT_ATTRIBUTE attribute \n" - "#define COMPAT_TEXTURE texture2D\n" - "#endif\n" - "\n" - "#ifdef GL_ES\n" - "#define COMPAT_PRECISION mediump\n" - "#else\n" - "#define COMPAT_PRECISION\n" - "#endif\n" - "\n" - "COMPAT_ATTRIBUTE vec4 VertexCoord;\n" - "COMPAT_ATTRIBUTE vec4 COLOR;\n" - "COMPAT_ATTRIBUTE vec4 TexCoord;\n" - "COMPAT_VARYING vec4 COL0;\n" - "COMPAT_VARYING vec4 TEX0;\n" - "\n" + "#version 130\n" + "in vec4 VertexCoord;\n" + "in vec4 COLOR;\n" + "in vec4 TexCoord;\n" + "out vec4 COL0;\n" + "out vec4 TEX0;\n" "uniform mat4 MVPMatrix;\n" "\n" "void main()\n" @@ -60,35 +44,16 @@ static const char *PassthroughVertShaderSrc = static const char *PaletteFragShaderSrc = - "#if __VERSION__ >= 130\n" - "#define COMPAT_VARYING in\n" - "#define COMPAT_TEXTURE texture\n" + "#version 130\n" "out vec4 FragColor;\n" - "#else\n" - "#define COMPAT_VARYING varying\n" - "#define FragColor gl_FragColor\n" - "#define COMPAT_TEXTURE texture2D\n" - "#endif\n" - "\n" - "#ifdef GL_ES\n" - "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" - "precision highp float;\n" - "#else\n" - "precision mediump float;\n" - "#endif\n" - "#define COMPAT_PRECISION mediump\n" - "#else\n" - "#define COMPAT_PRECISION\n" - "#endif\n" - "\n" "uniform sampler2D SurfaceTex;\n" "uniform sampler2D PaletteTex;\n" - "COMPAT_VARYING vec4 TEX0;\n" + "in vec4 TEX0;\n" "\n" "void main()\n" "{\n" - " vec4 paletteIndex = COMPAT_TEXTURE(SurfaceTex, TEX0.xy);\n" - " vec4 outTexel = COMPAT_TEXTURE(PaletteTex, vec2(paletteIndex.r, 0));\n" + " vec4 paletteIndex = texture(SurfaceTex, TEX0.xy);\n" + " vec4 outTexel = texture(PaletteTex, vec2(paletteIndex.r, 0));\n" " FragColor = outTexel;\n" "}\n"; diff --git a/src/render.c b/src/render.c index 06dd0cf..3274e65 100644 --- a/src/render.c +++ b/src/render.c @@ -171,9 +171,14 @@ static void BuildPrograms() if (OpenGL_GotVersion3) { PaletteProgram = OpenGL_BuildProgram(PassthroughVertShaderSrc, PaletteFragShaderSrc); - ScaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader); + + if (PaletteProgram) + ScaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader); + else + OpenGL_GotVersion3 = FALSE; } - else if (OpenGL_GotVersion2) + + if (OpenGL_GotVersion2 && !PaletteProgram) { PaletteProgram = OpenGL_BuildProgram(PassthroughVertShader110Src, PaletteFragShader110Src); }