mesa: clean up validate_texture_wrap_mode
[mesa.git] / src / mesa / main / api_exec.c
index cd002f6bc2775024309265862a5302e40cbdcff8..26fd37e637752cf28a52c9d283e929e55801c154 100644 (file)
@@ -78,6 +78,9 @@
 #include "polygon.h"
 #include "queryobj.h"
 #include "readpix.h"
+#if FEATURE_ARB_sampler_objects
+#include "samplerobj.h"
+#endif
 #include "scissor.h"
 #include "stencil.h"
 #include "texenv.h"
@@ -87,6 +90,8 @@
 #include "texobj.h"
 #include "texparam.h"
 #include "texstate.h"
+#include "texstorage.h"
+#include "texturebarrier.h"
 #include "transformfeedback.h"
 #include "mtypes.h"
 #include "varray.h"
 #if FEATURE_GL
 
 
-#ifdef _GLAPI_USE_REMAP_TABLE
-
-#define need_MESA_remap_table
-#include "main/remap.h"
-#include "main/remap_helper.h"
-
-/* This is shared across all APIs but We define this here since
- * desktop GL has the biggest remap table. */
-int driDispatchRemapTable[driDispatchRemapTable_size];
-
-/**
- * Map the functions which are already static.
- *
- * When a extension function are incorporated into the ABI, the
- * extension suffix is usually stripped.  Mapping such functions
- * makes sure the alternative names are available.
- *
- * Note that functions mapped by _mesa_init_remap_table() are
- * excluded.
- */
-void
-_mesa_map_static_functions(void)
-{
-   /* Remap static functions which have alternative names and are in the ABI.
-    * This is to be on the safe side.  glapi should have defined those names.
-    */
-   _mesa_map_function_array(MESA_alt_functions);
-}
-
-void
-_mesa_init_remap_table(void)
-{
-   _mesa_do_init_remap_table(_mesa_function_pool,
-                            driDispatchRemapTable_size,
-                            MESA_remap_table_functions);
-}
-
-#endif /* _GLAPI_USE_REMAP_TABLE */
-
-
 /**
  * Initialize a dispatch table with pointers to Mesa's immediate-mode
  * commands.
@@ -160,7 +125,7 @@ _mesa_create_exec_table(void)
 {
    struct _glapi_table *exec;
 
-   exec = _mesa_alloc_dispatch_table(sizeof *exec);
+   exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
    if (exec == NULL)
       return NULL;
 
@@ -401,6 +366,10 @@ _mesa_create_exec_table(void)
    SET_PointParameterfvEXT(exec, _mesa_PointParameterfv);
 #endif
 
+   /* 95. GL_ARB_ES2_compatibility */
+   SET_ClearDepthf(exec, _mesa_ClearDepthf);
+   SET_DepthRangef(exec, _mesa_DepthRangef);
+
    /* 97. GL_EXT_compiled_vertex_array */
 #if _HAVE_FULL_GL
    SET_LockArraysEXT(exec, _mesa_LockArraysEXT);
@@ -501,6 +470,7 @@ _mesa_create_exec_table(void)
    SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT);
 
    /* 352. GL_EXT_transform_feedback */
+   /* ARB 93. GL_ARB_transform_feedback2 */
    _mesa_init_transform_feedback_dispatch(exec);
 
    /* 364. GL_EXT_provoking_vertex */
@@ -534,6 +504,9 @@ _mesa_create_exec_table(void)
    SET_CompressedTexSubImage2DARB(exec, _mesa_CompressedTexSubImage2DARB);
    SET_CompressedTexSubImage1DARB(exec, _mesa_CompressedTexSubImage1DARB);
    SET_GetCompressedTexImageARB(exec, _mesa_GetCompressedTexImageARB);
+
+   /* ARB 104. GL_ARB_robustness */
+   SET_GetnCompressedTexImageARB(exec, _mesa_GetnCompressedTexImageARB);
 #endif
 
    /* ARB 14. GL_ARB_point_parameters */
@@ -629,6 +602,12 @@ _mesa_create_exec_table(void)
    SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB);
 #endif
 
+   /* ARB 104. GL_ARB_robustness */
+   SET_GetGraphicsResetStatusARB(exec, _mesa_GetGraphicsResetStatusARB);
+   SET_GetnPolygonStippleARB(exec, _mesa_GetnPolygonStippleARB);
+   SET_GetnTexImageARB(exec, _mesa_GetnTexImageARB);
+   SET_ReadnPixelsARB(exec, _mesa_ReadnPixelsARB);
+
    /* GL_ARB_sync */
    _mesa_init_sync_dispatch(exec);
 
@@ -726,6 +705,8 @@ _mesa_create_exec_table(void)
    SET_FramebufferTextureFaceARB(exec, _mesa_FramebufferTextureFaceARB);
 #endif
 
+   SET_ClampColorARB(exec, _mesa_ClampColorARB);
+
    /* GL_EXT_texture_integer */
    SET_ClearColorIiEXT(exec, _mesa_ClearColorIiEXT);
    SET_ClearColorIuiEXT(exec, _mesa_ClearColorIuiEXT);
@@ -734,6 +715,46 @@ _mesa_create_exec_table(void)
    SET_TexParameterIivEXT(exec, _mesa_TexParameterIiv);
    SET_TexParameterIuivEXT(exec, _mesa_TexParameterIuiv);
 
+   /* GL_EXT_gpu_shader4 / OpenGL 3.0 */
+   SET_GetVertexAttribIivEXT(exec, _mesa_GetVertexAttribIiv);
+   SET_GetVertexAttribIuivEXT(exec, _mesa_GetVertexAttribIuiv);
+   SET_VertexAttribIPointerEXT(exec, _mesa_VertexAttribIPointer);
+
+   /* GL 3.0 (functions not covered by other extensions) */
+   SET_ClearBufferiv(exec, _mesa_ClearBufferiv);
+   SET_ClearBufferuiv(exec, _mesa_ClearBufferuiv);
+   SET_ClearBufferfv(exec, _mesa_ClearBufferfv);
+   SET_ClearBufferfi(exec, _mesa_ClearBufferfi);
+   SET_GetStringi(exec, _mesa_GetStringi);
+   SET_ClampColor(exec, _mesa_ClampColorARB);
+
+   /* GL_ARB_instanced_arrays */
+   SET_VertexAttribDivisorARB(exec, _mesa_VertexAttribDivisor);
+
+   /* GL_ARB_draw_buffer_blend */
+   SET_BlendFunciARB(exec, _mesa_BlendFunci);
+   SET_BlendFuncSeparateiARB(exec, _mesa_BlendFuncSeparatei);
+   SET_BlendEquationiARB(exec, _mesa_BlendEquationi);
+   SET_BlendEquationSeparateiARB(exec, _mesa_BlendEquationSeparatei);
+
+   /* GL_NV_texture_barrier */
+   SET_TextureBarrierNV(exec, _mesa_TextureBarrierNV);
+   /* GL_ARB_texture_buffer_object */
+   SET_TexBufferARB(exec, _mesa_TexBuffer);
+
+   /* GL_ARB_texture_storage */
+   SET_TexStorage1D(exec, _mesa_TexStorage1D);
+   SET_TexStorage2D(exec, _mesa_TexStorage2D);
+   SET_TexStorage3D(exec, _mesa_TexStorage3D);
+   SET_TextureStorage1DEXT(exec, _mesa_TextureStorage1DEXT);
+   SET_TextureStorage2DEXT(exec, _mesa_TextureStorage2DEXT);
+   SET_TextureStorage3DEXT(exec, _mesa_TextureStorage3DEXT);
+
+#if FEATURE_ARB_sampler_objects
+   _mesa_init_sampler_object_dispatch(exec);
+#endif
+
    return exec;
 }