Commit c3342c80 authored by Kristian Høgsberg's avatar Kristian Høgsberg

Merge accel_indirect branch to HEAD.

parent b1b731c2
2006-03-10 Kristian Høgsberg <krh@redhat.com>
* Merge accel_indirect branch to HEAD.
2006-03-05 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxcmds.c (DoGetDrawableAttributes): Add
GLX_Y_INVERTED_EXT to the drawable attributes we report.
2006-03-05 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxcmds.c (__glXCreateARGBConfig): Create the fbconfig
for the composite 32 visual after the fact here.
* GL/glx/glxdri.c (__glXDRIbindTexImage): Use 4bpp for 32 bit
visuals too, but only fill the alpha channel for 24 depth
drawables.
2006-03-03 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxdri.c (getDrawableInfo): Work around i915 driver that
tries to render to drawable even if it no longer exists.
Returning 0 cliprects (as dri_util.c does) doesn't seem to do it,
so we set the width and height to 0.
* GL/glx/g_disptab.h:
* GL/glx/glxcmdsswap.c: Fix a couple of warnings.
2006-03-03 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxdri.c (__glXDRIscreenProbe): Log full DRI driver path
when dlopen() fails.
* GL/glx/glxscreens.c (__glXInitScreens): Log the provider name
when we initialize a GLX screen.
* GL/symlink-mesa.sh:
* GL/mesa/swrast/Makefile.am: Update to work with mesa head.
2006-03-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
* GL/glx/glxdri.c: (__glXDRIscreenProbe):
Pass err_msg when dev_priv allocation fails.
2006-03-01 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxdri.c (__glXDRIscreenProbe): Handle failing allocation
of dev_priv.
* GL/glx/glxdri.c (__glXDRIscreenProbe): The DRI driver
_mesa_free()'s the dev_priv passed in so we need to give it a
copy.
2006-03-01 Kevin E. Martin <kem-at-freedesktop-dot-org>
* GL/glx/glxserver.h:
Fix Xvfb, Xnest and Xprt build.
2006-02-28 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxdri.c (__glXDRIscreenProbe): Fix enter/leave confusion.
* configure.ac:
* hw/xfree86/common/xf86Config.c (configServerFlags): Enable AIGLX
by default at configure time and at runtime.
2006-02-27 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxserver.h:
* GL/glx/glxext.c:
* GL/mesa/X/xf86glx.c: Complete the prepare/finish dispatch to
enter/leave server rename.
* GL/glx/glxcmdsswap.c (__glXSwapGetDrawableAttributesSGIX): Add
byte swapping function.
* GL/mesa/swrast/Makefile.am (INCLUDES): Add -I../shader/slang.
* GL/glx/glxcmds.c: Make GLX_EXT_texture_from_pixmap entrypoints
non-static so we can get at them from glxcmdsswap.c.
2006-02-25 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxcmds.c: Add more GLX_EXT_texture_from_pixmap tokens
here as a temporary fix.
2006-02-24 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxcmds.c:
* GL/glx/glxcmdsswap.c:
* GL/glx/glxcontext.h:
* GL/glx/glxdri.c:
* GL/glx/glxscreens.c:
* GL/glx/glxserver.h: Add hooks for GLX_EXT_texture_from_pixmap
and port over naive glTexImage2D implementation. Add support for
glXQueryDrawable.
2006-02-24 Kevin E. Martin <kem-at-freedesktop-dot-org>
* GL/glx/Makefile.am:
Include from Mesa sources before any installed versions.
* GL/glx/glxdri.c: (__glXDRIleaveServer), (__glXDRIenterServer),
(createContext), (destroyContext), (createDrawable),
(destroyDrawable), (getDrawableInfo), (__glXDRIscreenProbe):
Wrap the __DRIinterfaceMethods methods with enter/leaveServer to
make sure server locks are held when calling into the card driver.
2006-02-24 Kristian Høgsberg <krh@redhat.com>
* GL/glx/glxdri.c:
* GL/glx/glxvisuals.c: Add these files.
2006-02-24 Kristian Høgsberg <krh@redhat.com>
* GL/glx/*: Land rewritten accelerated indirect rendering on
accel_indirect_branch.
2006-03-10 Alan Coopersmith <alan.coopersmith@sun.com>
* hw/xfree86/utils/xorgcfg/help.c:
......
noinst_LTLIBRARIES = libglx.la
if AIGLX
GLXDRI_LIBRARY = libglxdri.la
endif
noinst_LTLIBRARIES = libglx.la $(GLXDRI_LIBRARY)
AM_CFLAGS = \
-I@MESA_SOURCE@/include \
@DIX_CFLAGS@ \
@GL_CFLAGS@ \
@XLIB_CFLAGS@ \
-I@MESA_SOURCE@/include \
@LIBDRM_CFLAGS@ \
@DRIPROTO_CFLAGS@ \
-I@MESA_SOURCE@/src/mesa/glapi \
-I@MESA_SOURCE@/src/mesa/main \
@SERVER_DEFINES@ \
......@@ -15,10 +21,20 @@ AM_CFLAGS = \
# none yet
#sdk_HEADERS =
INCLUDES = -I$(top_srcdir)/GL/include -I$(top_srcdir)/hw/xfree86/os-support
INCLUDES = \
-I$(top_srcdir)/GL/include \
-I$(top_srcdir)/hw/xfree86/os-support \
-I$(top_srcdir)/hw/xfree86/os-support/bus \
-I$(top_srcdir)/hw/xfree86/common \
-I$(top_srcdir)/hw/xfree86/dri \
-I$(top_srcdir)/mi
nodist_libglx_la_SOURCES = indirect_size.h
libglxdri_la_SOURCES = \
glxdri.c
libglx_la_SOURCES = \
g_disptab.c \
g_disptab.h \
......@@ -29,8 +45,6 @@ libglx_la_SOURCES = \
glcontextmodes.h \
global.c \
glthread.c \
glxbuf.c \
glxbuf.h \
glxcmds.c \
glxcmdsswap.c \
glxcontext.h \
......@@ -38,14 +52,7 @@ libglx_la_SOURCES = \
glxerror.h \
glxext.c \
glxext.h \
glxfb.c \
glxfb.h \
glximports.c \
glximports.h \
glxmem.c \
glxmem.h \
glxpix.c \
glxpix.h \
glxvisuals.c \
glxscreens.c \
glxscreens.h \
glxserver.h \
......
......@@ -46,6 +46,9 @@ extern int __glXWaitGL(__GLXclientState*, GLbyte*);
extern int __glXWaitX(__GLXclientState*, GLbyte*);
extern int __glXCopyContext(__GLXclientState*, GLbyte*);
extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
extern int __glXUseXFont(__GLXclientState*, GLbyte*);
extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
extern int __glXGetVisualConfigs(__GLXclientState*, GLbyte*);
......@@ -71,6 +74,9 @@ extern int __glXSwapWaitGL(__GLXclientState*, GLbyte*);
extern int __glXSwapWaitX(__GLXclientState*, GLbyte*);
extern int __glXSwapCopyContext(__GLXclientState*, GLbyte*);
extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
extern int __glXSwapGetVisualConfigs(__GLXclientState*, GLbyte*);
......
......@@ -53,6 +53,7 @@ __GLXcontext *__glXLastContext;
RESTYPE __glXContextRes;
RESTYPE __glXClientRes;
RESTYPE __glXPixmapRes;
RESTYPE __glXDrawableRes;
RESTYPE __glXSwapBarrierRes;
/*
......
/* $XFree86: xc/programs/Xserver/GL/glx/glxbuf.c,v 1.6 2001/03/25 05:32:01 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
** Software License B, Version 1.1 (the "License"), the contents of this
** file are subject only to the provisions of the License. You may not use
** this file except in compliance with the License. You may obtain a copy
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
**
** http://oss.sgi.com/projects/FreeB
**
** Note that, as provided in the License, the Software is distributed on an
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
**
** Original Code. The Original Code is: OpenGL Sample Implementation,
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
** Copyright in any portions created by third parties is as indicated
** elsewhere herein. All Rights Reserved.
**
** Additional Notice Provisions: The application programming interfaces
** established by SGI in conjunction with the Original Code are The
** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
** Window System(R) (Version 1.3), released October 19, 1998. This software
** was created using the OpenGL(R) version 1.2.1 Sample Implementation
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
*/
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "glxserver.h"
#include "glxutil.h"
#include "glxbuf.h"
#include "glxfb.h"
#include "glxmem.h"
#include "glxpix.h"
void
__glXFBInitDrawable(__GLXdrawablePrivate *glxPriv, __GLcontextModes *modes)
{
__GLdrawablePrivate *glPriv;
GLint rgbBits;
GLint accumBits;
glPriv = &glxPriv->glPriv;
rgbBits = modes->rgbBits;
accumBits = modes->accumRedBits + modes->accumGreenBits +
modes->accumBlueBits + modes->accumAlphaBits;
#if defined(__GL_ALIGNED_BUFFERS)
/* initialize pixel alignments (for more details see context.h) */
glPriv->xAlignment = 1;
glPriv->yAlignment = 1;
#endif
glxPriv->swapBuffers = __glXFBMemSwapBuffers;
glPriv->yInverted = GL_TRUE; /* Y is upside-down */
if (modes->doubleBufferMode) {
if (modes->colorIndexMode) {
__glXInitFB(&glPriv->frontBuffer, glPriv, modes->indexBits);
__glXInitMem(&glPriv->backBuffer, glPriv, modes->indexBits);
} else {
__glXInitFB(&glPriv->frontBuffer, glPriv, rgbBits);
__glXInitMem(&glPriv->backBuffer, glPriv, rgbBits);
}
} else {
if (modes->colorIndexMode) {
__glXInitFB(&glPriv->frontBuffer, glPriv, modes->indexBits);
} else {
__glXInitFB(&glPriv->frontBuffer, glPriv, rgbBits);
}
}
#if defined(__GL_MAX_AUXBUFFERS) && (__GL_MAX_AUXBUFFERS > 0)
if (modes->maxAuxBuffers > 0) {
GLint i;
for (i=0; i < modes->maxAuxBuffers; i++) {
if (modes->colorIndexMode) {
__glXInitMem(&glPriv->auxBuffer[i], glPriv, modes->indexBits);
} else {
__glXInitMem(&glPriv->auxBuffer[i], glPriv, rgbBits);
}
}
}
#endif
if (modes->haveAccumBuffer) {
__glXInitMem(&glPriv->accumBuffer, glPriv, accumBits);
}
if (modes->haveDepthBuffer) {
__glXInitMem(&glPriv->depthBuffer, glPriv, modes->depthBits);
}
if (modes->haveStencilBuffer) {
__glXInitMem(&glPriv->stencilBuffer, glPriv, modes->stencilBits);
}
}
void
__glXPixInitDrawable(__GLXdrawablePrivate *glxPriv, __GLcontextModes *modes)
{
__GLdrawablePrivate *glPriv;
GLint rgbBits;
GLint accumBits;
assert(glxPriv->pGlxPixmap);
glPriv = &glxPriv->glPriv;
rgbBits = modes->rgbBits;
accumBits = modes->accumRedBits + modes->accumGreenBits +
modes->accumBlueBits + modes->accumAlphaBits;
#if defined(__GL_ALIGNED_BUFFERS)
/* initialize pixel alignments (for more details see context.h) */
glPriv->xAlignment = 1;
glPriv->yAlignment = 1;
#endif
glxPriv->swapBuffers = (GLboolean (*)(__GLXdrawablePrivate *))__glXNop;
glPriv->yInverted = GL_FALSE;
if (modes->doubleBufferMode) {
if (modes->colorIndexMode) {
__glXInitPix(&glPriv->frontBuffer, glPriv, rgbBits,
glxPriv->drawId, glxPriv->pGlxPixmap);
__glXInitMem(&glPriv->backBuffer, glPriv, modes->indexBits);
} else {
__glXInitPix(&glPriv->frontBuffer, glPriv, rgbBits,
glxPriv->drawId, glxPriv->pGlxPixmap);
__glXInitMem(&glPriv->backBuffer, glPriv, rgbBits);
}
} else {
if (modes->colorIndexMode) {
__glXInitPix(&glPriv->frontBuffer, glPriv, rgbBits,
glxPriv->drawId, glxPriv->pGlxPixmap);
} else {
__glXInitPix(&glPriv->frontBuffer, glPriv, rgbBits,
glxPriv->drawId, glxPriv->pGlxPixmap);
}
}
#if defined(__GL_MAX_AUXBUFFERS) && (__GL_MAX_AUXBUFFERS > 0)
if (modes->maxAuxBuffers > 0) {
GLint i;
for (i=0; i < modes->maxAuxBuffers; i++) {
if (modes->colorIndexMode) {
__glXInitMem(&glPriv->auxBuffer[i], glPriv, modes->indexBits);
} else {
__glXInitMem(&glPriv->auxBuffer[i], glPriv, rgbBits);
}
}
}
#endif
if (modes->haveAccumBuffer) {
__glXInitMem(&glPriv->accumBuffer, glPriv, accumBits);
}
if (modes->haveDepthBuffer) {
__glXInitMem(&glPriv->depthBuffer, glPriv, modes->depthBits);
}
if (modes->haveStencilBuffer) {
__glXInitMem(&glPriv->stencilBuffer, glPriv, modes->stencilBits);
}
}
#define __GLX_SET_ACCEL_BUFFER_MASK(bm) \
if (status == GL_FALSE) return GL_FALSE; \
if (status == GL_TRUE) accelBufferMask |= bm; \
/* for __GL_BUFFER_FALLBACK don't do anything */
GLboolean
__glXResizeBuffers(__GLdrawablePrivate *glPriv,
GLint x, GLint y, GLuint width, GLuint height)
{
__GLcontextModes *modes;
__GLdrawableRegion *glRegion;
GLboolean status;
GLuint accelBufferMask;
modes = glPriv->modes;
accelBufferMask = 0;
status = (*glPriv->frontBuffer.resize)(&glPriv->frontBuffer,
x, y, width, height, glPriv,
__GL_FRONT_BUFFER_MASK);
__GLX_SET_ACCEL_BUFFER_MASK(__GL_FRONT_BUFFER_MASK);
if (modes->doubleBufferMode) {
status = (*glPriv->backBuffer.resize)(&glPriv->backBuffer,
x, y, width, height, glPriv,
__GL_BACK_BUFFER_MASK);
__GLX_SET_ACCEL_BUFFER_MASK(__GL_BACK_BUFFER_MASK);
}
#if defined(__GL_MAX_AUXBUFFERS) && (__GL_MAX_AUXBUFFERS > 0)
if (modes->maxAuxBuffers > 0) {
GLint i;
for (i=0; i < modes->maxAuxBuffers; i++) {
status = (*glPriv->auxBuffers[i].resize)(&glPriv->auxBuffer[i],
x, y, width, height,
glPriv,
__GL_AUX_BUFFER_MASK(i));
__GLX_SET_ACCEL_BUFFER_MASK(__GL_AUX_BUFFER_MASK(i));
}
}
#endif
if (modes->haveAccumBuffer) {
status = (*glPriv->accumBuffer.resize)(&glPriv->accumBuffer,
x, y, width, height, glPriv,
__GL_ACCUM_BUFFER_MASK);
__GLX_SET_ACCEL_BUFFER_MASK(__GL_ACCUM_BUFFER_MASK);
}
if (modes->haveDepthBuffer) {
status = (*glPriv->depthBuffer.resize)(&glPriv->depthBuffer,
x, y, width, height, glPriv,
__GL_DEPTH_BUFFER_MASK);
__GLX_SET_ACCEL_BUFFER_MASK(__GL_DEPTH_BUFFER_MASK);
}
if (modes->haveStencilBuffer) {
status = (*glPriv->stencilBuffer.resize)(&glPriv->stencilBuffer,
x, y, width, height, glPriv,
__GL_STENCIL_BUFFER_MASK);
__GLX_SET_ACCEL_BUFFER_MASK(__GL_STENCIL_BUFFER_MASK);
}
glPriv->accelBufferMask = accelBufferMask;
/* finally, update the ownership region */
glRegion = &glPriv->ownershipRegion;
glRegion->numRects = 1;
glRegion->rects[0].x0 = 0;
glRegion->rects[0].y0 = 0;
glRegion->rects[0].x1 = width;
glRegion->rects[0].y1 = height;
return GL_TRUE;
}
void
__glXFreeBuffers(__GLXdrawablePrivate *glxPriv)
{
__GLdrawablePrivate *glPriv = &glxPriv->glPriv;
#if defined(__GL_MAX_AUXBUFFERS) && (__GL_MAX_AUXBUFFERS > 0)
__GLcontextModes *modes = glPriv->modes;
#endif
if (glPriv->frontBuffer.free) {
(*glPriv->frontBuffer.free)(&glPriv->frontBuffer, glPriv);
}
if (glPriv->backBuffer.free) {
(*glPriv->backBuffer.free)(&glPriv->backBuffer, glPriv);
}
#if defined(__GL_MAX_AUXBUFFERS) && (__GL_MAX_AUXBUFFERS > 0)
if (modes->maxAuxBuffers > 0) {
GLint i;
for (i=0; i < modes->maxAuxBuffers; i++) {
if (glPriv->auxBuffer[i].free) {
(*glPriv->auxBuffer[i].free)(&glPriv->auxBuffer[i], glPriv);
}
}
}
#endif
if (glPriv->accumBuffer.free) {
(*glPriv->accumBuffer.free)(&glPriv->accumBuffer, glPriv);
}
if (glPriv->depthBuffer.free) {
(*glPriv->depthBuffer.free)(&glPriv->depthBuffer, glPriv);
}
if (glPriv->stencilBuffer.free) {
(*glPriv->stencilBuffer.free)(&glPriv->stencilBuffer, glPriv);
}
}
/* $XFree86$ */
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#ifndef _glxbuf_h_
#define _glxbuf_h_
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
** Software License B, Version 1.1 (the "License"), the contents of this
** file are subject only to the provisions of the License. You may not use
** this file except in compliance with the License. You may obtain a copy
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
**
** http://oss.sgi.com/projects/FreeB
**
** Note that, as provided in the License, the Software is distributed on an
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
**
** Original Code. The Original Code is: OpenGL Sample Implementation,
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
** Copyright in any portions created by third parties is as indicated
** elsewhere herein. All Rights Reserved.
**
** Additional Notice Provisions: The application programming interfaces
** established by SGI in conjunction with the Original Code are The
** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
** Window System(R) (Version 1.3), released October 19, 1998. This software
** was created using the OpenGL(R) version 1.2.1 Sample Implementation
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
*/
extern void __glXFBInitDrawable(__GLXdrawablePrivate *glxPriv,
__GLcontextModes *modes);
extern void __glXPixInitDrawable(__GLXdrawablePrivate *glxPriv,
__GLcontextModes *modes);
extern GLboolean __glXResizeBuffers(__GLdrawablePrivate *glPriv,
GLint x, GLint y,
GLuint width, GLuint height);
extern void __glXFreeBuffers(__GLXdrawablePrivate *glxPriv);
extern void __glXUpdatePalette(__GLXdrawablePrivate *);
#endif /* _glxbuf_h_ */
This diff is collapsed.
......@@ -40,6 +40,7 @@
#include <dix-config.h>
#endif
#include <string.h>
#include "glxserver.h"
#include "glxutil.h"
#include <GL/glxtokens.h>
......@@ -389,6 +390,64 @@ int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
return __glXQueryContextInfoEXT(cl, pc);
}
int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc)
{
xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
GLXDrawable *drawId;
int *buffer;
__GLX_DECLARE_SWAP_VARIABLES;
pc += __GLX_VENDPRIV_HDR_SIZE;
drawId = ((GLXDrawable *) (pc));
buffer = ((int *) (pc + 4));
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->contextTag);
__GLX_SWAP_INT(drawId);
__GLX_SWAP_INT(buffer);
return __glXBindTexImageEXT(cl, (GLbyte *)pc);
}
int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
{
xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
GLXDrawable *drawId;
int *buffer;
__GLX_DECLARE_SWAP_VARIABLES;
pc += __GLX_VENDPRIV_HDR_SIZE;
drawId = ((GLXDrawable *) (pc));
buffer = ((int *) (pc + 4));
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->contextTag);
__GLX_SWAP_INT(drawId);
__GLX_SWAP_INT(buffer);
return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
}
int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
{
xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
CARD32 *data;
__GLX_DECLARE_SWAP_VARIABLES;
data = (CARD32 *) (req + 1);
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->contextTag);
__GLX_SWAP_INT(data);
return __glXGetDrawableAttributesSGIX(cl, (GLbyte *)pc);
}
/************************************************************************/
/*
......@@ -463,6 +522,19 @@ void __glXSwapQueryContextInfoEXTReply(ClientPtr client, xGLXQueryContextInfoEXT
WriteToClient(client, length << 2, (char *)buf);