In glapi/gl_genexec.py:
* Remove _mesa_alloc_dispatch_table call
In glapi/gl_genexec.py and api_exec.h:
* Rename _mesa_create_exec_table to _mesa_initialize_exec_table
In context.c:
* Call _mesa_alloc_dispatch_table instead of _mesa_create_exec_table
* Call _mesa_initialize_exec_table (this is temporary)
Once all drivers have been modified to call
_mesa_initialize_exec_table, then the call to
_mesa_initialize_context can be removed from context.c.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
# IN THE SOFTWARE.
# This script generates the file api_exec.c, which contains
# IN THE SOFTWARE.
# This script generates the file api_exec.c, which contains
-# _mesa_create_exec_table(). It is responsible for populating all
+# _mesa_initialize_exec_table(). It is responsible for populating all
# entries in the "exec" dispatch table that aren't dynamic.
import collections
# entries in the "exec" dispatch table that aren't dynamic.
import collections
- * Initialize a dispatch table with pointers to Mesa's immediate-mode
- * commands.
+ * Initialize a context's exec table with pointers to Mesa's supported
+ * GL functions.
- * Pointers to glBegin()/glEnd() object commands and a few others
- * are provided via the GLvertexformat interface.
+ * This function depends on ctx->Version.
*
* \param ctx GL context to which \c exec belongs.
*
* \param ctx GL context to which \c exec belongs.
- * \param exec dispatch table.
-struct _glapi_table *
-_mesa_create_exec_table(struct gl_context *ctx)
+void
+_mesa_initialize_exec_table(struct gl_context *ctx)
{
struct _glapi_table *exec;
{
struct _glapi_table *exec;
- exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
- if (exec == NULL)
- return NULL;
+ exec = ctx->Exec;
+ assert(exec != NULL);
extern struct _glapi_table *
_mesa_alloc_dispatch_table(int size);
extern struct _glapi_table *
_mesa_alloc_dispatch_table(int size);
-extern struct _glapi_table *
-_mesa_create_exec_table(struct gl_context *ctx);
+extern void
+_mesa_initialize_exec_table(struct gl_context *ctx);
- /* setup the API dispatch tables */
- ctx->Exec = _mesa_create_exec_table(ctx);
+ /* setup the API dispatch tables with all nop functions */
+ ctx->Exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
+
+ /* setup the API exec functions */
+ _mesa_initialize_exec_table(ctx);
if (!ctx->Exec) {
_mesa_reference_shared_state(ctx, &ctx->Shared, NULL);
if (!ctx->Exec) {
_mesa_reference_shared_state(ctx, &ctx->Shared, NULL);