On 01/18/2013 02:30 PM, Eric Anholt wrote:
This will let us copy from the Exec dispatch to deal with our commands that
don't get compiled into display lists.
---
  src/mesa/main/context.c |    5 ++++-
  src/mesa/main/dlist.c   |   12 +++---------
  src/mesa/main/dlist.h   |    2 +-
  3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index d583f98..6861893 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -912,6 +912,9 @@ _mesa_initialize_dispatch_tables(struct gl_context *ctx)
  {
     /* Do the code-generated setup of the exec table in api_exec.c. */
     _mesa_initialize_exec_table(ctx);
+
+   if (ctx->Save)
+      _mesa_initialize_save_table(ctx);
  }

  /**
@@ -1018,7 +1021,7 @@ _mesa_initialize_context(struct gl_context *ctx,
     switch (ctx->API) {
     case API_OPENGL_COMPAT:
        ctx->BeginEnd = create_beginend_table(ctx);
-      ctx->Save = _mesa_create_save_table(ctx);
+      ctx->Save = _mesa_alloc_dispatch_table();
        if (!ctx->BeginEnd || !ctx->Save)
           goto fail;

diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 7eb2cb2..06c44b9 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -9566,14 +9566,10 @@ exec_MultiModeDrawElementsIBM(const GLenum * mode,
   * initialized from _mesa_init_api_defaults and from the active vtxfmt
   * struct.
   */
-struct _glapi_table *
-_mesa_create_save_table(const struct gl_context *ctx)
+void
+_mesa_initialize_save_table(const struct gl_context *ctx)
  {
-   struct _glapi_table *table;
-
-   table = _mesa_alloc_dispatch_table();
-   if (table == NULL)
-      return NULL;
+   struct _glapi_table *table = ctx->Save;

The compiler doesn't emit an error or a warning here for dropping const?


     _mesa_loopback_init_api_table(ctx, table);

@@ -10233,8 +10229,6 @@ _mesa_create_save_table(const struct gl_context *ctx)

     /* GL_NV_primitive_restart */
     SET_PrimitiveRestartIndex(table, _mesa_PrimitiveRestartIndex);
-
-   return table;
  }


diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h
index 9d4fc68..e049476 100644
--- a/src/mesa/main/dlist.h
+++ b/src/mesa/main/dlist.h
@@ -74,7 +74,7 @@ extern void _mesa_delete_list(struct gl_context *ctx, struct 
gl_display_list *dl

  extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt );

-extern struct _glapi_table *_mesa_create_save_table(const struct gl_context *);
+extern void _mesa_initialize_save_table(const struct gl_context *);

  extern void _mesa_install_dlist_vtxfmt(struct _glapi_table *disp,
                                         const GLvertexformat *vfmt);


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to