[Mesa-dev] [PATCH 1/3] mesa: Remove API facing bits of EXT_paletted_texture and EXT_shared_texture_palette

Ian Romanick idr at freedesktop.org
Mon Aug 29 11:12:24 PDT 2011


From: Ian Romanick <ian.d.romanick at intel.com>

This was also discussed at XDS 2010.  However, actually making the
change was delayed because several drivers still exposed these
extensions to significant benefit (e.g., tdfx).  Now that those
drivers have been removed, this code can be removed as well.
---
 src/mesa/main/colortab.c    |  689 +------------------------------------------
 src/mesa/main/colortab.h    |    7 -
 src/mesa/main/enable.c      |    8 -
 src/mesa/main/extensions.c  |    4 -
 src/mesa/main/get.c         |    1 -
 src/mesa/main/mtypes.h      |   12 +-
 src/mesa/main/texformat.c   |    7 -
 src/mesa/main/texgetimage.c |   13 +-
 src/mesa/main/teximage.c    |   17 -
 src/mesa/main/texobj.c      |    3 -
 src/mesa/main/texstate.c    |    3 -
 11 files changed, 15 insertions(+), 749 deletions(-)

diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c
index ddb0f1f..f20dee6 100644
--- a/src/mesa/main/colortab.c
+++ b/src/mesa/main/colortab.c
@@ -41,361 +41,14 @@
 
 #if FEATURE_colortable
 
-
-/**
- * Given an internalFormat token passed to glColorTable,
- * return the corresponding base format.
- * Return -1 if invalid token.
- */
-static GLint
-base_colortab_format( GLenum format )
-{
-   switch (format) {
-      case GL_ALPHA:
-      case GL_ALPHA4:
-      case GL_ALPHA8:
-      case GL_ALPHA12:
-      case GL_ALPHA16:
-         return GL_ALPHA;
-      case GL_LUMINANCE:
-      case GL_LUMINANCE4:
-      case GL_LUMINANCE8:
-      case GL_LUMINANCE12:
-      case GL_LUMINANCE16:
-         return GL_LUMINANCE;
-      case GL_LUMINANCE_ALPHA:
-      case GL_LUMINANCE4_ALPHA4:
-      case GL_LUMINANCE6_ALPHA2:
-      case GL_LUMINANCE8_ALPHA8:
-      case GL_LUMINANCE12_ALPHA4:
-      case GL_LUMINANCE12_ALPHA12:
-      case GL_LUMINANCE16_ALPHA16:
-         return GL_LUMINANCE_ALPHA;
-      case GL_INTENSITY:
-      case GL_INTENSITY4:
-      case GL_INTENSITY8:
-      case GL_INTENSITY12:
-      case GL_INTENSITY16:
-         return GL_INTENSITY;
-      case GL_RGB:
-      case GL_R3_G3_B2:
-      case GL_RGB4:
-      case GL_RGB5:
-      case GL_RGB8:
-      case GL_RGB10:
-      case GL_RGB12:
-      case GL_RGB16:
-         return GL_RGB;
-      case GL_RGBA:
-      case GL_RGBA2:
-      case GL_RGBA4:
-      case GL_RGB5_A1:
-      case GL_RGBA8:
-      case GL_RGB10_A2:
-      case GL_RGBA12:
-      case GL_RGBA16:
-         return GL_RGBA;
-      default:
-         return -1;  /* error */
-   }
-}
-
-
-
-/**
- * Examine table's format and set the component sizes accordingly.
- */
-static void
-set_component_sizes( struct gl_color_table *table )
-{
-   /* assuming the ubyte table */
-   const GLubyte sz = 8;
-
-   switch (table->_BaseFormat) {
-      case GL_ALPHA:
-         table->RedSize = 0;
-         table->GreenSize = 0;
-         table->BlueSize = 0;
-         table->AlphaSize = sz;
-         table->IntensitySize = 0;
-         table->LuminanceSize = 0;
-         break;
-      case GL_LUMINANCE:
-         table->RedSize = 0;
-         table->GreenSize = 0;
-         table->BlueSize = 0;
-         table->AlphaSize = 0;
-         table->IntensitySize = 0;
-         table->LuminanceSize = sz;
-         break;
-      case GL_LUMINANCE_ALPHA:
-         table->RedSize = 0;
-         table->GreenSize = 0;
-         table->BlueSize = 0;
-         table->AlphaSize = sz;
-         table->IntensitySize = 0;
-         table->LuminanceSize = sz;
-         break;
-      case GL_INTENSITY:
-         table->RedSize = 0;
-         table->GreenSize = 0;
-         table->BlueSize = 0;
-         table->AlphaSize = 0;
-         table->IntensitySize = sz;
-         table->LuminanceSize = 0;
-         break;
-      case GL_RGB:
-         table->RedSize = sz;
-         table->GreenSize = sz;
-         table->BlueSize = sz;
-         table->AlphaSize = 0;
-         table->IntensitySize = 0;
-         table->LuminanceSize = 0;
-         break;
-      case GL_RGBA:
-         table->RedSize = sz;
-         table->GreenSize = sz;
-         table->BlueSize = sz;
-         table->AlphaSize = sz;
-         table->IntensitySize = 0;
-         table->LuminanceSize = 0;
-         break;
-      default:
-         _mesa_problem(NULL, "unexpected format in set_component_sizes");
-   }
-}
-
-
-
-/**
- * Update/replace all or part of a color table.  Helper function
- * used by _mesa_ColorTable() and _mesa_ColorSubTable().
- * The table->Table buffer should already be allocated.
- * \param start first entry to update
- * \param count number of entries to update
- * \param format format of user-provided table data
- * \param type datatype of user-provided table data
- * \param data user-provided table data
- * \param [rgba]Scale - RGBA scale factors
- * \param [rgba]Bias - RGBA bias factors
- */
-static void
-store_colortable_entries(struct gl_context *ctx, struct gl_color_table *table,
-			 GLsizei start, GLsizei count,
-			 GLenum format, GLenum type, const GLvoid *data,
-			 GLfloat rScale, GLfloat rBias,
-			 GLfloat gScale, GLfloat gBias,
-			 GLfloat bScale, GLfloat bBias,
-			 GLfloat aScale, GLfloat aBias)
-{
-   data = _mesa_map_validate_pbo_source(ctx, 
-                                        1, &ctx->Unpack, count, 1, 1,
-                                        format, type, INT_MAX, data,
-                                        "glColor[Sub]Table");
-   if (!data)
-      return;
-
-   {
-      /* convert user-provided data to GLfloat values */
-      GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4];
-      GLfloat *tableF;
-      GLint i;
-
-      _mesa_unpack_color_span_float(ctx,
-                                    count,         /* number of pixels */
-                                    table->_BaseFormat, /* dest format */
-                                    tempTab,       /* dest address */
-                                    format, type,  /* src format/type */
-                                    data,          /* src data */
-                                    &ctx->Unpack,
-                                    IMAGE_CLAMP_BIT); /* transfer ops */
-
-      /* the destination */
-      tableF = table->TableF;
-
-      /* Apply scale & bias & clamp now */
-      switch (table->_BaseFormat) {
-         case GL_INTENSITY:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j] = CLAMP(tempTab[i] * rScale + rBias, 0.0F, 1.0F);
-            }
-            break;
-         case GL_LUMINANCE:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j] = CLAMP(tempTab[i] * rScale + rBias, 0.0F, 1.0F);
-            }
-            break;
-         case GL_ALPHA:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j] = CLAMP(tempTab[i] * aScale + aBias, 0.0F, 1.0F);
-            }
-            break;
-         case GL_LUMINANCE_ALPHA:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j*2+0] = CLAMP(tempTab[i*2+0] * rScale + rBias, 0.0F, 1.0F);
-               tableF[j*2+1] = CLAMP(tempTab[i*2+1] * aScale + aBias, 0.0F, 1.0F);
-            }
-            break;
-         case GL_RGB:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j*3+0] = CLAMP(tempTab[i*3+0] * rScale + rBias, 0.0F, 1.0F);
-               tableF[j*3+1] = CLAMP(tempTab[i*3+1] * gScale + gBias, 0.0F, 1.0F);
-               tableF[j*3+2] = CLAMP(tempTab[i*3+2] * bScale + bBias, 0.0F, 1.0F);
-            }
-            break;
-         case GL_RGBA:
-            for (i = 0; i < count; i++) {
-               GLuint j = start + i;
-               tableF[j*4+0] = CLAMP(tempTab[i*4+0] * rScale + rBias, 0.0F, 1.0F);
-               tableF[j*4+1] = CLAMP(tempTab[i*4+1] * gScale + gBias, 0.0F, 1.0F);
-               tableF[j*4+2] = CLAMP(tempTab[i*4+2] * bScale + bBias, 0.0F, 1.0F);
-               tableF[j*4+3] = CLAMP(tempTab[i*4+3] * aScale + aBias, 0.0F, 1.0F);
-            }
-            break;
-         default:
-            _mesa_problem(ctx, "Bad format in store_colortable_entries");
-            return;
-         }
-   }
-
-   /* update the ubyte table */
-   {
-      const GLint comps = _mesa_components_in_format(table->_BaseFormat);
-      const GLfloat *tableF = table->TableF + start * comps;
-      GLubyte *tableUB = table->TableUB + start * comps;
-      GLint i;
-      for (i = 0; i < count * comps; i++) {
-         CLAMPED_FLOAT_TO_UBYTE(tableUB[i], tableF[i]);
-      }
-   }
-
-   _mesa_unmap_pbo_source(ctx, &ctx->Unpack);
-}
-
-
-
 void GLAPIENTRY
 _mesa_ColorTable( GLenum target, GLenum internalFormat,
                   GLsizei width, GLenum format, GLenum type,
                   const GLvoid *data )
 {
-   static const GLfloat one[4] = { 1.0, 1.0, 1.0, 1.0 };
-   static const GLfloat zero[4] = { 0.0, 0.0, 0.0, 0.0 };
    GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
-   struct gl_texture_object *texObj = NULL;
-   struct gl_color_table *table = NULL;
-   GLboolean proxy = GL_FALSE;
-   GLint baseFormat;
-   const GLfloat *scale = one, *bias = zero;
-   GLint comps;
-
-   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); /* too complex */
-
-   switch (target) {
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         table = &ctx->Texture.Palette;
-         break;
-      default:
-         /* try texture targets */
-         {
-            struct gl_texture_object *texobj
-               = _mesa_select_tex_object(ctx, texUnit, target);
-            if (texobj) {
-               table = &texobj->Palette;
-               proxy = _mesa_is_proxy_texture(target);
-            }
-            else {
-               _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
-               return;
-            }
-         }
-   }
-
-   assert(table);
-
-   if (!_mesa_is_legal_format_and_type(ctx, format, type) ||
-       format == GL_INTENSITY) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glColorTable(format or type)");
-      return;
-   }
-
-   baseFormat = base_colortab_format(internalFormat);
-   if (baseFormat < 0) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(internalFormat)");
-      return;
-   }
-
-   if (width < 0 || (width != 0 && !_mesa_is_pow_two(width))) {
-      /* error */
-      if (proxy) {
-         table->Size = 0;
-         table->InternalFormat = (GLenum) 0;
-         table->_BaseFormat = (GLenum) 0;
-      }
-      else {
-         _mesa_error(ctx, GL_INVALID_VALUE, "glColorTable(width=%d)", width);
-      }
-      return;
-   }
-
-   if (width > (GLsizei) ctx->Const.MaxColorTableSize) {
-      if (proxy) {
-         table->Size = 0;
-         table->InternalFormat = (GLenum) 0;
-         table->_BaseFormat = (GLenum) 0;
-      }
-      else {
-         _mesa_error(ctx, GL_TABLE_TOO_LARGE, "glColorTable(width)");
-      }
-      return;
-   }
-
-   table->Size = width;
-   table->InternalFormat = internalFormat;
-   table->_BaseFormat = (GLenum) baseFormat;
-
-   comps = _mesa_components_in_format(table->_BaseFormat);
-   assert(comps > 0);  /* error should have been caught sooner */
-
-   if (!proxy) {
-      _mesa_free_colortable_data(table);
-
-      if (width > 0) {
-         table->TableF = (GLfloat *) malloc(comps * width * sizeof(GLfloat));
-         table->TableUB = (GLubyte *) malloc(comps * width * sizeof(GLubyte));
-
-	 if (!table->TableF || !table->TableUB) {
-	    _mesa_error(ctx, GL_OUT_OF_MEMORY, "glColorTable");
-	    return;
-	 }
-
-	 store_colortable_entries(ctx, table,
-				  0, width,  /* start, count */
-				  format, type, data,
-				  scale[0], bias[0],
-				  scale[1], bias[1],
-				  scale[2], bias[2],
-				  scale[3], bias[3]);
-      }
-   } /* proxy */
-
-   /* do this after the table's Type and Format are set */
-   set_component_sizes(table);
-
-   if (texObj || target == GL_SHARED_TEXTURE_PALETTE_EXT) {
-      /* texture object palette, texObj==NULL means the shared palette */
-      if (ctx->Driver.UpdateTexturePalette) {
-         (*ctx->Driver.UpdateTexturePalette)( ctx, texObj );
-      }
-   }
-
-   ctx->NewState |= _NEW_PIXEL;
+   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+   _mesa_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
 }
 
 
@@ -405,73 +58,9 @@ _mesa_ColorSubTable( GLenum target, GLsizei start,
                      GLsizei count, GLenum format, GLenum type,
                      const GLvoid *data )
 {
-   static const GLfloat one[4] = { 1.0, 1.0, 1.0, 1.0 };
-   static const GLfloat zero[4] = { 0.0, 0.0, 0.0, 0.0 };
    GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
-   struct gl_texture_object *texObj = NULL;
-   struct gl_color_table *table = NULL;
-   const GLfloat *scale = one, *bias = zero;
-
    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
-   switch (target) {
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         table = &ctx->Texture.Palette;
-         break;
-      default:
-         /* try texture targets */
-         texObj = _mesa_select_tex_object(ctx, texUnit, target);
-         if (texObj && !_mesa_is_proxy_texture(target)) {
-            table = &texObj->Palette;
-         }
-         else {
-            _mesa_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
-            return;
-         }
-   }
-
-   assert(table);
-
-   if (!_mesa_is_legal_format_and_type(ctx, format, type) ||
-       format == GL_INTENSITY) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glColorSubTable(format or type)");
-      return;
-   }
-
-   if (count < 1) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)");
-      return;
-   }
-
-   /* error should have been caught sooner */
-   assert(_mesa_components_in_format(table->_BaseFormat) > 0);
-
-   if (start + count > (GLint) table->Size) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)");
-      return;
-   }
-
-   if (!table->TableF || !table->TableUB) {
-      /* a GL_OUT_OF_MEMORY error would have been recorded previously */
-      return;
-   }
-
-   store_colortable_entries(ctx, table, start, count,
-			    format, type, data,
-                            scale[0], bias[0],
-                            scale[1], bias[1],
-                            scale[2], bias[2],
-                            scale[3], bias[3]);
-
-   if (texObj || target == GL_SHARED_TEXTURE_PALETTE_EXT) {
-      /* per-texture object palette */
-      if (ctx->Driver.UpdateTexturePalette) {
-         (*ctx->Driver.UpdateTexturePalette)( ctx, texObj );
-      }
-   }
-
-   ctx->NewState |= _NEW_PIXEL;
+   _mesa_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
 }
 
 
@@ -482,12 +71,7 @@ _mesa_CopyColorTable(GLenum target, GLenum internalformat,
 {
    GET_CURRENT_CONTEXT(ctx);
    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
-   if (!ctx->ReadBuffer->_ColorReadBuffer) {
-      return;      /* no readbuffer - OK */
-   }
-
-   ctx->Driver.CopyColorTable( ctx, target, internalformat, x, y, width );
+   _mesa_error(ctx, GL_INVALID_ENUM, "glCopyColorTable(target)");
 }
 
 
@@ -498,12 +82,7 @@ _mesa_CopyColorSubTable(GLenum target, GLsizei start,
 {
    GET_CURRENT_CONTEXT(ctx);
    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
-   if (!ctx->ReadBuffer->_ColorReadBuffer) {
-      return;      /* no readbuffer - OK */
-   }
-
-   ctx->Driver.CopyColorSubTable( ctx, target, start, x, y, width );
+   _mesa_error(ctx, GL_INVALID_ENUM, "glCopyColorSubTable(target)");
 }
 
 
@@ -513,120 +92,8 @@ _mesa_GetnColorTableARB( GLenum target, GLenum format, GLenum type,
                          GLsizei bufSize, GLvoid *data )
 {
    GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
-   struct gl_color_table *table = NULL;
-   GLfloat rgba[MAX_COLOR_TABLE_SIZE][4];
-   GLbitfield transferOps = 0;
    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
-
-   if (ctx->NewState) {
-      _mesa_update_state(ctx);
-   }
-
-   switch (target) {
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         table = &ctx->Texture.Palette;
-         break;
-      default:
-         /* try texture targets */
-         {
-            struct gl_texture_object *texobj
-               = _mesa_select_tex_object(ctx, texUnit, target);
-            if (texobj && !_mesa_is_proxy_texture(target)) {
-               table = &texobj->Palette;
-            }
-            else {
-               _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
-               return;
-            }
-         }
-   }
-
-   ASSERT(table);
-
-   if (table->Size <= 0) {
-      return;
-   }
-
-   switch (table->_BaseFormat) {
-   case GL_ALPHA:
-      {
-         GLuint i;
-         for (i = 0; i < table->Size; i++) {
-            rgba[i][RCOMP] = 0;
-            rgba[i][GCOMP] = 0;
-            rgba[i][BCOMP] = 0;
-            rgba[i][ACOMP] = table->TableF[i];
-         }
-      }
-      break;
-   case GL_LUMINANCE:
-      {
-         GLuint i;
-         for (i = 0; i < table->Size; i++) {
-            rgba[i][RCOMP] =
-            rgba[i][GCOMP] =
-            rgba[i][BCOMP] = table->TableF[i];
-            rgba[i][ACOMP] = 1.0F;
-         }
-      }
-      break;
-   case GL_LUMINANCE_ALPHA:
-      {
-         GLuint i;
-         for (i = 0; i < table->Size; i++) {
-            rgba[i][RCOMP] =
-            rgba[i][GCOMP] =
-            rgba[i][BCOMP] = table->TableF[i*2+0];
-            rgba[i][ACOMP] = table->TableF[i*2+1];
-         }
-      }
-      break;
-   case GL_INTENSITY:
-      {
-         GLuint i;
-         for (i = 0; i < table->Size; i++) {
-            rgba[i][RCOMP] =
-            rgba[i][GCOMP] =
-            rgba[i][BCOMP] =
-            rgba[i][ACOMP] = table->TableF[i];
-         }
-      }
-      break;
-   case GL_RGB:
-      {
-         GLuint i;
-         for (i = 0; i < table->Size; i++) {
-            rgba[i][RCOMP] = table->TableF[i*3+0];
-            rgba[i][GCOMP] = table->TableF[i*3+1];
-            rgba[i][BCOMP] = table->TableF[i*3+2];
-            rgba[i][ACOMP] = 1.0F;
-         }
-      }
-      break;
-   case GL_RGBA:
-      memcpy(rgba, table->TableF, 4 * table->Size * sizeof(GLfloat));
-      break;
-   default:
-      _mesa_problem(ctx, "bad table format in glGetColorTable");
-      return;
-   }
-
-   data = _mesa_map_validate_pbo_dest(ctx, 
-                                      1, &ctx->Pack, table->Size, 1, 1,
-                                      format, type, bufSize, data,
-                                      "glGetColorTable");
-   if (!data)
-      return;
-
-   /* TODO: is this correct? */
-   if(ctx->Color._ClampReadColor)
-      transferOps |= IMAGE_CLAMP_BIT;
-
-   _mesa_pack_rgba_span_float(ctx, table->Size, rgba,
-                              format, type, data, &ctx->Pack, transferOps);
-
-   _mesa_unmap_pbo_dest(ctx, &ctx->Pack);
+   _mesa_error(ctx, GL_INVALID_ENUM, "glGetnColorTableARB(target)");
 }
 
 
@@ -634,7 +101,9 @@ static void GLAPIENTRY
 _mesa_GetColorTable( GLenum target, GLenum format,
                      GLenum type, GLvoid *data )
 {
-   _mesa_GetnColorTableARB(target, format, type, INT_MAX, data);
+   GET_CURRENT_CONTEXT(ctx);
+   ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
+   _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
 }
 
 
@@ -664,61 +133,8 @@ static void GLAPIENTRY
 _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
 {
    GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
-   struct gl_color_table *table = NULL;
    ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   switch (target) {
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         table = &ctx->Texture.Palette;
-         break;
-      default:
-         /* try texture targets */
-         {
-            struct gl_texture_object *texobj
-               = _mesa_select_tex_object(ctx, texUnit, target);
-            if (texobj) {
-               table = &texobj->Palette;
-            }
-            else {
-               _mesa_error(ctx, GL_INVALID_ENUM,
-                           "glGetColorTableParameterfv(target)");
-               return;
-            }
-         }
-   }
-
-   assert(table);
-
-   switch (pname) {
-      case GL_COLOR_TABLE_FORMAT:
-         *params = (GLfloat) table->InternalFormat;
-         break;
-      case GL_COLOR_TABLE_WIDTH:
-         *params = (GLfloat) table->Size;
-         break;
-      case GL_COLOR_TABLE_RED_SIZE:
-         *params = (GLfloat) table->RedSize;
-         break;
-      case GL_COLOR_TABLE_GREEN_SIZE:
-         *params = (GLfloat) table->GreenSize;
-         break;
-      case GL_COLOR_TABLE_BLUE_SIZE:
-         *params = (GLfloat) table->BlueSize;
-         break;
-      case GL_COLOR_TABLE_ALPHA_SIZE:
-         *params = (GLfloat) table->AlphaSize;
-         break;
-      case GL_COLOR_TABLE_LUMINANCE_SIZE:
-         *params = (GLfloat) table->LuminanceSize;
-         break;
-      case GL_COLOR_TABLE_INTENSITY_SIZE:
-         *params = (GLfloat) table->IntensitySize;
-         break;
-      default:
-         _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameterfv(pname)" );
-         return;
-   }
+   _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameterfv(target)");
 }
 
 
@@ -727,61 +143,8 @@ static void GLAPIENTRY
 _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
 {
    GET_CURRENT_CONTEXT(ctx);
-   struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx);
-   struct gl_color_table *table = NULL;
    ASSERT_OUTSIDE_BEGIN_END(ctx);
-
-   switch (target) {
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         table = &ctx->Texture.Palette;
-         break;
-      default:
-         /* Try texture targets */
-         {
-            struct gl_texture_object *texobj
-               = _mesa_select_tex_object(ctx, texUnit, target);
-            if (texobj) {
-               table = &texobj->Palette;
-            }
-            else {
-               _mesa_error(ctx, GL_INVALID_ENUM,
-                           "glGetColorTableParameteriv(target)");
-               return;
-            }
-         }
-   }
-
-   assert(table);
-
-   switch (pname) {
-      case GL_COLOR_TABLE_FORMAT:
-         *params = table->InternalFormat;
-         break;
-      case GL_COLOR_TABLE_WIDTH:
-         *params = table->Size;
-         break;
-      case GL_COLOR_TABLE_RED_SIZE:
-         *params = table->RedSize;
-         break;
-      case GL_COLOR_TABLE_GREEN_SIZE:
-         *params = table->GreenSize;
-         break;
-      case GL_COLOR_TABLE_BLUE_SIZE:
-         *params = table->BlueSize;
-         break;
-      case GL_COLOR_TABLE_ALPHA_SIZE:
-         *params = table->AlphaSize;
-         break;
-      case GL_COLOR_TABLE_LUMINANCE_SIZE:
-         *params = table->LuminanceSize;
-         break;
-      case GL_COLOR_TABLE_INTENSITY_SIZE:
-         *params = table->IntensitySize;
-         break;
-      default:
-         _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameteriv(pname)" );
-         return;
-   }
+   _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameteriv(target)");
 }
 
 
@@ -804,33 +167,3 @@ _mesa_init_colortable_dispatch(struct _glapi_table *disp)
 
 
 #endif /* FEATURE_colortable */
-
-
-/**********************************************************************/
-/*****                      Initialization                        *****/
-/**********************************************************************/
-
-
-void
-_mesa_init_colortable( struct gl_color_table *p )
-{
-   p->TableF = NULL;
-   p->TableUB = NULL;
-   p->Size = 0;
-   p->InternalFormat = GL_RGBA;
-}
-
-
-
-void
-_mesa_free_colortable_data( struct gl_color_table *p )
-{
-   if (p->TableF) {
-      free(p->TableF);
-      p->TableF = NULL;
-   }
-   if (p->TableUB) {
-      free(p->TableUB);
-      p->TableUB = NULL;
-   }
-}
diff --git a/src/mesa/main/colortab.h b/src/mesa/main/colortab.h
index ae46d8d..3bc2066 100644
--- a/src/mesa/main/colortab.h
+++ b/src/mesa/main/colortab.h
@@ -74,11 +74,4 @@ _mesa_init_colortable_dispatch(struct _glapi_table *disp)
 
 #endif /* FEATURE_colortable */
 
-
-extern void
-_mesa_init_colortable( struct gl_color_table *table );
-
-extern void
-_mesa_free_colortable_data( struct gl_color_table *table );
-
 #endif /* COLORTAB_H */
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 3ba4df6..4bf1809 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -576,12 +576,6 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
          FLUSH_VERTICES(ctx, _NEW_SCISSOR);
          ctx->Scissor.Enabled = state;
          break;
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         if (ctx->Texture.SharedPalette == state)
-            return;
-         FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-         ctx->Texture.SharedPalette = state;
-         break;
       case GL_STENCIL_TEST:
          if (ctx->Stencil.Enabled == state)
             return;
@@ -1175,8 +1169,6 @@ _mesa_IsEnabled( GLenum cap )
          return ctx->Transform.RescaleNormals;
       case GL_SCISSOR_TEST:
 	 return ctx->Scissor.Enabled;
-      case GL_SHARED_TEXTURE_PALETTE_EXT:
-         return ctx->Texture.SharedPalette;
       case GL_STENCIL_TEST:
 	 return ctx->Stencil.Enabled;
       case GL_TEXTURE_1D:
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 14b0cf9..1903a50 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -172,7 +172,6 @@ static const struct extension extension_table[] = {
    { "GL_EXT_packed_depth_stencil",                o(EXT_packed_depth_stencil),                GL,             2005 },
    { "GL_EXT_packed_float",                        o(EXT_packed_float),                        GL,             2004 },
    { "GL_EXT_packed_pixels",                       o(EXT_packed_pixels),                       GL,             1997 },
-   { "GL_EXT_paletted_texture",                    o(EXT_paletted_texture),                    GL,             1995 },
    { "GL_EXT_pixel_buffer_object",                 o(EXT_pixel_buffer_object),                 GL,             2004 },
    { "GL_EXT_point_parameters",                    o(EXT_point_parameters),                    GL,             1997 },
    { "GL_EXT_polygon_offset",                      o(EXT_polygon_offset),                      GL,             1995 },
@@ -182,7 +181,6 @@ static const struct extension extension_table[] = {
    { "GL_EXT_separate_shader_objects",             o(EXT_separate_shader_objects),             GL,             2008 },
    { "GL_EXT_separate_specular_color",             o(EXT_separate_specular_color),             GL,             1997 },
    { "GL_EXT_shadow_funcs",                        o(EXT_shadow_funcs),                        GL,             2002 },
-   { "GL_EXT_shared_texture_palette",              o(EXT_shared_texture_palette),              GL,             2000 },
    { "GL_EXT_stencil_two_side",                    o(EXT_stencil_two_side),                    GL,             2001 },
    { "GL_EXT_stencil_wrap",                        o(EXT_stencil_wrap),                        GL,             2002 },
    { "GL_EXT_subtexture",                          o(EXT_subtexture),                          GL,             1995 },
@@ -488,7 +486,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
 #endif
    /*ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;*/
    ctx->Extensions.EXT_packed_depth_stencil = GL_TRUE;
-   ctx->Extensions.EXT_paletted_texture = GL_TRUE;
 #if FEATURE_EXT_pixel_buffer_object
    ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE;
 #endif
@@ -496,7 +493,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
    ctx->Extensions.EXT_provoking_vertex = GL_TRUE;
    ctx->Extensions.EXT_shadow_funcs = GL_TRUE;
    ctx->Extensions.EXT_secondary_color = GL_TRUE;
-   ctx->Extensions.EXT_shared_texture_palette = GL_TRUE;
    ctx->Extensions.EXT_stencil_wrap = GL_TRUE;
    ctx->Extensions.EXT_stencil_two_side = GL_TRUE;
    ctx->Extensions.EXT_texture_array = GL_TRUE;
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index d32c68a..069254b 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -857,7 +857,6 @@ static const struct value_desc values[] = {
    { GL_RENDER_MODE, CONTEXT_ENUM(RenderMode), NO_EXTRA },
    { GL_RGBA_MODE, CONST(1), NO_EXTRA },
    { GL_SELECTION_BUFFER_SIZE, CONTEXT_INT(Select.BufferSize), NO_EXTRA },
-   { GL_SHARED_TEXTURE_PALETTE_EXT, CONTEXT_BOOL(Texture.SharedPalette), NO_EXTRA },
 
    { GL_STEREO, BUFFER_INT(Visual.stereoMode), NO_EXTRA },
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index f2eb889..a20bb9f 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1354,8 +1354,7 @@ struct gl_sampler_object
 
 /**
  * Texture object state.  Contains the array of mipmap images, border color,
- * wrap modes, filter modes, shadow/texcompare state, and the per-texture
- * color palette.
+ * wrap modes, filter modes, and shadow/texcompare state.
  */
 struct gl_texture_object
 {
@@ -1386,9 +1385,6 @@ struct gl_texture_object
    struct gl_buffer_object *BufferObject;
    GLenum BufferObjectFormat;
 
-   /** GL_EXT_paletted_texture */
-   struct gl_color_table Palette;
-
    /**
     * \name For device driver.
     * Note: instead of attaching driver data to this pointer, it's preferable
@@ -1504,10 +1500,6 @@ struct gl_texture_attrib
    /** GL_ARB_seamless_cubemap */
    GLboolean CubeMapSeamless;
 
-   /** GL_EXT_shared_texture_palette */
-   GLboolean SharedPalette;
-   struct gl_color_table Palette;
-
    /** Texture units/samplers used by vertex or fragment texturing */
    GLbitfield _EnabledUnits;
 
@@ -2850,7 +2842,6 @@ struct gl_extensions
    GLboolean EXT_gpu_program_parameters;
    GLboolean EXT_gpu_shader4;
    GLboolean EXT_multi_draw_arrays;
-   GLboolean EXT_paletted_texture;
    GLboolean EXT_packed_depth_stencil;
    GLboolean EXT_packed_float;
    GLboolean EXT_packed_pixels;
@@ -2863,7 +2854,6 @@ struct gl_extensions
    GLboolean EXT_secondary_color;
    GLboolean EXT_separate_shader_objects;
    GLboolean EXT_separate_specular_color;
-   GLboolean EXT_shared_texture_palette;
    GLboolean EXT_stencil_wrap;
    GLboolean EXT_stencil_two_side;
    GLboolean EXT_subtexture;
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
index 075c40c..4f02720 100644
--- a/src/mesa/main/texformat.c
+++ b/src/mesa/main/texformat.c
@@ -197,13 +197,6 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
 	 RETURN_IF_SUPPORTED(MESA_FORMAT_I8);
 	 break;
 
-      case GL_COLOR_INDEX:
-      case GL_COLOR_INDEX1_EXT:
-      case GL_COLOR_INDEX2_EXT:
-      case GL_COLOR_INDEX4_EXT:
-      case GL_COLOR_INDEX12_EXT:
-      case GL_COLOR_INDEX16_EXT:
-      case GL_COLOR_INDEX8_EXT:
       default:
          ; /* fallthrough */
    }
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index b2ebb0d..6c1b07f 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -572,7 +572,7 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
       return GL_TRUE;
    }
 
-   if (!ctx->Extensions.EXT_paletted_texture && _mesa_is_index_format(format)) {
+   if (_mesa_is_index_format(format)) {
       _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(format)");
       return GL_TRUE;
    }
@@ -615,17 +615,10 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
    baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
       
    /* Make sure the requested image format is compatible with the
-    * texture's format.  Note that a color index texture can be converted
-    * to RGBA so that combo is allowed.
+    * texture's format.
     */
    if (_mesa_is_color_format(format)
-       && !_mesa_is_color_format(baseFormat)
-       && !_mesa_is_index_format(baseFormat)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
-      return GL_TRUE;
-   }
-   else if (_mesa_is_index_format(format)
-            && !_mesa_is_index_format(baseFormat)) {
+       && !_mesa_is_color_format(baseFormat)) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
       return GL_TRUE;
    }
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 886e521..c9932e0 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -159,21 +159,6 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
       }
    }
 
-   if (ctx->Extensions.EXT_paletted_texture) {
-      switch (internalFormat) {
-         case GL_COLOR_INDEX:
-         case GL_COLOR_INDEX1_EXT:
-         case GL_COLOR_INDEX2_EXT:
-         case GL_COLOR_INDEX4_EXT:
-         case GL_COLOR_INDEX8_EXT:
-         case GL_COLOR_INDEX12_EXT:
-         case GL_COLOR_INDEX16_EXT:
-            return GL_COLOR_INDEX;
-         default:
-            ; /* fallthrough */
-      }
-   }
-
    if (ctx->Extensions.ARB_depth_texture) {
       switch (internalFormat) {
          case GL_DEPTH_COMPONENT:
@@ -1635,9 +1620,7 @@ texture_error_check( struct gl_context *ctx,
 
    /* make sure internal format and format basically agree */
    colorFormat = _mesa_is_color_format(format);
-   indexFormat = _mesa_is_index_format(format);
    if ((_mesa_is_color_format(internalFormat) && !colorFormat && !indexFormat) ||
-       (_mesa_is_index_format(internalFormat) && !indexFormat) ||
        (_mesa_is_depth_format(internalFormat) != _mesa_is_depth_format(format)) ||
        (_mesa_is_ycbcr_format(internalFormat) != _mesa_is_ycbcr_format(format)) ||
        (_mesa_is_depthstencil_format(internalFormat) != _mesa_is_depthstencil_format(format)) ||
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 078a43a..1168f18 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -198,8 +198,6 @@ _mesa_delete_texture_object(struct gl_context *ctx,
     */
    texObj->Target = 0x99;
 
-   _mesa_free_colortable_data(&texObj->Palette);
-
    /* free the texture images */
    for (face = 0; face < 6; face++) {
       for (i = 0; i < MAX_TEXTURE_LEVELS; i++) {
@@ -258,7 +256,6 @@ _mesa_copy_texture_object( struct gl_texture_object *dest,
    dest->_MaxLevel = src->_MaxLevel;
    dest->_MaxLambda = src->_MaxLambda;
    dest->GenerateMipmap = src->GenerateMipmap;
-   dest->Palette = src->Palette;
    dest->_Complete = src->_Complete;
    COPY_4V(dest->Swizzle, src->Swizzle);
    dest->_Swizzle = src->_Swizzle;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 1810b88..f29545a 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -75,7 +75,6 @@ _mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst )
    dst->Texture._GenFlags = src->Texture._GenFlags;
    dst->Texture._TexGenEnabled = src->Texture._TexGenEnabled;
    dst->Texture._TexMatEnabled = src->Texture._TexMatEnabled;
-   dst->Texture.SharedPalette = src->Texture.SharedPalette;
 
    /* per-unit state */
    for (u = 0; u < src->Const.MaxCombinedTextureImageUnits; u++) {
@@ -778,8 +777,6 @@ _mesa_init_texture(struct gl_context *ctx)
    /* Texture group */
    ctx->Texture.CurrentUnit = 0;      /* multitexture */
    ctx->Texture._EnabledUnits = 0x0;
-   ctx->Texture.SharedPalette = GL_FALSE;
-   _mesa_init_colortable(&ctx->Texture.Palette);
 
    for (u = 0; u < Elements(ctx->Texture.Unit); u++)
       init_texture_unit(ctx, u);
-- 
1.7.4.4



More information about the mesa-dev mailing list