mesa: Move struct _glapi_table allocation out of context.c
[mesa.git] / src / mesa / main / api_exec.c
index e62c7aa57249e2fa8b4a81252ed99ac8baf6235c..7b3f3d9ea19d021c9c23b7dd034c55bec80a136d 100644 (file)
@@ -89,6 +89,7 @@
 #include "texobj.h"
 #include "texparam.h"
 #include "texstate.h"
+#include "transformfeedback.h"
 #include "mtypes.h"
 #include "varray.h"
 #include "viewport.h"
 #if FEATURE_ARB_sync
 #include "syncobj.h"
 #endif
-#include "glapi/dispatch.h"
+#include "main/dispatch.h"
 
 
 
  * \param ctx  GL context to which \c exec belongs.
  * \param exec dispatch table.
  */
-void
-_mesa_init_exec_table(struct _glapi_table *exec)
+struct _glapi_table *
+_mesa_create_exec_table(void)
 {
+   struct _glapi_table *exec;
+
+   exec = _mesa_alloc_dispatch_table(sizeof *exec);
+   if (exec == NULL)
+      return NULL;
+
 #if _HAVE_FULL_GL
    _mesa_loopback_init_api_table( exec );
 #endif
@@ -477,6 +484,18 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    /* ???. GL_EXT_depth_bounds_test */
    SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT);
 
+   /* 352. GL_EXT_transform_feedback */
+#if _HAVE_FULL_GL
+   SET_BeginTransformFeedbackEXT(exec, _mesa_BeginTransformFeedback);
+   SET_EndTransformFeedbackEXT(exec, _mesa_EndTransformFeedback);
+   SET_BindBufferRangeEXT(exec, _mesa_BindBufferRange);
+   SET_BindBufferBaseEXT(exec, _mesa_BindBufferBase);
+   SET_BindBufferOffsetEXT(exec, _mesa_BindBufferOffsetEXT);
+   SET_TransformFeedbackVaryingsEXT(exec, _mesa_TransformFeedbackVaryings);
+   SET_GetTransformFeedbackVaryingEXT(exec, _mesa_GetTransformFeedbackVarying);
+#endif
+
+   /* 364. GL_EXT_provoking_vertex */
    SET_ProvokingVertexEXT(exec, _mesa_ProvokingVertexEXT);
 
    /* ARB 1. GL_ARB_multitexture */
@@ -753,4 +772,17 @@ _mesa_init_exec_table(struct _glapi_table *exec)
    /* GL_NV_conditional_render */
    SET_BeginConditionalRenderNV(exec, _mesa_BeginConditionalRender);
    SET_EndConditionalRenderNV(exec, _mesa_EndConditionalRender);
+
+#if FEATURE_OES_EGL_image
+   SET_EGLImageTargetTexture2DOES(exec, _mesa_EGLImageTargetTexture2DOES);
+   SET_EGLImageTargetRenderbufferStorageOES(exec, _mesa_EGLImageTargetRenderbufferStorageOES);
+#endif
+
+#if FEATURE_APPLE_object_purgeable
+   SET_ObjectPurgeableAPPLE(exec, _mesa_ObjectPurgeableAPPLE);
+   SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE);
+   SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE);
+#endif
+
+   return exec;
 }