mesa: fix GLES remap table setup again
authorChia-I Wu <olv@lunarg.com>
Wed, 8 Jun 2011 14:04:16 +0000 (22:04 +0800)
committerChia-I Wu <olv@lunarg.com>
Wed, 8 Jun 2011 15:17:57 +0000 (23:17 +0800)
Generate different glapidispatch.h's for GL and GLES.  For GLES, we want
a local remap table.

This reverts commit 5af46e836073d2112b147b524e441bdb808cc128.  The
commit will break GL remap table setup when main/glapidispatch.h is
regenerated.

src/mapi/glapi/gen/gl_table.py
src/mesa/main/es_generator.py

index c3cc6164f2cfc901649dc032a237100a99f634ff..bd3f3eb71c7264b0187653d6cd1ea277f883f89a 100644 (file)
@@ -149,14 +149,18 @@ class PrintRemapTable(gl_XML.gl_print_base):
                print '#else /* !_GLAPI_USE_REMAP_TABLE */'
                print ''
 
-               print '#define driDispatchRemapTable_size %u' % (count)
-               print 'extern int driDispatchRemapTable[ driDispatchRemapTable_size ];'
-               print ''
-               print '#if FEATURE_remap_table'
-               print '#define driDispatchRemapTable remap_table'
-               print 'static int remap_table[driDispatchRemapTable_size];'
-               print '#endif'
-               print ''
+               if self.es:
+                       remap_table = "esLocalRemapTable"
+
+                       print '#define %s_size %u' % (remap_table, count)
+                       print 'static int %s[ %s_size ];' % (remap_table, remap_table)
+                       print ''
+               else:
+                       remap_table = "driDispatchRemapTable"
+
+                       print '#define %s_size %u' % (remap_table, count)
+                       print 'extern int %s[ %s_size ];' % (remap_table, remap_table)
+                       print ''
 
                for f, index in functions:
                        print '#define %s_remap_index %u' % (f.name, index)
@@ -164,7 +168,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
                print ''
 
                for f, index in functions:
-                       print '#define _gloffset_%s driDispatchRemapTable[%s_remap_index]' % (f.name, f.name)
+                       print '#define _gloffset_%s %s[%s_remap_index]' % (f.name, remap_table, f.name)
 
                print ''
                print '#endif /* _GLAPI_USE_REMAP_TABLE */'
index 87d8bd316828dbc5df4089d74d298b83681569d7..5b49416782d5daf4bae90469f7ebcf08e2f98ca7 100644 (file)
@@ -680,6 +680,7 @@ print """
 
 #if FEATURE_remap_table
 
+/* define esLocalRemapTable */
 /* cannot include main/dispatch.h here */
 #define _GLAPI_USE_REMAP_TABLE
 #include "%sapi/main/glapidispatch.h"
@@ -701,7 +702,7 @@ init_remap_table(void)
       return;
    }
 
-   for (i = 0; i < driDispatchRemapTable_size; i++) {
+   for (i = 0; i < esLocalRemapTable_size; i++) {
       GLint offset;
       const char *spec;
 
@@ -710,7 +711,7 @@ init_remap_table(void)
       spec = _mesa_function_pool + remap[i].pool_index;
 
       offset = _mesa_map_function_spec(spec);
-      remap_table[i] = offset;
+      esLocalRemapTable[i] = offset;
    }
    initialized = GL_TRUE;
    _glthread_UNLOCK_MUTEX(mutex);