More informative display of texture parameters.
authorGareth Hughes <gareth@valinux.com>
Wed, 28 Mar 2001 20:25:14 +0000 (20:25 +0000)
committerGareth Hughes <gareth@valinux.com>
Wed, 28 Mar 2001 20:25:14 +0000 (20:25 +0000)
progs/demos/texenv.c

index e31876c8aa790331cdf65d120babc105df3fafc3..4c26008136a0d060785fa7fbae599c2f15d3a4a7 100644 (file)
@@ -530,6 +530,32 @@ static void drawCheck( int w, int h, const GLfloat lightCheck[4],
    }
 }
 
+static const char *lookupFormat( GLint format )
+{
+   switch ( format ) {
+   case GL_RGBA:
+      return "GL_RGBA";
+   case GL_RGB:
+      return "GL_RGB";
+   case GL_ALPHA:
+      return "GL_ALPHA";
+   case GL_LUMINANCE:
+      return "GL_LUMINANCE";
+   case GL_LUMINANCE_ALPHA:
+      return "GL_LUMINANCE_ALPHA";
+   case GL_INTENSITY:
+      return "GL_INTENSITY";
+   case GL_COLOR_INDEX:
+      return "GL_COLOR_INDEX";
+   case GL_BGRA:
+      return "GL_BGRA";
+   case GL_BGR:
+      return "GL_BGR";
+   default:
+      return "unknown format";
+   }
+}
+
 static void drawSample( int x, int y, int w, int h,
                        const struct formatInfo *format,
                         const struct envModeInfo *envMode )
@@ -612,7 +638,7 @@ static void drawSample( int x, int y, int w, int h,
       end2D();
    }
    else if ( displayLevelInfo ) {
-      GLint width, height, border, components;
+      GLint width, height, border, format;
       GLint redSize, greenSize, blueSize, alphaSize;
       GLint luminanceSize, intensitySize;
       char buf[255];
@@ -620,7 +646,7 @@ static void drawSample( int x, int y, int w, int h,
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width );
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height );
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_BORDER, &border );
-      glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_COMPONENTS, &components );
+      glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format );
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_RED_SIZE, &redSize );
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_GREEN_SIZE, &greenSize );
       glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_BLUE_SIZE, &blueSize );
@@ -635,16 +661,19 @@ static void drawSample( int x, int y, int w, int h,
       sprintf( buf, "border: %d", border );
       drawStringOutline( buf, 15, h / 2 + 10, labelLevelColor0, labelLevelColor1 );
 
-      sprintf( buf, "components: 0x%04X", components );
+      sprintf( buf, "internal format:" );
       drawStringOutline( buf, 15, h / 2, labelLevelColor0, labelLevelColor1 );
 
-      sprintf( buf, "sizes:" );
+      sprintf( buf, "  %s",  lookupFormat( format ) );
       drawStringOutline( buf, 15, h / 2 - 10, labelLevelColor0, labelLevelColor1 );
 
+      sprintf( buf, "sizes:" );
+      drawStringOutline( buf, 15, h / 2 - 20, labelLevelColor0, labelLevelColor1 );
+
       sprintf( buf, "  %d / %d / %d / %d / %d / %d",
               redSize, greenSize, blueSize, alphaSize,
               luminanceSize, intensitySize );
-      drawStringOutline( buf, 15, h / 2 - 20, labelLevelColor0, labelLevelColor1 );
+      drawStringOutline( buf, 15, h / 2 - 30, labelLevelColor0, labelLevelColor1 );
 
       end2D();
    }