From e8fc050b6eebddaadf10563c3764ee455687559d Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sat, 16 Jan 2021 16:43:25 +0100 Subject: Add: [OpenGL] Support for 8bpp blitters. --- src/table/opengl_shader.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/table') 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);", + "}", +}; -- cgit v1.2.3-70-g09d2