summaryrefslogtreecommitdiff
path: root/src/table/opengl_shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/table/opengl_shader.h')
-rw-r--r--src/table/opengl_shader.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/table/opengl_shader.h b/src/table/opengl_shader.h
index ad235be38..d82896fcd 100644
--- a/src/table/opengl_shader.h
+++ b/src/table/opengl_shader.h
@@ -51,3 +51,28 @@ static const char *_frag_shader_direct_150[] = {
" colour = texture(colour_tex, colour_tex_uv);",
"}",
};
+
+/** Fragment shader that performs a palette lookup to read the colour from an 8bpp texture. */
+static const char *_frag_shader_palette[] = {
+ "#version 110\n",
+ "uniform sampler2D colour_tex;",
+ "uniform sampler1D palette;",
+ "varying vec2 colour_tex_uv;",
+ "void main() {",
+ " float idx = texture2D(colour_tex, colour_tex_uv).r;",
+ " gl_FragData[0] = texture1D(palette, idx);",
+ "}",
+};
+
+/** GLSL 1.50 fragment shader that performs a palette lookup to read the colour from an 8bpp texture. */
+static const char *_frag_shader_palette_150[] = {
+ "#version 150\n",
+ "uniform sampler2D colour_tex;",
+ "uniform sampler1D palette;",
+ "in vec2 colour_tex_uv;",
+ "out vec4 colour;",
+ "void main() {",
+ " float idx = texture(colour_tex, colour_tex_uv).r;",
+ " colour = texture(palette, idx);",
+ "}",
+};