glapi: regenerate files
[mesa.git] / src / glx / indirect.c
index c0fff6c4dcfc02b72cb2314b95bc30dd0b609adc..a6b0c0d6dac772ed2329bc35bf2315e9a49f990f 100644 (file)
@@ -30,7 +30,6 @@
 #include "indirect.h"
 #include "glxclient.h"
 #include "indirect_size.h"
-#include "glapidispatch.h"
 #include "glapi.h"
 #include "glthread.h"
 #include <GL/glxproto.h>
 
 #define __GLX_PAD(n) (((n) + 3) & ~3)
 
-#  if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
-#    define FASTCALL __attribute__((fastcall))
-#  else
-#    define FASTCALL
-#  endif
-#  if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
-#    define NOINLINE __attribute__((noinline))
-#  else
-#    define NOINLINE
-#  endif
+#if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+#define FASTCALL __attribute__((fastcall))
+#else
+#define FASTCALL
+#endif
+#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+#define NOINLINE __attribute__((noinline))
+#else
+#define NOINLINE
+#endif
 
 #ifndef __GNUC__
-#  define __builtin_expect(x, y) x
+#define __builtin_expect(x, y) x
 #endif
 
 /* If the size and opcode values are known at compile-time, this will, on
@@ -91,7 +90,7 @@ __glXReadReply(Display * dpy, size_t size, void *dest,
 }
 
 NOINLINE void
-__glXReadPixelReply(Display * dpy, struct glx_context * gc, unsigned max_dim,
+__glXReadPixelReply(Display * dpy, struct glx_context *gc, unsigned max_dim,
                     GLint width, GLint height, GLint depth, GLenum format,
                     GLenum type, void *dest, GLboolean dimensions_in_reply)
 {
@@ -138,7 +137,7 @@ __glXReadPixelReply(Display * dpy, struct glx_context * gc, unsigned max_dim,
 #define X_GLXSingle 0
 
 NOINLINE FASTCALL GLubyte *
-__glXSetupSingleRequest(struct glx_context * gc, GLint sop, GLint cmdlen)
+__glXSetupSingleRequest(struct glx_context *gc, GLint sop, GLint cmdlen)
 {
     xGLXSingleReq *req;
     Display *const dpy = gc->currentDpy;
@@ -153,7 +152,7 @@ __glXSetupSingleRequest(struct glx_context * gc, GLint sop, GLint cmdlen)
 }
 
 NOINLINE FASTCALL GLubyte *
-__glXSetupVendorRequest(struct glx_context * gc, GLint code, GLint vop,
+__glXSetupVendorRequest(struct glx_context *gc, GLint code, GLint vop,
                         GLint cmdlen)
 {
     xGLXVendorPrivateReq *req;
@@ -5200,7 +5199,7 @@ glDeleteTexturesEXT(GLsizei n, const GLuint * textures)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_DeleteTextures(GET_DISPATCH(), (n, textures));
+        GET_DISPATCH()->DeleteTextures(n, textures);
     } else
 #endif
     {
@@ -5271,7 +5270,7 @@ glGenTexturesEXT(GLsizei n, GLuint * textures)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GenTextures(GET_DISPATCH(), (n, textures));
+        GET_DISPATCH()->GenTextures(n, textures);
     } else
 #endif
     {
@@ -5336,7 +5335,7 @@ glIsTextureEXT(GLuint texture)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        return CALL_IsTexture(GET_DISPATCH(), (texture));
+        return GET_DISPATCH()->IsTexture(texture);
     } else
 #endif
     {
@@ -5652,7 +5651,7 @@ glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid * table)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetColorTable(GET_DISPATCH(), (target, format, type, table));
+        GET_DISPATCH()->GetColorTable(target, format, type, table);
     } else
 #endif
     {
@@ -5728,8 +5727,7 @@ glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetColorTableParameterfv(GET_DISPATCH(),
-                                      (target, pname, params));
+        GET_DISPATCH()->GetColorTableParameterfv(target, pname, params);
     } else
 #endif
     {
@@ -5801,8 +5799,7 @@ glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetColorTableParameteriv(GET_DISPATCH(),
-                                      (target, pname, params));
+        GET_DISPATCH()->GetColorTableParameteriv(target, pname, params);
     } else
 #endif
     {
@@ -6127,8 +6124,7 @@ gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type,
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetConvolutionFilter(GET_DISPATCH(),
-                                  (target, format, type, image));
+        GET_DISPATCH()->GetConvolutionFilter(target, format, type, image);
     } else
 #endif
     {
@@ -6205,8 +6201,7 @@ gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetConvolutionParameterfv(GET_DISPATCH(),
-                                       (target, pname, params));
+        GET_DISPATCH()->GetConvolutionParameterfv(target, pname, params);
     } else
 #endif
     {
@@ -6278,8 +6273,7 @@ gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetConvolutionParameteriv(GET_DISPATCH(),
-                                       (target, pname, params));
+        GET_DISPATCH()->GetConvolutionParameteriv(target, pname, params);
     } else
 #endif
     {
@@ -6358,8 +6352,7 @@ gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format,
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetHistogram(GET_DISPATCH(),
-                          (target, reset, format, type, values));
+        GET_DISPATCH()->GetHistogram(target, reset, format, type, values);
     } else
 #endif
     {
@@ -6435,7 +6428,7 @@ gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetHistogramParameterfv(GET_DISPATCH(), (target, pname, params));
+        GET_DISPATCH()->GetHistogramParameterfv(target, pname, params);
     } else
 #endif
     {
@@ -6506,7 +6499,7 @@ gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetHistogramParameteriv(GET_DISPATCH(), (target, pname, params));
+        GET_DISPATCH()->GetHistogramParameteriv(target, pname, params);
     } else
 #endif
     {
@@ -6581,7 +6574,7 @@ gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format,
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, values));
+        GET_DISPATCH()->GetMinmax(target, reset, format, type, values);
     } else
 #endif
     {
@@ -6655,7 +6648,7 @@ gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetMinmaxParameterfv(GET_DISPATCH(), (target, pname, params));
+        GET_DISPATCH()->GetMinmaxParameterfv(target, pname, params);
     } else
 #endif
     {
@@ -6723,7 +6716,7 @@ gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params)
 
 #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
     if (gc->isDirect) {
-        CALL_GetMinmaxParameteriv(GET_DISPATCH(), (target, pname, params));
+        GET_DISPATCH()->GetMinmaxParameteriv(target, pname, params);
     } else
 #endif
     {
@@ -8604,6 +8597,21 @@ __indirect_glDrawBuffersARB(GLsizei n, const GLenum * bufs)
     }
 }
 
+#define X_GLrop_ClampColorARB 234
+void
+__indirect_glClampColorARB(GLenum target, GLenum clamp)
+{
+    struct glx_context *const gc = __glXGetCurrentContext();
+    const GLuint cmdlen = 12;
+    emit_header(gc->pc, X_GLrop_ClampColorARB, cmdlen);
+    (void) memcpy((void *) (gc->pc + 4), (void *) (&target), 4);
+    (void) memcpy((void *) (gc->pc + 8), (void *) (&clamp), 4);
+    gc->pc += cmdlen;
+    if (__builtin_expect(gc->pc > gc->limit, 0)) {
+        (void) __glXFlushRenderBuffer(gc, gc->pc);
+    }
+}
+
 #define X_GLrop_RenderbufferStorageMultisample 4331
 void
 __indirect_glRenderbufferStorageMultisample(GLenum target, GLsizei samples,
@@ -9268,7 +9276,7 @@ __indirect_glLoadProgramNV(GLenum target, GLuint id, GLsizei len,
 
 #define X_GLrop_ProgramParameters4dvNV 4187
 void
-__indirect_glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num,
+__indirect_glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei num,
                                     const GLdouble * params)
 {
     struct glx_context *const gc = __glXGetCurrentContext();
@@ -9292,7 +9300,7 @@ __indirect_glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num,
 
 #define X_GLrop_ProgramParameters4fvNV 4186
 void
-__indirect_glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num,
+__indirect_glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei num,
                                     const GLfloat * params)
 {
     struct glx_context *const gc = __glXGetCurrentContext();
@@ -10664,5 +10672,65 @@ __indirect_glFramebufferTextureLayerEXT(GLenum target, GLenum attachment,
 }
 
 
-#  undef FASTCALL
-#  undef NOINLINE
+#ifdef GLX_SHARED_GLAPI
+
+static const struct proc_pair {
+    const char *name;
+    _glapi_proc proc;
+} proc_pairs[20] = {
+    {
+    "AreTexturesResidentEXT", (_glapi_proc) glAreTexturesResidentEXT}, {
+    "DeleteTexturesEXT", (_glapi_proc) glDeleteTexturesEXT}, {
+    "GenTexturesEXT", (_glapi_proc) glGenTexturesEXT}, {
+    "GetColorTableEXT", (_glapi_proc) glGetColorTableEXT}, {
+    "GetColorTableParameterfvEXT",
+            (_glapi_proc) glGetColorTableParameterfvEXT}, {
+    "GetColorTableParameterfvSGI",
+            (_glapi_proc) glGetColorTableParameterfvEXT}, {
+    "GetColorTableParameterivEXT",
+            (_glapi_proc) glGetColorTableParameterivEXT}, {
+    "GetColorTableParameterivSGI",
+            (_glapi_proc) glGetColorTableParameterivEXT}, {
+    "GetColorTableSGI", (_glapi_proc) glGetColorTableEXT}, {
+    "GetConvolutionFilterEXT", (_glapi_proc) gl_dispatch_stub_356}, {
+    "GetConvolutionParameterfvEXT", (_glapi_proc) gl_dispatch_stub_357}, {
+    "GetConvolutionParameterivEXT", (_glapi_proc) gl_dispatch_stub_358}, {
+    "GetHistogramEXT", (_glapi_proc) gl_dispatch_stub_361}, {
+    "GetHistogramParameterfvEXT", (_glapi_proc) gl_dispatch_stub_362}, {
+    "GetHistogramParameterivEXT", (_glapi_proc) gl_dispatch_stub_363}, {
+    "GetMinmaxEXT", (_glapi_proc) gl_dispatch_stub_364}, {
+    "GetMinmaxParameterfvEXT", (_glapi_proc) gl_dispatch_stub_365}, {
+    "GetMinmaxParameterivEXT", (_glapi_proc) gl_dispatch_stub_366}, {
+    "GetSeparableFilterEXT", (_glapi_proc) gl_dispatch_stub_359}, {
+    "IsTextureEXT", (_glapi_proc) glIsTextureEXT}
+};
+
+static int
+__indirect_get_proc_compare(const void *key, const void *memb)
+{
+    const struct proc_pair *pair = (const struct proc_pair *) memb;
+    return strcmp((const char *) key, pair->name);
+}
+
+_glapi_proc
+__indirect_get_proc_address(const char *name)
+{
+    const struct proc_pair *pair;
+
+    /* skip "gl" */
+    name += 2;
+
+    pair = (const struct proc_pair *) bsearch((const void *) name,
+                                              (const void *) proc_pairs,
+                                              ARRAY_SIZE(proc_pairs),
+                                              sizeof(proc_pairs[0]),
+                                              __indirect_get_proc_compare);
+
+    return (pair) ? pair->proc : NULL;
+}
+
+#endif /* GLX_SHARED_GLAPI */
+
+
+#undef FASTCALL
+#undef NOINLINE