restore FASTCALL stuff
[mesa.git] / src / glx / x11 / glx_pbuffer.c
index a7d9f122cb066b6b14a98a7d41d97dab463d79cb..83c550559c0c596e0cab9c682f108cc269489284 100644 (file)
@@ -31,8 +31,8 @@
 
 #include <inttypes.h>
 #include "glxclient.h"
-#include <extutil.h>
-#include <Xext.h>
+#include <X11/extensions/extutil.h>
+#include <X11/extensions/Xext.h>
 #include <assert.h>
 #include <string.h>
 #include "glapi.h"
 #include "glcontextmodes.h"
 #include "glheader.h"
 
-#ifdef IN_DOXYGEN
-#define GLX_PREFIX(x) x
-#endif /* IN_DOXYGEN */
-
 static void ChangeDrawableAttribute( Display * dpy, GLXDrawable drawable,
     const CARD32 * attribs, size_t num_attribs );
 
@@ -278,14 +274,16 @@ CreateDrawable( Display *dpy, const __GLcontextModes * fbconfig,
 {
    xGLXCreateWindowReq * req;
    CARD32 * data;
-   unsigned int  i;
-
+   unsigned int i;
 
-   for ( i = 0 ; attrib_list[i * 2] != None ; i++ )
-      /* empty */ ;
+   i = 0;
+   if (attrib_list) {
+       while (attrib_list[i * 2] != None)
+          i++;
+   }
 
    LockDisplay(dpy);
-   GetReqExtra( GLXCreateWindow, 20 + (8 * i), req );
+   GetReqExtra( GLXCreateWindow, 8 * i, req );
    data = (CARD32 *) (req + 1);
 
    req->reqType = __glXSetupForCommand(dpy);
@@ -293,12 +291,15 @@ CreateDrawable( Display *dpy, const __GLcontextModes * fbconfig,
    req->screen = (CARD32) fbconfig->screen;
    req->fbconfig = fbconfig->fbconfigID;
    req->window = (GLXPbuffer) drawable;
+   req->glxwindow = (GLXWindow) XAllocID(dpy);
    req->numAttribs = (CARD32) i;
 
+   memcpy( data, attrib_list, 8 * i );
+   
    UnlockDisplay(dpy);
    SyncHandle();
    
-   return drawable;
+   return (GLXDrawable)req->glxwindow;
 }
 
 
@@ -355,10 +356,11 @@ CreatePbuffer( Display *dpy, const __GLcontextModes * fbconfig,
    CARD32 * data;
    unsigned int  i;
 
-
-   for ( i = 0 ; attrib_list[i * 2] != None ; i++ )
-      /* empty */ ;
-
+   i = 0;
+   if (attrib_list) {
+       while (attrib_list[i * 2])
+          i++;
+   }
 
    LockDisplay(dpy);
    id = XAllocID(dpy);
@@ -416,9 +418,9 @@ CreatePbuffer( Display *dpy, const __GLcontextModes * fbconfig,
  * Create a new pbuffer.
  */
 PUBLIC GLXPbufferSGIX
-GLX_PREFIX(glXCreateGLXPbufferSGIX)(Display *dpy, GLXFBConfigSGIX config,
-                                   unsigned int width, unsigned int height,
-                                   int *attrib_list)
+glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfigSGIX config,
+                       unsigned int width, unsigned int height,
+                       int *attrib_list)
 {
    return (GLXPbufferSGIX) CreatePbuffer( dpy, (__GLcontextModes *) config,
                                          width, height,
@@ -430,8 +432,7 @@ GLX_PREFIX(glXCreateGLXPbufferSGIX)(Display *dpy, GLXFBConfigSGIX config,
  * Create a new pbuffer.
  */
 PUBLIC GLXPbuffer
-GLX_PREFIX(glXCreatePbuffer)(Display *dpy, GLXFBConfig config,
-                            const int *attrib_list)
+glXCreatePbuffer(Display *dpy, GLXFBConfig config, const int *attrib_list)
 {
    return (GLXPbuffer) CreatePbuffer( dpy, (__GLcontextModes *) config,
                                      0, 0,
@@ -443,7 +444,7 @@ GLX_PREFIX(glXCreatePbuffer)(Display *dpy, GLXFBConfig config,
  * Destroy an existing pbuffer.
  */
 PUBLIC void
-GLX_PREFIX(glXDestroyPbuffer)(Display *dpy, GLXPbuffer pbuf)
+glXDestroyPbuffer(Display *dpy, GLXPbuffer pbuf)
 {
    DestroyPbuffer( dpy, pbuf );
 }
@@ -453,8 +454,8 @@ GLX_PREFIX(glXDestroyPbuffer)(Display *dpy, GLXPbuffer pbuf)
  * Query an attribute of a drawable.
  */
 PUBLIC void
-GLX_PREFIX(glXQueryDrawable)(Display *dpy, GLXDrawable drawable,
-                                  int attribute, unsigned int *value)
+glXQueryDrawable(Display *dpy, GLXDrawable drawable,
+                int attribute, unsigned int *value)
 {
    GetDrawableAttribute( dpy, drawable, attribute, value );
 }
@@ -464,8 +465,8 @@ GLX_PREFIX(glXQueryDrawable)(Display *dpy, GLXDrawable drawable,
  * Query an attribute of a pbuffer.
  */
 PUBLIC int
-GLX_PREFIX(glXQueryGLXPbufferSGIX)(Display *dpy, GLXPbufferSGIX drawable,
-                                  int attribute, unsigned int *value)
+glXQueryGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX drawable,
+                      int attribute, unsigned int *value)
 {
    return GetDrawableAttribute( dpy, drawable, attribute, value );
 }
@@ -475,8 +476,7 @@ GLX_PREFIX(glXQueryGLXPbufferSGIX)(Display *dpy, GLXPbufferSGIX drawable,
  * Select the event mask for a drawable.
  */
 PUBLIC void
-GLX_PREFIX(glXSelectEvent)(Display *dpy, GLXDrawable drawable,
-                          unsigned long mask)
+glXSelectEvent(Display *dpy, GLXDrawable drawable, unsigned long mask)
 {
    CARD32 attribs[2];
 
@@ -491,8 +491,7 @@ GLX_PREFIX(glXSelectEvent)(Display *dpy, GLXDrawable drawable,
  * Get the selected event mask for a drawable.
  */
 PUBLIC void
-GLX_PREFIX(glXGetSelectedEvent)(Display *dpy, GLXDrawable drawable,
-                               unsigned long *mask)
+glXGetSelectedEvent(Display *dpy, GLXDrawable drawable, unsigned long *mask)
 {
    unsigned int value;
 
@@ -508,8 +507,8 @@ GLX_PREFIX(glXGetSelectedEvent)(Display *dpy, GLXDrawable drawable,
 
 
 PUBLIC GLXPixmap
-GLX_PREFIX(glXCreatePixmap)( Display *dpy, GLXFBConfig config, Pixmap pixmap,
-                            const int *attrib_list )
+glXCreatePixmap( Display *dpy, GLXFBConfig config, Pixmap pixmap,
+                const int *attrib_list )
 {
    return CreateDrawable( dpy, (__GLcontextModes *) config,
                          (Drawable) pixmap, attrib_list,
@@ -518,8 +517,8 @@ GLX_PREFIX(glXCreatePixmap)( Display *dpy, GLXFBConfig config, Pixmap pixmap,
 
 
 PUBLIC GLXWindow
-GLX_PREFIX(glXCreateWindow)( Display *dpy, GLXFBConfig config, Window win,
-                            const int *attrib_list )
+glXCreateWindow( Display *dpy, GLXFBConfig config, Window win,
+                const int *attrib_list )
 {
    return CreateDrawable( dpy, (__GLcontextModes *) config,
                          (Drawable) win, attrib_list,
@@ -528,14 +527,14 @@ GLX_PREFIX(glXCreateWindow)( Display *dpy, GLXFBConfig config, Window win,
 
 
 PUBLIC void
-GLX_PREFIX(glXDestroyPixmap)(Display *dpy, GLXPixmap pixmap)
+glXDestroyPixmap(Display *dpy, GLXPixmap pixmap)
 {
    DestroyDrawable( dpy, (GLXDrawable) pixmap, X_GLXDestroyPixmap );
 }
 
 
 PUBLIC void
-GLX_PREFIX(glXDestroyWindow)(Display *dpy, GLXWindow win)
+glXDestroyWindow(Display *dpy, GLXWindow win)
 {
    DestroyDrawable( dpy, (GLXDrawable) win, X_GLXDestroyWindow );
 }