From c22b41905eb99ff65f4b91296ef47d8aa4f369d3 Mon Sep 17 00:00:00 2001 From: g-cont Date: Mon, 17 Jun 2019 00:00:00 +0300 Subject: [PATCH] 17 Jun 2019 --- engine/client/gl_export.h | 1 + engine/client/gl_image.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/engine/client/gl_export.h b/engine/client/gl_export.h index 0be6ae59..22480558 100644 --- a/engine/client/gl_export.h +++ b/engine/client/gl_export.h @@ -392,6 +392,7 @@ typedef float GLmatrix[16]; #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 #define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 #define GL_COMPRESSED_ALPHA_ARB 0x84E9 #define GL_COMPRESSED_LUMINANCE_ARB 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB diff --git a/engine/client/gl_image.c b/engine/client/gl_image.c index 876d91d2..65dc0c16 100644 --- a/engine/client/gl_image.c +++ b/engine/client/gl_image.c @@ -397,6 +397,8 @@ static size_t GL_CalcTextureSize( GLenum format, int width, int height, int dept case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: case GL_COMPRESSED_RED_GREEN_RGTC2_EXT: + case GL_COMPRESSED_LUMINANCE_ALPHA_ARB: + case GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI: size = (((width + 3) >> 2) * ((height + 3) >> 2) * 16) * depth; break; case GL_RGBA8: @@ -452,10 +454,14 @@ static size_t GL_CalcTextureSize( GLenum format, int width, int height, int dept size = width * height * depth * 8; break; case GL_RGB16F_ARB: + size = width * height * depth * 6; + break; case GL_RGBA16F_ARB: size = width * height * depth * 8; break; case GL_RGB32F_ARB: + size = width * height * depth * 12; + break; case GL_RGBA32F_ARB: size = width * height * depth * 16; break; @@ -662,7 +668,11 @@ static void GL_SetTextureFormat( gl_texture_t *tex, pixformat_t format, int chan case PF_DXT1: tex->format = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; // never use DXT1 with 1-bit alpha case PF_DXT3: tex->format = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break; case PF_DXT5: tex->format = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break; - case PF_ATI2: tex->format = GL_COMPRESSED_RED_GREEN_RGTC2_EXT; break; + case PF_ATI2: + if( glConfig.hardware_type == GLHW_RADEON ) + tex->format = GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI; + else tex->format = GL_COMPRESSED_RED_GREEN_RGTC2_EXT; + break; } return; } @@ -2060,6 +2070,7 @@ void R_TextureList_f( void ) Con_Printf( "DXT5 " ); break; case GL_COMPRESSED_RED_GREEN_RGTC2_EXT: + case GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI: Con_Printf( "ATI2 " ); break; case GL_RGBA: