mesa: Move references to main/remap_helper.h to api_exec.c
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 22 Apr 2010 17:30:03 +0000 (13:30 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 27 Apr 2010 17:09:31 +0000 (13:09 -0400)
src/mesa/es/main/es_generator.py
src/mesa/glapi/gen/remap_helper.py
src/mesa/main/api_exec.c
src/mesa/main/remap.c
src/mesa/main/remap.h
src/mesa/main/remap_helper.h

index dbb516a4c163e6a3e51010d453d3359b7562f3c0..8dedafbceb0ffe4d9c8dfc7c7fc76c981b7e4697 100644 (file)
@@ -209,6 +209,32 @@ extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... );
 
 #include "main/dispatch.h"
 
+#if FEATURE_remap_table
+
+#include "main/remap.h"
+
+#ifdef IN_DRI_DRIVER
+#define _GLAPI_USE_REMAP_TABLE
+#endif
+
+#define need_MESA_remap_table
+#include "main/remap_helper.h"
+
+void
+_mesa_init_remap_table(void)
+{
+   _mesa_do_init_remap_table(_mesa_function_pool,
+                             driDispatchRemapTable_size,
+                             MESA_remap_table_functions);
+}
+
+void
+_mesa_map_static_functions(void)
+{
+}
+
+#endif
+
 typedef void (*_glapi_proc)(void); /* generic function pointer */
 """
 
index 8b50526d2b07a4b1d18d6d5668e9532627e7b2de..69b8e5e9d028f48fc53834d52d133174f30aae5b 100644 (file)
@@ -65,17 +65,12 @@ class PrintGlRemap(gl_XML.gl_print_base):
 
        def printRealHeader(self):
                print '#include "main/dispatch.h"'
+               print '#include "main/remap.h"'
                print ''
                return
 
 
        def printBody(self, api):
-               print 'struct gl_function_remap {'
-               print '   GLint func_index;'
-               print '   GLint dispatch_offset; /* for sanity check */'
-               print '};'
-               print ''
-
                pool_indices = {}
 
                print '/* this is internal to remap.c */'
@@ -108,10 +103,7 @@ class PrintGlRemap(gl_XML.gl_print_base):
                print ''
 
                print '/* these functions need to be remapped */'
-               print 'static const struct {'
-               print '   GLint pool_index;'
-               print '   GLint remap_index;'
-               print '} MESA_remap_table_functions[] = {'
+               print 'static const struct gl_function_pool_remap MESA_remap_table_functions[] = {'
                # output all functions that need to be remapped
                # iterate by offsets so that they are sorted by remap indices
                for f in api.functionIterateByOffset():
index 7b3f3d9ea19d021c9c23b7dd034c55bec80a136d..7b6ac63fac4c753d44ae58cf242c7b9952a81bc6 100644 (file)
 #endif
 #include "main/dispatch.h"
 
+#define need_MESA_remap_table
+#include "main/remap.h"
+#include "main/remap_helper.h"
+
+/* This is shared across all APIs but We define this here since
+ * desktop GL has the biggest remap table. */
+int driDispatchRemapTable[driDispatchRemapTable_size];
+
+/**
+ * Map the functions which are already static.
+ *
+ * When a extension function are incorporated into the ABI, the
+ * extension suffix is usually stripped.  Mapping such functions
+ * makes sure the alternative names are available.
+ *
+ * Note that functions mapped by _mesa_init_remap_table() are
+ * excluded.
+ */
+void
+_mesa_map_static_functions(void)
+{
+   /* Remap static functions which have alternative names and are in the ABI.
+    * This is to be on the safe side.  glapi should have defined those names.
+    */
+   _mesa_map_function_array(MESA_alt_functions);
+}
+
+void
+_mesa_init_remap_table(void)
+{
+   _mesa_do_init_remap_table(_mesa_function_pool,
+                            driDispatchRemapTable_size,
+                            MESA_remap_table_functions);
+}
 
 
 /**
index bfceb43c974155d092812e7a51a4337a369b14c8..38ddc0c1dd7dc8d754a31aab922b8da131f56dd0 100644 (file)
 
 #include "remap.h"
 #include "imports.h"
-
-#include "main/dispatch.h"
-
+#include "glapi/glapi.h"
 
 #if FEATURE_remap_table
 
 
-#define need_MESA_remap_table
-#include "main/remap_helper.h"
-
 #define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
 #define MAX_ENTRY_POINTS 16
 
-
-/* this is global for quick access */
-int driDispatchRemapTable[driDispatchRemapTable_size];
-
+static const char *_mesa_function_pool;
 
 /**
  * Return the spec string associated with the given function index.
@@ -67,10 +59,7 @@ int driDispatchRemapTable[driDispatchRemapTable_size];
 const char *
 _mesa_get_function_spec(GLint func_index)
 {
-   if (func_index < ARRAY_SIZE(_mesa_function_pool))
-      return _mesa_function_pool + func_index;
-   else
-      return NULL;
+   return _mesa_function_pool + func_index;
 }
 
 
@@ -161,33 +150,15 @@ _mesa_map_function_array(const struct gl_function_remap *func_array)
 }
 
 
-/**
- * Map the functions which are already static.
- *
- * When a extension function are incorporated into the ABI, the
- * extension suffix is usually stripped.  Mapping such functions
- * makes sure the alternative names are available.
- *
- * Note that functions mapped by _mesa_init_remap_table() are
- * excluded.
- */
-void
-_mesa_map_static_functions(void)
-{
-   /* Remap static functions which have alternative names and are in the ABI.
-    * This is to be on the safe side.  glapi should have defined those names.
-    */
-   _mesa_map_function_array(MESA_alt_functions);
-}
-
-
 /**
  * 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
-_mesa_init_remap_table(void)
+_mesa_do_init_remap_table(const char *pool,
+                         int size,
+                         const struct gl_function_pool_remap *remap)
 {
    static GLboolean initialized = GL_FALSE;
    GLint i;
@@ -195,15 +166,16 @@ _mesa_init_remap_table(void)
    if (initialized)
       return;
    initialized = GL_TRUE;
+   _mesa_function_pool = pool;
 
    /* initialize the remap table */
-   for (i = 0; i < ARRAY_SIZE(driDispatchRemapTable); i++) {
+   for (i = 0; i < size; i++) {
       GLint offset;
       const char *spec;
 
       /* sanity check */
-      ASSERT(i == MESA_remap_table_functions[i].remap_index);
-      spec = _mesa_function_pool + MESA_remap_table_functions[i].pool_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 */
index d080188d89fd97bd148ac010630b350439316d09..dda1a6be3a9dcd91dbe87afbb13907f1c21d8085 100644 (file)
 #define REMAP_H
 
 
-#include "main/mtypes.h"
+#include "main/mfeatures.h"
 
-struct gl_function_remap;
+struct gl_function_pool_remap {
+   int pool_index;
+   int remap_index;
+};
+
+struct gl_function_remap {
+   int func_index;
+   int dispatch_offset; /* for sanity check */
+};
 
 
 #if FEATURE_remap_table
@@ -39,9 +47,9 @@ extern int
 driDispatchRemapTable[];
 
 extern const char *
-_mesa_get_function_spec(GLint func_index);
+_mesa_get_function_spec(int func_index);
 
-extern GLint
+extern int
 _mesa_map_function_spec(const char *spec);
 
 extern void
@@ -50,18 +58,23 @@ _mesa_map_function_array(const struct gl_function_remap *func_array);
 extern void
 _mesa_map_static_functions(void);
 
+extern void
+_mesa_do_init_remap_table(const char *pool,
+                         int size,
+                         const struct gl_function_pool_remap *remap);
+
 extern void
 _mesa_init_remap_table(void);
 
 #else /* FEATURE_remap_table */
 
 static INLINE const char *
-_mesa_get_function_spec(GLint func_index)
+_mesa_get_function_spec(int func_index)
 {
    return NULL;
 }
 
-static INLINE GLint
+static INLINE int
 _mesa_map_function_spec(const char *spec)
 {
    return -1;
@@ -77,6 +90,13 @@ _mesa_map_static_functions(void)
 {
 }
 
+static INLINE void
+_mesa_do_init_remap_table(const char *pool,
+                         int size,
+                         const struct gl_function_pool_remap *remap)
+{
+}
+
 static INLINE void
 _mesa_init_remap_table(void)
 {
index 52edf67b545b1fcade667be9c76c1139d328255b..2df11a454dfe90690f8bf51c9bc0bb963af55fca 100644 (file)
  */
 
 #include "main/dispatch.h"
-
-struct gl_function_remap {
-   GLint func_index;
-   GLint dispatch_offset; /* for sanity check */
-};
+#include "main/remap.h"
 
 /* this is internal to remap.c */
 #ifdef need_MESA_remap_table
@@ -4427,10 +4423,7 @@ static const char _mesa_function_pool[] =
    ;
 
 /* these functions need to be remapped */
-static const struct {
-   GLint pool_index;
-   GLint remap_index;
-} MESA_remap_table_functions[] = {
+static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
    {  1461, AttachShader_remap_index },
    {  8848, CreateProgram_remap_index },
    { 20883, CreateShader_remap_index },