mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
use shader for rgb555 color conversion
This commit is contained in:
parent
a059fabf89
commit
d93a78b2a0
@ -84,6 +84,25 @@ static char PASSTHROUGH_FRAG_SHADER[] =
|
|||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
|
|
||||||
|
static char RBG555_FRAG_SHADER[] =
|
||||||
|
"#version 130\n"
|
||||||
|
"out vec4 FragColor;\n"
|
||||||
|
"uniform sampler2D Texture;\n"
|
||||||
|
"in vec4 TEX0;\n"
|
||||||
|
"\n"
|
||||||
|
"void main()\n"
|
||||||
|
"{\n"
|
||||||
|
" vec4 texel = texture(Texture, TEX0.xy);\n"
|
||||||
|
" int bytes = int(texel.r * 255.0 + 0.5) | int(texel.g * 255.0 + 0.5) << 8;\n"
|
||||||
|
" vec4 color;\n"
|
||||||
|
" color.r = float((bytes >> 10) & 31) / 31.0;\n"
|
||||||
|
" color.g = float((bytes >> 5) & 31) / 31.0;\n"
|
||||||
|
" color.b = float(bytes & 31) / 31.0;\n"
|
||||||
|
" color.a = 1.0;\n"
|
||||||
|
" FragColor = color;\n"
|
||||||
|
"}\n";
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// The following code is licensed under the MIT license: https://gist.github.com/TheRealMJP/bc503b0b87b643d3505d41eab8b332ae
|
// The following code is licensed under the MIT license: https://gist.github.com/TheRealMJP/bc503b0b87b643d3505d41eab8b332ae
|
||||||
// Ported from code: https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1
|
// Ported from code: https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1
|
||||||
|
@ -141,6 +141,10 @@ static void ogl_build_programs()
|
|||||||
{
|
{
|
||||||
g_ogl.main_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, PALETTE_FRAG_SHADER, core_profile);
|
g_ogl.main_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, PALETTE_FRAG_SHADER, core_profile);
|
||||||
}
|
}
|
||||||
|
else if (g_ddraw->bpp == 16 && g_ddraw->rgb555)
|
||||||
|
{
|
||||||
|
g_ogl.main_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, RBG555_FRAG_SHADER, core_profile);
|
||||||
|
}
|
||||||
else if (g_ddraw->bpp == 16 || g_ddraw->bpp == 32)
|
else if (g_ddraw->bpp == 16 || g_ddraw->bpp == 32)
|
||||||
{
|
{
|
||||||
g_ogl.main_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, PASSTHROUGH_FRAG_SHADER, core_profile);
|
g_ogl.main_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, PASSTHROUGH_FRAG_SHADER, core_profile);
|
||||||
@ -260,12 +264,12 @@ static void ogl_create_textures(int width, int height)
|
|||||||
glTexImage2D(
|
glTexImage2D(
|
||||||
GL_TEXTURE_2D,
|
GL_TEXTURE_2D,
|
||||||
0,
|
0,
|
||||||
GL_RGB5_A1,
|
GL_RG8,
|
||||||
g_ogl.surface_tex_width,
|
g_ogl.surface_tex_width,
|
||||||
g_ogl.surface_tex_height,
|
g_ogl.surface_tex_height,
|
||||||
0,
|
0,
|
||||||
g_ogl.surface_format = GL_BGRA,
|
g_ogl.surface_format = GL_RG,
|
||||||
g_ogl.surface_type = GL_UNSIGNED_SHORT_1_5_5_5_REV,
|
g_ogl.surface_type = GL_UNSIGNED_BYTE,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
else if (g_ddraw->bpp == 16)
|
else if (g_ddraw->bpp == 16)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user