b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef _GLX_server_h_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _GLX_server_h_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Permission is hereby granted, free of charge, to any person obtaining a
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * copy of this software and associated documentation files (the "Software"),
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * to deal in the Software without restriction, including without limitation
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * and/or sell copies of the Software, and to permit persons to whom the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Software is furnished to do so, subject to the following conditions:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * The above copyright notice including the dates of first publication and
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * either this permission notice or a reference to
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * http://oss.sgi.com/projects/FreeB/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * shall be included in all copies or substantial portions of the Software.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Except as contained in this notice, the name of Silicon Graphics, Inc.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * shall not be used in advertising or otherwise to promote the sale, use or
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * other dealings in this Software without prior written authorization from
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Silicon Graphics, Inc.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "dmx.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <misc.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <dixstruct.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <pixmapstr.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <gcstruct.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <extnsionst.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <resource.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <scrnintstr.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** The X header misc.h defines these math functions.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#undef abs
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#undef fabs
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GL_GLEXT_PROTOTYPES /* we want prototypes */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <GL/gl.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <GL/glxproto.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <GL/glxint.h>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "glxscreens.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "glxdrawable.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "glxcontext.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "glxerror.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GLX_SERVER_MAJOR_VERSION 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GLX_SERVER_MINOR_VERSION 3
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef True
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define True 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef False
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define False 0
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** GLX resources.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID GLXContextID;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID GLXPixmap;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID GLXDrawable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID GLXWindow;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef XID GLXPbuffer;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct __GLXcontextRec *GLXContext;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct __GLXclientStateRec __GLXclientState;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXscreenInfo *__glXActiveScreens;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern GLint __glXNumActiveScreens;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/************************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** The last context used (from the server's persective) is cached.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXcontext *__glXLastContext;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXcontext *__glXForceCurrent(__GLXclientState*, GLXContextTag, int*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Macros to set, unset, and retrieve the flag that says whether a context
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** has unflushed commands.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define __GLX_NOTE_UNFLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_TRUE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define __GLX_NOTE_FLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_FALSE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define __GLX_HAS_UNFLUSHED_CMDS(glxc) (glxc->hasUnflushedCommands)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/************************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int elem_size; /* element size in bytes */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nelems; /* number of elements to swap */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync void (*swapfunc)(GLbyte *pc);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} __GLXRenderSwapInfo;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** State kept per client.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncstruct __GLXclientStateRec {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ** Whether this structure is currently being used to support a client.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Bool inUse;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ** Buffer for returned data.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLbyte *returnBuf;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint returnBufSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ** Keep a list of all the contexts that are current for this client's
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ** threads.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync __GLXcontext **currentContexts;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DrawablePtr *currentDrawables;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint numCurrentContexts;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Back pointer to X client record */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int GLClientmajorVersion;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int GLClientminorVersion;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *GLClientextensions;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLXContextTag *be_currentCTag;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Display **be_displays;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ** Keep track of large rendering commands, which span multiple requests.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdBytesSoFar; /* bytes received so far */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdBytesTotal; /* total bytes expected */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdRequestsSoFar; /* requests received so far */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdRequestsTotal; /* total requests expected */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync void (*largeCmdRequestsSwapProc)(GLbyte *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync __GLXRenderSwapInfo *largeCmdRequestsSwap_info;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLbyte *largeCmdBuf;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdBufSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint largeCmdMaxReqDataSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync};
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXclientState *__glXClients[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/************************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Dispatch tables.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*__GLXdispatchRenderProcPtr)(GLbyte *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*__GLXdispatchSingleProcPtr)(__GLXclientState *, GLbyte *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*__GLXdispatchVendorPrivProcPtr)(__GLXclientState *, GLbyte *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXdispatchSingleProcPtr __glXSingleTable[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXdispatchSingleProcPtr __glXSwapSingleTable[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXdispatchRenderProcPtr __glXSwapRenderTable[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXRenderSwapInfo __glXSwapRenderTable_EXT[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Dispatch for GLX commands.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*__GLXprocPtr)(__GLXclientState *, char *pc);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXprocPtr __glXProcTable[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Tables for computing the size of each rendering command.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int bytes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int (*varsize)(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} __GLXrenderSizeData;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXrenderSizeData __glXRenderSizeTable[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern __GLXrenderSizeData __glXRenderSizeTable_EXT[];
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/************************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** X resources.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXContextRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXClientRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXPixmapRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXDrawableRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXWindowRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern RESTYPE __glXPbufferRes;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/************************************************************************/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Prototypes.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern char *__glXcombine_strings(const char *, const char *);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXDisp_DrawArrays(GLbyte*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXDispSwap_DrawArrays(GLbyte*);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync** Routines for sending swapped replies.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync*/
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapMakeCurrentReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXMakeCurrentReadSGIReply *reply);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapIsDirectReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXIsDirectReply *reply);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapQueryVersionReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryVersionReply *reply);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapQueryContextInfoEXTReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryContextInfoEXTReply *reply,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void glxSwapQueryExtensionsStringReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryExtensionsStringReply *reply, char *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void glxSwapQueryServerStringReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryServerStringReply *reply, char *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapQueryContextReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryContextReply *reply, int *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapGetDrawableAttributesReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXGetDrawableAttributesReply *reply, int *buf);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXSwapQueryMaxSwapBarriersSGIXReply(ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xGLXQueryMaxSwapBarriersSGIXReply *reply);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Routines for computing the size of variably-sized rendering commands.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTypeSize(GLenum enm);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXImageSize(GLenum format, GLenum type, GLsizei w, GLsizei h,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint rowLength, GLint skipRows, GLint alignment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXImage3DSize(GLenum format, GLenum type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLsizei w, GLsizei h, GLsizei d,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint imageHeight, GLint rowLength,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint skipImages, GLint skipRows,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GLint alignment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXCallListsReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXBitmapReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXFogfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXFogivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXLightfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXLightivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXLightModelfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXLightModelivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMaterialfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMaterialivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexParameterfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexParameterivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexImage1DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexImage2DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexEnvfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexEnvivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexGendvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexGenfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexGenivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMap1dReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMap1fReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMap2dReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXMap2fReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXPixelMapfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXPixelMapuivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXPixelMapusvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXDrawPixelsReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXDrawArraysSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXPrioritizeTexturesReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexSubImage1DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexSubImage2DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexImage3DReqSize(GLbyte *pc, Bool swap );
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXTexSubImage3DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionFilter1DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionFilter2DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionParameterivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionParameterfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXSeparableFilter2DReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorTableReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorSubTableReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorTableParameterfvReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorTableParameterivReqSize(GLbyte *pc, Bool swap);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Routines for computing the size of returned data.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionParameterivSize(GLenum pname);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXConvolutionParameterfvSize(GLenum pname);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorTableParameterfvSize(GLenum pname);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXColorTableParameterivSize(GLenum pname);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXFreeGLXWindow(__glXWindow *pGlxWindow);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void __glXFreeGLXPbuffer(__glXPbuffer *pGlxPbuffer);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXVersionMajor;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int __glXVersionMinor;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define __GLX_IS_VERSION_SUPPORTED(major,minor) \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ( (__glXVersionMajor > (major)) || \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ((__glXVersionMajor == (major)) && (__glXVersionMinor >= (minor))) )
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif /* !__GLX_server_h__ */