summaryrefslogtreecommitdiffstats
path: root/progs/tests/texcmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'progs/tests/texcmp.c')
-rw-r--r--progs/tests/texcmp.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/progs/tests/texcmp.c b/progs/tests/texcmp.c
index fe3f58c..6e822fb 100644
--- a/progs/tests/texcmp.c
+++ b/progs/tests/texcmp.c
@@ -65,8 +65,10 @@ static const char *TextureName (GLenum TC)
return "GL_RGBA_S3TC";
case GL_RGBA4_S3TC:
return "GL_RGBA4_S3TC";
+ case 0:
+ return "Invalid format";
default:
- return "?";
+ return "Unknown format";
}
}
@@ -356,6 +358,12 @@ static void Key( unsigned char key, int x, int y )
int main( int argc, char *argv[] )
{
+ float gl_version;
+ GLint num_formats;
+ GLint i;
+ GLint formats[64];
+
+
glutInit( &argc, argv );
glutInitWindowPosition( 0, 0 );
glutInitWindowSize( 400, 300 );
@@ -367,7 +375,9 @@ int main( int argc, char *argv[] )
exit(0);
}
- if (!glutExtensionSupported("GL_ARB_texture_compression")) {
+ gl_version = atof( (const char *) glGetString( GL_VERSION ) );
+ if ( (gl_version < 1.3)
+ && !glutExtensionSupported("GL_ARB_texture_compression") ) {
printf("Sorry, GL_ARB_texture_compression not supported\n");
exit(0);
}
@@ -381,6 +391,16 @@ int main( int argc, char *argv[] )
s3tc = GL_TRUE;
}
+ glGetIntegerv( GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, & num_formats );
+
+ (void) memset( formats, 0, sizeof( formats ) );
+ glGetIntegerv( GL_COMPRESSED_TEXTURE_FORMATS_ARB, formats );
+
+ printf( "The following texture formats are supported:\n" );
+ for ( i = 0 ; i < num_formats ; i++ ) {
+ printf( "\t%s\n", TextureName( formats[i] ) );
+ }
+
Init();
glutReshapeFunc( Reshape );