From f9ba7c667db10fbf68cb0f1828c68208effcb47f Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sat, 23 Oct 2021 06:15:36 -0400 Subject: [PATCH] OpenGL2: Fix r_grayscale 1 making everything solid black Using LUMINANCE with OpenGL 3.2 Core contex results in all images being solid black (in the menu, world, and the console). In the end the whole screen was solid black except the intro video. Store images in RGB and RGBA instead. This doesn't affect r_grayscale visually. If there is issues with it now possibly using compressed formats, then it would already be an issue for r_grayscale 0.9. --- code/renderergl2/tr_image.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/renderergl2/tr_image.c b/code/renderergl2/tr_image.c index d4cd7b11..d63b1a2e 100644 --- a/code/renderergl2/tr_image.c +++ b/code/renderergl2/tr_image.c @@ -1705,7 +1705,9 @@ static GLenum RawImage_GetFormat(const byte *data, int numPixels, GLenum picForm } else if(lightMap) { - if(r_greyscale->integer) + // GL_LUMINANCE is not valid for OpenGL 3.2 Core context and + // everything becomes solid black + if(0 && r_greyscale->integer) internalFormat = GL_LUMINANCE; else internalFormat = GL_RGBA; @@ -1720,7 +1722,7 @@ static GLenum RawImage_GetFormat(const byte *data, int numPixels, GLenum picForm // select proper internal format if ( samples == 3 ) { - if(r_greyscale->integer) + if(0 && r_greyscale->integer) { if(r_texturebits->integer == 16 || r_texturebits->integer == 32) internalFormat = GL_LUMINANCE8; @@ -1757,7 +1759,7 @@ static GLenum RawImage_GetFormat(const byte *data, int numPixels, GLenum picForm } else if ( samples == 4 ) { - if(r_greyscale->integer) + if(0 && r_greyscale->integer) { if(r_texturebits->integer == 16 || r_texturebits->integer == 32) internalFormat = GL_LUMINANCE8_ALPHA8;