Make the test check for core GL version 1.3 in addition to testing for
authorIan Romanick <idr@us.ibm.com>
Thu, 17 Jun 2004 20:53:07 +0000 (20:53 +0000)
committerIan Romanick <idr@us.ibm.com>
Thu, 17 Jun 2004 20:53:07 +0000 (20:53 +0000)
GL_ARB_texture_compression.  Also make the test list the compression formats
the driver "encourages" the app to use.

progs/tests/texcmp.c

index fe3f58c..6e822fb 100644 (file)
@@ -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 );