summaryrefslogtreecommitdiff
path: root/lib/dds.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dds.c')
-rw-r--r--lib/dds.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/lib/dds.c b/lib/dds.c
index 4939e1b..8138cd9 100644
--- a/lib/dds.c
+++ b/lib/dds.c
@@ -123,7 +123,7 @@ typedef struct
GLubyte *pixels;
} DDS_IMAGE_DATA;
-static DDS_IMAGE_DATA* loadDDSTextureFile( const char *filename )
+DDS_IMAGE_DATA* loadDDSTextureFile( const char *filename )
{
DDS_IMAGE_DATA *pDDSImageData;
DDSURFACEDESC2 ddsd;
@@ -232,10 +232,20 @@ static DDS_IMAGE_DATA* loadDDSTextureFile( const char *filename )
return pDDSImageData;
}
-int loadCompressedTexture( const char *fname, int * pwidth, int * pheight )
+void destroyDDS( DDS_IMAGE_DATA *pDDSImageData )
+{
+ if( pDDSImageData != NULL )
+ {
+ if( pDDSImageData->pixels != NULL )
+ free( pDDSImageData->pixels );
+
+ free( pDDSImageData );
+ }
+}
+
+int loadCompressedTexture( DDS_IMAGE_DATA *pDDSImageData )
{
int g_compressedTextureID;
- DDS_IMAGE_DATA *pDDSImageData = loadDDSTextureFile( fname );
if( pDDSImageData != NULL )
{
@@ -243,11 +253,6 @@ int loadCompressedTexture( const char *fname, int * pwidth, int * pheight )
int nWidth = pDDSImageData->width;
int nNumMipMaps = pDDSImageData->numMipMaps;
- if (pwidth)
- *pwidth = nWidth;
- if (pheight)
- *pheight = nHeight;
-
int nBlockSize;
if( pDDSImageData->format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT )
@@ -291,14 +296,6 @@ int loadCompressedTexture( const char *fname, int * pwidth, int * pheight )
}
}
- if( pDDSImageData != NULL )
- {
- if( pDDSImageData->pixels != NULL )
- free( pDDSImageData->pixels );
-
- free( pDDSImageData );
- }
-
return g_compressedTextureID;
}