mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +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"
|
||||
"{\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"
|
||||
"}\n";
|
||||
|
||||
@ -88,6 +88,6 @@ const GLchar *PaletteFragShaderSrc =
|
||||
"void main()\n"
|
||||
"{\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"
|
||||
"}\n";
|
||||
|
12
src/render.c
12
src/render.c
@ -107,6 +107,7 @@ DWORD WINAPI render_main(void)
|
||||
scaleProgram = OpenGL_BuildProgramFromFile(ddraw->shader);
|
||||
|
||||
// primary surface texture
|
||||
GLenum surfaceFormat = GL_LUMINANCE;
|
||||
GLuint surfaceTexId = 0;
|
||||
glGenTextures(1, &surfaceTexId);
|
||||
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
|
||||
@ -117,13 +118,16 @@ DWORD WINAPI render_main(void)
|
||||
|
||||
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)
|
||||
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)
|
||||
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
|
||||
{
|
||||
@ -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);
|
||||
|
||||
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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user