mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
try to use GL_LUMINANCE first for better performance
This commit is contained in:
parent
6d57bbbfcb
commit
d8cee91ee8
@ -19,7 +19,7 @@ const GLchar *PaletteFragShader110Src =
|
|||||||
"void main()\n"
|
"void main()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" vec4 paletteIndex = texture2D(SurfaceTex, TexCoord0); \n"
|
" vec4 paletteIndex = texture2D(SurfaceTex, TexCoord0); \n"
|
||||||
" vec4 outTexel = texture2D(PaletteTex, paletteIndex.xy); \n"
|
" vec4 outTexel = texture2D(PaletteTex, vec2(paletteIndex.r, 0)); \n"
|
||||||
" gl_FragColor = outTexel;\n"
|
" gl_FragColor = outTexel;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
@ -88,6 +88,6 @@ const GLchar *PaletteFragShaderSrc =
|
|||||||
"void main()\n"
|
"void main()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" vec4 paletteIndex = COMPAT_TEXTURE(SurfaceTex, TEX0.xy);\n"
|
" vec4 paletteIndex = COMPAT_TEXTURE(SurfaceTex, TEX0.xy);\n"
|
||||||
" vec4 outTexel = COMPAT_TEXTURE(PaletteTex, paletteIndex.xy);\n"
|
" vec4 outTexel = COMPAT_TEXTURE(PaletteTex, vec2(paletteIndex.r, 0));\n"
|
||||||
" FragColor = outTexel;\n"
|
" FragColor = outTexel;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
12
src/render.c
12
src/render.c
@ -107,6 +107,7 @@ DWORD WINAPI render_main(void)
|
|||||||
scaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader);
|
scaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader);
|
||||||
|
|
||||||
// primary surface texture
|
// primary surface texture
|
||||||
|
GLenum surfaceFormat = GL_LUMINANCE;
|
||||||
GLuint surfaceTexId = 0;
|
GLuint surfaceTexId = 0;
|
||||||
glGenTextures(1, &surfaceTexId);
|
glGenTextures(1, &surfaceTexId);
|
||||||
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
|
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
|
||||||
@ -117,13 +118,16 @@ DWORD WINAPI render_main(void)
|
|||||||
|
|
||||||
if (paletteConvProgram)
|
if (paletteConvProgram)
|
||||||
{
|
{
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, tex_width, tex_height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE8, tex_width, tex_height, 0, surfaceFormat = GL_LUMINANCE, GL_UNSIGNED_BYTE, 0);
|
||||||
|
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, tex_width, tex_height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, tex_width, tex_height, 0, surfaceFormat = GL_RED, GL_UNSIGNED_BYTE, 0);
|
||||||
|
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tex_width, tex_height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, tex_width, tex_height, 0, surfaceFormat = GL_RED, GL_UNSIGNED_BYTE, 0);
|
||||||
|
|
||||||
|
if (glGetError() != GL_NO_ERROR)
|
||||||
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tex_width, tex_height, 0, surfaceFormat = GL_RED, GL_UNSIGNED_BYTE, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -450,7 +454,7 @@ DWORD WINAPI render_main(void)
|
|||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 1, GL_RGBA, GL_UNSIGNED_BYTE, ddraw->primary->palette->data_bgr);
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 1, GL_RGBA, GL_UNSIGNED_BYTE, ddraw->primary->palette->data_bgr);
|
||||||
|
|
||||||
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
|
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
|
||||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, ddraw->width, ddraw->height, GL_RED, GL_UNSIGNED_BYTE, ddraw->primary->surface);
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, ddraw->width, ddraw->height, surfaceFormat, GL_UNSIGNED_BYTE, ddraw->primary->surface);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user