From f93b1e4c6540557f4d77bf4578849e6603d09955 Mon Sep 17 00:00:00 2001 From: havoc Date: Wed, 30 Dec 2009 22:33:59 +0000 Subject: [PATCH] do not set hasalphaflag on dds images that have alpha but were loaded without TEXF_ALPHA git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9756 d7cf8633-e32d-0410-b094-e92efae38249 --- gl_textures.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gl_textures.c b/gl_textures.c index b10611b7..a029377c 100644 --- a/gl_textures.c +++ b/gl_textures.c @@ -1236,8 +1236,8 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen for (i = 3;i < size;i += 4) if (ddspixels[i] < 255) break; - if (i < size) - flags |= TEXF_ALPHA; + if (i >= size) + flags &= ~TEXF_ALPHA; } else if (!memcmp(dds+84, "DXT1", 4)) { @@ -1259,10 +1259,9 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen if (ddspixels[i+0] + ddspixels[i+1] * 256 <= ddspixels[i+2] + ddspixels[i+3] * 256) break; if (i < size) - { textype = TEXTYPE_DXT1A; - flags |= TEXF_ALPHA; - } + else + flags &= ~TEXF_ALPHA; } else if (!memcmp(dds+84, "DXT3", 4)) { @@ -1276,7 +1275,6 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen Con_Printf("^1%s: invalid DXT3 DDS image\n", filename); return NULL; } - flags |= TEXF_ALPHA; } else if (!memcmp(dds+84, "DXT5", 4)) { @@ -1290,7 +1288,6 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen Con_Printf("^1%s: invalid DXT5 DDS image\n", filename); return NULL; } - flags |= TEXF_ALPHA; } else { -- 2.39.2