diff --git a/doomsday/engine/portable/include/gl_defer.h b/doomsday/engine/portable/include/gl_defer.h index 8b7144b9c1..e714e8a871 100644 --- a/doomsday/engine/portable/include/gl_defer.h +++ b/doomsday/engine/portable/include/gl_defer.h @@ -55,7 +55,8 @@ typedef struct texturecontent_s { #define TXCF_UPLOAD_ARG_ALPHACHANNEL 0x10 #define TXCF_UPLOAD_ARG_RGBDATA 0x20 #define TXCF_UPLOAD_ARG_NOSTRETCH 0x40 -#define TXCF_NEVER_DEFER 0x80 +#define TXCF_UPLOAD_ARG_NOSMARTFILTER 0x80 +#define TXCF_NEVER_DEFER 0x100 void GL_InitDeferred(void); void GL_ShutdownDeferred(void); diff --git a/doomsday/engine/portable/src/con_busy.c b/doomsday/engine/portable/src/con_busy.c index d107b7ed44..f7331c23d0 100644 --- a/doomsday/engine/portable/src/con_busy.c +++ b/doomsday/engine/portable/src/con_busy.c @@ -252,7 +252,7 @@ void Con_AcquireScreenshotTexture(void) texScreenshot = GL_UploadTexture(frame, glScreenWidth, glScreenHeight, false, false, true, false, DGL_LINEAR, DGL_LINEAR, DGL_CLAMP, DGL_CLAMP, - TXCF_NEVER_DEFER); + (TXCF_NEVER_DEFER | TXCF_UPLOAD_ARG_NOSMARTFILTER)); glMaxTexSize = oldMaxTexSize; M_Free(frame); diff --git a/doomsday/engine/portable/src/gl_texmanager.c b/doomsday/engine/portable/src/gl_texmanager.c index f12bf515d4..f2fae6a3e4 100644 --- a/doomsday/engine/portable/src/gl_texmanager.c +++ b/doomsday/engine/portable/src/gl_texmanager.c @@ -909,6 +909,7 @@ DGLuint GL_UploadTexture2(texturecontent_t *content) boolean generateMipmaps = ((content->flags & TXCF_MIPMAP) != 0); boolean RGBData = ((content->flags & TXCF_UPLOAD_ARG_RGBDATA) != 0); boolean noStretch = ((content->flags & TXCF_UPLOAD_ARG_NOSTRETCH) != 0); + boolean noSmartFilter = ((content->flags & TXCF_UPLOAD_ARG_NOSMARTFILTER) != 0); byte *palette = GL_GetPalette(); int i, levelWidth, levelHeight; // width and height at the current level int comps; @@ -941,7 +942,7 @@ DGLuint GL_UploadTexture2(texturecontent_t *content) } // If smart filtering is enabled, all textures are magnified 2x. - if(useSmartFilter /* && comps == 3 */ ) + if(useSmartFilter && !noSmartFilter /* && comps == 3 */ ) { byte *filtered = M_Malloc(4 * width * height * 4);