mesa: remove used _mesa_get_function_spec() and gl_function_remap
[mesa.git] / src / mesa / main / remap.c
index 38ddc0c1dd7dc8d754a31aab922b8da131f56dd0..e76293c7f4eb6256be2a2fb5097ea9a9b7304b00 100644 (file)
@@ -1,6 +1,5 @@
 /*
  * Mesa 3-D graphics library
- * Version:  7.7
  *
  * Copyright (C) 2009 Chia-I Wu <olv@0xlab.org>
  *
 #include "imports.h"
 #include "glapi/glapi.h"
 
-#if FEATURE_remap_table
-
-
-#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
 #define MAX_ENTRY_POINTS 16
 
-static const char *_mesa_function_pool;
+#define need_MESA_remap_table
+#include "main/remap_helper.h"
 
-/**
- * Return the spec string associated with the given function index.
- * The index is available from including remap_helper.h.
- *
- * \param func_index an opaque function index.
- *
- * \return the spec string associated with the function index, or NULL.
- */
-const char *
-_mesa_get_function_spec(GLint func_index)
-{
-   return _mesa_function_pool + func_index;
-}
+
+/* this is global for quick access */
+int driDispatchRemapTable[driDispatchRemapTable_size];
 
 
 /**
@@ -106,56 +92,12 @@ _mesa_map_function_spec(const char *spec)
 }
 
 
-/**
- * Map an array of functions.  This is a convenient function for
- * use with arrays available from including remap_helper.h.
- *
- * Note that the dispatch offsets of the functions are not returned.
- * If they are needed, _mesa_map_function_spec() should be used.
- *
- * \param func_array an array of function remaps.
- */
-void
-_mesa_map_function_array(const struct gl_function_remap *func_array)
-{
-   GLint i;
-
-   if (!func_array)
-      return;
-
-   for (i = 0; func_array[i].func_index != -1; i++) {
-      const char *spec;
-      GLint offset;
-
-      spec = _mesa_get_function_spec(func_array[i].func_index);
-      if (!spec) {
-         _mesa_problem(NULL, "invalid function index %d",
-                       func_array[i].func_index);
-         continue;
-      }
-
-      offset = _mesa_map_function_spec(spec);
-      /* error checks */
-      if (offset < 0) {
-         const char *name = spec + strlen(spec) + 1;
-         _mesa_warning(NULL, "failed to remap %s", name);
-      }
-      else if (func_array[i].dispatch_offset >= 0 &&
-               offset != func_array[i].dispatch_offset) {
-         const char *name = spec + strlen(spec) + 1;
-         _mesa_problem(NULL, "%s should be mapped to %d, not %d",
-                       name, func_array[i].dispatch_offset, offset);
-      }
-   }
-}
-
-
 /**
  * Initialize the remap table.  This is called in one_time_init().
  * The remap table needs to be initialized before calling the
  * CALL/GET/SET macros defined in main/dispatch.h.
  */
-void
+static void
 _mesa_do_init_remap_table(const char *pool,
                          int size,
                          const struct gl_function_pool_remap *remap)
@@ -166,7 +108,6 @@ _mesa_do_init_remap_table(const char *pool,
    if (initialized)
       return;
    initialized = GL_TRUE;
-   _mesa_function_pool = pool;
 
    /* initialize the remap table */
    for (i = 0; i < size; i++) {
@@ -174,16 +115,24 @@ _mesa_do_init_remap_table(const char *pool,
       const char *spec;
 
       /* sanity check */
-      ASSERT(i == remap[i].remap_index);
+      assert(i == remap[i].remap_index);
       spec = _mesa_function_pool + remap[i].pool_index;
 
       offset = _mesa_map_function_spec(spec);
       /* store the dispatch offset in the remap table */
       driDispatchRemapTable[i] = offset;
-      if (offset < 0)
-         _mesa_warning(NULL, "failed to remap index %d", i);
+      if (offset < 0) {
+         const char *name = spec + strlen(spec) + 1;
+         _mesa_warning(NULL, "failed to remap %s", name);
+      }
    }
 }
 
 
-#endif /* FEATURE_remap_table */
+void
+_mesa_init_remap_table(void)
+{
+   _mesa_do_init_remap_table(_mesa_function_pool,
+                            driDispatchRemapTable_size,
+                            MESA_remap_table_functions);
+}