summaryrefslogtreecommitdiff
path: root/src/renderergl1/tr_image.c
diff options
context:
space:
mode:
authorTim Angus <tim@ngus.net>2016-04-09 17:57:28 +0100
committerTim Angus <tim@ngus.net>2016-04-09 17:57:28 +0100
commitf45fbef604e05144057dec8d1dbfc5d4f5a2a822 (patch)
tree152d2a428b078f7a89756ea9e156695fc69f1686 /src/renderergl1/tr_image.c
parent7f9e97d611b4b267d9dd913144cb9632f96c90c2 (diff)
parent87abdd914988724e164ffb16380ad26be8420b84 (diff)
Merge branch 'master' into gpp
Diffstat (limited to 'src/renderergl1/tr_image.c')
-rw-r--r--src/renderergl1/tr_image.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/renderergl1/tr_image.c b/src/renderergl1/tr_image.c
index 6f58a5b2..2ed43ef0 100644
--- a/src/renderergl1/tr_image.c
+++ b/src/renderergl1/tr_image.c
@@ -558,6 +558,7 @@ static void Upload32( unsigned *data,
qboolean mipmap,
qboolean picmip,
qboolean lightMap,
+ qboolean allowCompression,
int *format,
int *pUploadWidth, int *pUploadHeight )
{
@@ -693,11 +694,11 @@ static void Upload32( unsigned *data,
}
else
{
- if ( glConfig.textureCompression == TC_S3TC_ARB )
+ if ( allowCompression && glConfig.textureCompression == TC_S3TC_ARB )
{
internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
}
- else if ( glConfig.textureCompression == TC_S3TC )
+ else if ( allowCompression && glConfig.textureCompression == TC_S3TC )
{
internalFormat = GL_RGB4_S3TC;
}
@@ -893,6 +894,7 @@ image_t *R_CreateImage( const char *name, byte *pic, int width, int height,
image->flags & IMGFLAG_MIPMAP,
image->flags & IMGFLAG_PICMIP,
isLightmap,
+ !(image->flags & IMGFLAG_NO_COMPRESSION),
&image->internalFormat,
&image->uploadWidth,
&image->uploadHeight );
@@ -1556,7 +1558,7 @@ qhandle_t RE_RegisterSkin( const char *name ) {
// If not a .skin file, load as a single shader
if ( strcmp( name + strlen( name ) - 5, ".skin" ) ) {
skin->numSurfaces = 1;
- skin->surfaces[0] = ri.Hunk_Alloc( sizeof(skin->surfaces[0]), h_low );
+ skin->surfaces[0] = ri.Hunk_Alloc( sizeof( *skin->surfaces[0] ), h_low );
skin->surfaces[0]->shader = R_FindShader( name, LIGHTMAP_NONE, qtrue );
return hSkin;
}
@@ -1627,7 +1629,7 @@ void R_InitSkins( void ) {
skin = tr.skins[0] = ri.Hunk_Alloc( sizeof( skin_t ), h_low );
Q_strncpyz( skin->name, "<default skin>", sizeof( skin->name ) );
skin->numSurfaces = 1;
- skin->surfaces[0] = ri.Hunk_Alloc( sizeof( *skin->surfaces ), h_low );
+ skin->surfaces[0] = ri.Hunk_Alloc( sizeof( *skin->surfaces[0] ), h_low );
skin->surfaces[0]->shader = tr.defaultShader;
}