2020-10-13 09:20:52 +02:00
|
|
|
#ifndef OPENGLSHADER_H
|
|
|
|
#define OPENGLSHADER_H
|
|
|
|
|
2021-06-11 20:30:43 +02:00
|
|
|
/* OpenGL 2.0 */
|
2018-05-20 06:27:53 +02:00
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PASSTHROUGH_VERT_SHADER_110[] =
|
2018-05-20 06:27:53 +02:00
|
|
|
"#version 110\n"
|
2018-10-06 05:02:53 +02:00
|
|
|
"varying vec2 TEX0; \n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"\n"
|
2018-05-23 01:11:40 +02:00
|
|
|
"void main()\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"{\n"
|
|
|
|
" gl_Position = ftransform(); \n"
|
2018-10-06 05:02:53 +02:00
|
|
|
" TEX0 = gl_MultiTexCoord0.xy; \n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"}\n";
|
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PALETTE_FRAG_SHADER_110[] =
|
2018-05-20 06:27:53 +02:00
|
|
|
"#version 110\n"
|
|
|
|
"uniform sampler2D SurfaceTex; \n"
|
2018-05-23 01:11:40 +02:00
|
|
|
"uniform sampler2D PaletteTex; \n"
|
2018-10-06 05:02:53 +02:00
|
|
|
"varying vec2 TEX0; \n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
2018-10-06 05:02:53 +02:00
|
|
|
" vec4 pIndex = texture2D(SurfaceTex, TEX0); \n"
|
|
|
|
" gl_FragColor = texture2D(PaletteTex, vec2(pIndex.r * (255.0/256.0) + (0.5/256.0), 0)); \n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"}\n";
|
|
|
|
|
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PASSTHROUGH_FRAG_SHADER_110[] =
|
2018-11-14 05:35:59 +01:00
|
|
|
"#version 110\n"
|
|
|
|
"uniform sampler2D SurfaceTex; \n"
|
|
|
|
"varying vec2 TEX0; \n"
|
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
|
|
|
" vec4 texel = texture2D(SurfaceTex, TEX0); \n"
|
|
|
|
" gl_FragColor = texel; \n"
|
|
|
|
"}\n";
|
|
|
|
|
2021-06-11 20:30:43 +02:00
|
|
|
/* OpenGL 3.0 */
|
2018-05-20 06:27:53 +02:00
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PASSTHROUGH_VERT_SHADER[] =
|
2018-10-02 16:26:37 +02:00
|
|
|
"#version 130\n"
|
|
|
|
"in vec4 VertexCoord;\n"
|
|
|
|
"in vec4 COLOR;\n"
|
|
|
|
"in vec4 TexCoord;\n"
|
|
|
|
"out vec4 COL0;\n"
|
|
|
|
"out vec4 TEX0;\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"uniform mat4 MVPMatrix;\n"
|
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
2018-05-20 21:59:47 +02:00
|
|
|
" gl_Position = MVPMatrix * VertexCoord;\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
" COL0 = COLOR;\n"
|
|
|
|
" TEX0.xy = TexCoord.xy;\n"
|
|
|
|
"}\n";
|
|
|
|
|
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PALETTE_FRAG_SHADER[] =
|
2018-10-02 16:26:37 +02:00
|
|
|
"#version 130\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"out vec4 FragColor;\n"
|
|
|
|
"uniform sampler2D SurfaceTex;\n"
|
2018-05-23 01:11:40 +02:00
|
|
|
"uniform sampler2D PaletteTex;\n"
|
2018-10-02 16:26:37 +02:00
|
|
|
"in vec4 TEX0;\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
2018-10-06 05:02:53 +02:00
|
|
|
" vec4 pIndex = texture(SurfaceTex, TEX0.xy);\n"
|
|
|
|
" FragColor = texture(PaletteTex, vec2(pIndex.r * (255.0/256.0) + (0.5/256.0), 0));\n"
|
2018-05-20 06:27:53 +02:00
|
|
|
"}\n";
|
2018-10-02 12:19:46 +02:00
|
|
|
|
2018-11-14 05:35:59 +01:00
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
const char PASSTHROUGH_FRAG_SHADER[] =
|
2018-11-14 05:35:59 +01:00
|
|
|
"#version 130\n"
|
|
|
|
"out vec4 FragColor;\n"
|
|
|
|
"uniform sampler2D SurfaceTex;\n"
|
|
|
|
"in vec4 TEX0;\n"
|
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
|
|
|
" vec4 texel = texture(SurfaceTex, TEX0.xy);\n"
|
|
|
|
" FragColor = texel;\n"
|
|
|
|
"}\n";
|
2020-10-13 09:20:52 +02:00
|
|
|
|
2021-06-11 20:30:43 +02:00
|
|
|
/* OpenGL 3.2 (Core Profile) */
|
2020-10-23 17:56:24 +02:00
|
|
|
|
|
|
|
const char PASSTHROUGH_VERT_SHADER_CORE[] =
|
|
|
|
"#version 150\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"
|
|
|
|
"{\n"
|
|
|
|
" gl_Position = MVPMatrix * VertexCoord;\n"
|
|
|
|
" COL0 = COLOR;\n"
|
|
|
|
" TEX0.xy = TexCoord.xy;\n"
|
|
|
|
"}\n";
|
|
|
|
|
|
|
|
|
|
|
|
const char PALETTE_FRAG_SHADER_CORE[] =
|
|
|
|
"#version 150\n"
|
|
|
|
"out vec4 FragColor;\n"
|
|
|
|
"uniform sampler2D SurfaceTex;\n"
|
|
|
|
"uniform sampler2D PaletteTex;\n"
|
|
|
|
"in vec4 TEX0;\n"
|
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
|
|
|
" vec4 pIndex = texture(SurfaceTex, TEX0.xy);\n"
|
|
|
|
" FragColor = texture(PaletteTex, vec2(pIndex.r * (255.0/256.0) + (0.5/256.0), 0));\n"
|
|
|
|
"}\n";
|
|
|
|
|
|
|
|
|
|
|
|
const char PASSTHROUGH_FRAG_SHADER_CORE[] =
|
|
|
|
"#version 150\n"
|
|
|
|
"out vec4 FragColor;\n"
|
|
|
|
"uniform sampler2D SurfaceTex;\n"
|
|
|
|
"in vec4 TEX0;\n"
|
|
|
|
"\n"
|
|
|
|
"void main()\n"
|
|
|
|
"{\n"
|
|
|
|
" vec4 texel = texture(SurfaceTex, TEX0.xy);\n"
|
|
|
|
" FragColor = texel;\n"
|
|
|
|
"}\n";
|
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
#endif
|