From: divverent Date: Tue, 14 Apr 2009 11:17:51 +0000 (+0000) Subject: fix r_picmipworld option X-Git-Tag: xonotic-v0.1.0preview~1687 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9ab16034ceaba3a147d9c4afee8f4ac75e5ac319;p=xonotic%2Fdarkplaces.git fix r_picmipworld option git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8924 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/gl_textures.c b/gl_textures.c index fe13aca5..1166eb63 100644 --- a/gl_textures.c +++ b/gl_textures.c @@ -1077,6 +1077,9 @@ rtexture_t *R_LoadTexture1D(rtexturepool_t *rtexturepool, const char *identifier rtexture_t *R_LoadTexture2D(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, const unsigned char *data, textype_t textype, int flags, const unsigned int *palette) { + if(!strcmp(identifier, "textures/evil8_floor/e8clangfloor")) + Con_Printf("%d\n", flags & TEXF_PICMIP); + return R_SetupTexture(rtexturepool, identifier, width, height, 1, 1, flags, textype, GLTEXTURETYPE_2D, data, palette); } diff --git a/model_shared.c b/model_shared.c index 5412d7df..6b06ead1 100644 --- a/model_shared.c +++ b/model_shared.c @@ -1795,24 +1795,28 @@ q3shaderinfo_t *Mod_LookupQ3Shader(const char *name) qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qboolean warnmissing, qboolean fallback, int defaulttexflags) { int j; + int texflagsmask; qboolean success = true; q3shaderinfo_t *shader; if (!name) name = ""; strlcpy(texture->name, name, sizeof(texture->name)); shader = name[0] ? Mod_LookupQ3Shader(name) : NULL; + + texflagsmask = ~0; + if(!(defaulttexflags & TEXF_PICMIP)) + texflagsmask &= ~TEXF_PICMIP; + if(!(defaulttexflags & TEXF_COMPRESS)) + texflagsmask &= ~TEXF_COMPRESS; + if (shader) { if (developer_loading.integer) Con_Printf("%s: loaded shader for %s\n", loadmodel->name, name); texture->surfaceparms = shader->surfaceparms; - texture->textureflags = shader->textureflags; // allow disabling of picmip or compression by defaulttexflags - if(!(defaulttexflags & TEXF_PICMIP)) - texture->textureflags &= ~TEXF_PICMIP; - if(!(defaulttexflags & TEXF_COMPRESS)) - texture->textureflags &= ~TEXF_COMPRESS; + texture->textureflags = shader->textureflags & texflagsmask; if (shader->surfaceparms & Q3SURFACEPARM_SKY) { @@ -1898,7 +1902,7 @@ nothing GL_ZERO GL_ONE { texture->skinframes[j] = NULL; } - else if (!(texture->skinframes[j] = R_SkinFrame_LoadExternal(primarylayer->texturename[j], primarylayer->texflags, false))) + else if (!(texture->skinframes[j] = R_SkinFrame_LoadExternal(primarylayer->texturename[j], primarylayer->texflags & texflagsmask, false))) { Con_Printf("^1%s:^7 could not load texture ^3\"%s\"^7 (frame %i) for shader ^2\"%s\"\n", loadmodel->name, primarylayer->texturename[j], j, texture->name); texture->skinframes[j] = R_SkinFrame_LoadMissing(); @@ -1916,7 +1920,7 @@ nothing GL_ZERO GL_ONE { texture->skinframes[j] = NULL; } - else if (!(texture->backgroundskinframes[j] = R_SkinFrame_LoadExternal(backgroundlayer->texturename[j], backgroundlayer->texflags, false))) + else if (!(texture->backgroundskinframes[j] = R_SkinFrame_LoadExternal(backgroundlayer->texturename[j], backgroundlayer->texflags & texflagsmask, false))) { Con_Printf("^1%s:^7 could not load texture ^3\"%s\"^7 (background frame %i) for shader ^2\"%s\"\n", loadmodel->name, backgroundlayer->texturename[j], j, texture->name); texture->backgroundskinframes[j] = R_SkinFrame_LoadMissing();