diff options
author | Jordan Justen <[email protected]> | 2012-11-16 10:27:13 -0800 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2012-12-16 15:30:27 -0800 |
commit | d44014953835e9180eeb54a7969470396d7f3fd0 (patch) | |
tree | d4dfec92f530f834f2d02fdb0870b02396669516 /src | |
parent | fa5078c255b5b57514ae854ecd6264379641c924 (diff) |
mesa: separate exec allocation from initialization
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mapi/glapi/gen/gl_genexec.py | 20 | ||||
-rw-r--r-- | src/mesa/main/api_exec.h | 4 | ||||
-rw-r--r-- | src/mesa/main/context.c | 7 |
3 files changed, 15 insertions, 16 deletions
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py index 593d1955b1c..7952ace280f 100644 --- a/src/mapi/glapi/gen/gl_genexec.py +++ b/src/mapi/glapi/gen/gl_genexec.py @@ -22,7 +22,7 @@ # 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 @@ -112,29 +112,25 @@ header = """/** /** - * 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 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; - exec = _mesa_alloc_dispatch_table(_gloffset_COUNT); - if (exec == NULL) - return NULL; + exec = ctx->Exec; + assert(exec != NULL); """ footer = """ - return exec; } """ diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h index 7d37ff754be..8292c12de1f 100644 --- a/src/mesa/main/api_exec.h +++ b/src/mesa/main/api_exec.h @@ -33,8 +33,8 @@ struct gl_context; 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); #endif diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index fa552e8180b..df7647dd5ad 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -935,8 +935,11 @@ _mesa_initialize_context(struct gl_context *ctx, return GL_FALSE; } - /* 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); |