Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / glx / single2.c
index a1461956b993e3d392f4d5adc5209c2abffa533a..2a1bf06bc0abcb4d3987b54369c3bbb21abaea78 100644 (file)
 #include "glxextensions.h"
 #include "indirect.h"
 #include "indirect_vertex_array.h"
-#include "glapitable.h"
-#include "glapidispatch.h"
 #include "glapi.h"
-#ifdef USE_XCB
 #include <xcb/xcb.h>
 #include <xcb/glx.h>
 #include <X11/Xlib-xcb.h>
-#endif /* USE_XCB */
 
 #if !defined(__GNUC__)
 #  define __builtin_expect(x, y) x
@@ -156,7 +152,7 @@ __indirect_glGetError(void)
  * On success \c GL_TRUE is returned.  Otherwise, \c GL_FALSE is returned.
  */
 static GLboolean
-get_client_data(__GLXcontext * gc, GLenum cap, GLintptr * data)
+get_client_data(struct glx_context * gc, GLenum cap, GLintptr * data)
 {
    GLboolean retval = GL_TRUE;
    __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
@@ -334,7 +330,7 @@ __indirect_glGetBooleanv(GLenum val, GLboolean * b)
 
    if (compsize == 0) {
       /*
-       ** Error occured; don't modify user's buffer.
+       ** Error occurred; don't modify user's buffer.
        */
    }
    else {
@@ -385,7 +381,7 @@ __indirect_glGetDoublev(GLenum val, GLdouble * d)
 
    if (compsize == 0) {
       /*
-       ** Error occured; don't modify user's buffer.
+       ** Error occurred; don't modify user's buffer.
        */
    }
    else {
@@ -436,7 +432,7 @@ __indirect_glGetFloatv(GLenum val, GLfloat * f)
 
    if (compsize == 0) {
       /*
-       ** Error occured; don't modify user's buffer.
+       ** Error occurred; don't modify user's buffer.
        */
    }
    else {
@@ -487,7 +483,7 @@ __indirect_glGetIntegerv(GLenum val, GLint * i)
 
    if (compsize == 0) {
       /*
-       ** Error occured; don't modify user's buffer.
+       ** Error occurred; don't modify user's buffer.
        */
    }
    else {
@@ -592,7 +588,7 @@ __indirect_glRenderMode(GLenum mode)
    if (reply.newMode != mode) {
       /*
        ** Switch to new mode did not take effect, therefore an error
-       ** occured.  When an error happens the server won't send us any
+       ** occurred.  When an error happens the server won't send us any
        ** other data.
        */
    }
@@ -646,7 +642,7 @@ version_from_string(const char *ver, int *major_version, int *minor_version)
 const GLubyte *
 __indirect_glGetString(GLenum name)
 {
-   __GLXcontext *gc = __glXGetCurrentContext();
+   struct glx_context *gc = __glXGetCurrentContext();
    Display *dpy = gc->currentDpy;
    GLubyte *s = NULL;
 
@@ -723,7 +719,7 @@ __indirect_glGetString(GLenum name)
                 */
                const size_t size = 7 + strlen((char *) s) + 4;
 
-               gc->version = Xmalloc(size);
+               gc->version = malloc(size);
                if (gc->version == NULL) {
                   /* If we couldn't allocate memory for the new string,
                    * make a best-effort and just copy the client-side version
@@ -739,7 +735,7 @@ __indirect_glGetString(GLenum name)
                else {
                   snprintf((char *) gc->version, size, "%u.%u (%s)",
                            client_major, client_minor, s);
-                  Xfree(s);
+                  free(s);
                   s = gc->version;
                }
             }
@@ -784,7 +780,7 @@ __indirect_glGetString(GLenum name)
 #endif
 
             __glXCalculateUsableGLExtensions(gc, (char *) s, major, minor);
-            XFree(s);
+            free(s);
             s = gc->extensions;
             break;
          }
@@ -837,7 +833,7 @@ __indirect_glIsEnabled(GLenum cap)
 void
 __indirect_glGetPointerv(GLenum pname, void **params)
 {
-   __GLXcontext *gc = __glXGetCurrentContext();
+   struct glx_context *gc = __glXGetCurrentContext();
    __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
    Display *dpy = gc->currentDpy;
 
@@ -885,15 +881,14 @@ GLboolean
 __indirect_glAreTexturesResident(GLsizei n, const GLuint * textures,
                                  GLboolean * residences)
 {
-   __GLXcontext *const gc = __glXGetCurrentContext();
+   struct glx_context *const gc = __glXGetCurrentContext();
    Display *const dpy = gc->currentDpy;
    GLboolean retval = (GLboolean) 0;
-   const GLuint cmdlen = 4 + __GLX_PAD((n * 4));
    if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) {
-#ifdef USE_XCB
       xcb_connection_t *c = XGetXCBConnection(dpy);
+      xcb_glx_are_textures_resident_reply_t *reply;
       (void) __glXFlushRenderBuffer(gc, gc->pc);
-      xcb_glx_are_textures_resident_reply_t *reply =
+      reply =
          xcb_glx_are_textures_resident_reply(c,
                                              xcb_glx_are_textures_resident
                                              (c, gc->currentContextTag, n,
@@ -903,30 +898,6 @@ __indirect_glAreTexturesResident(GLsizei n, const GLuint * textures,
                     sizeof(GLboolean));
       retval = reply->ret_val;
       free(reply);
-#else
-      GLubyte const *pc =
-         __glXSetupSingleRequest(gc, X_GLsop_AreTexturesResident, cmdlen);
-      (void) memcpy((void *) (pc + 0), (void *) (&n), 4);
-      (void) memcpy((void *) (pc + 4), (void *) (textures), (n * 4));
-      if (n & 3) {
-         /* n is not a multiple of four.
-          * When reply_is_always_array is TRUE, __glXReadReply() will
-          * put a multiple of four bytes into the dest buffer.  If the
-          * caller's buffer is not a multiple of four in size, we'll write
-          * out of bounds.  So use a temporary buffer that's a few bytes
-          * larger.
-          */
-         GLboolean *res4 = malloc((n + 3) & ~3);
-         retval = (GLboolean) __glXReadReply(dpy, 1, res4, GL_TRUE);
-         memcpy(residences, res4, n);
-         free(res4);
-      }
-      else {
-         retval = (GLboolean) __glXReadReply(dpy, 1, residences, GL_TRUE);
-      }
-      UnlockDisplay(dpy);
-      SyncHandle();
-#endif /* USE_XCB */
    }
    return retval;
 }
@@ -941,14 +912,17 @@ GLboolean
 glAreTexturesResidentEXT(GLsizei n, const GLuint * textures,
                          GLboolean * residences)
 {
-   __GLXcontext *const gc = __glXGetCurrentContext();
+   struct glx_context *const gc = __glXGetCurrentContext();
 
    if (gc->isDirect) {
-      return CALL_AreTexturesResident(GET_DISPATCH(),
-                                      (n, textures, residences));
+      const _glapi_proc *const table = (_glapi_proc *) GET_DISPATCH();
+      PFNGLARETEXTURESRESIDENTEXTPROC p =
+         (PFNGLARETEXTURESRESIDENTEXTPROC) table[332];
+
+      return p(n, textures, residences);
    }
    else {
-      __GLXcontext *const gc = __glXGetCurrentContext();
+      struct glx_context *const gc = __glXGetCurrentContext();
       Display *const dpy = gc->currentDpy;
       GLboolean retval = (GLboolean) 0;
       const GLuint cmdlen = 4 + __GLX_PAD((n * 4));