61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifdef HAVE_DIX_CONFIG_H
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <dix-config.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifndef _GLX_server_h_
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define _GLX_server_h_
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * copy of this software and associated documentation files (the "Software"),
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * to deal in the Software without restriction, including without limitation
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * and/or sell copies of the Software, and to permit persons to whom the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Software is furnished to do so, subject to the following conditions:
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * The above copyright notice including the dates of first publication and
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * either this permission notice or a reference to
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * http://oss.sgi.com/projects/FreeB/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * shall be included in all copies or substantial portions of the Software.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SOFTWARE.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Except as contained in this notice, the name of Silicon Graphics, Inc.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * shall not be used in advertising or otherwise to promote the sale, use or
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * other dealings in this Software without prior written authorization from
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Silicon Graphics, Inc.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <X11/X.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <X11/Xproto.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <X11/Xmd.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <misc.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <dixstruct.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <pixmapstr.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <gcstruct.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <extnsionst.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <resource.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <scrnintstr.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <GL/gl.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <GL/glext.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include <GL/glxproto.h>
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** GLX resources.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef XID GLXContextID;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef XID GLXPixmap;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef XID GLXDrawable;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct __GLXclientStateRec __GLXclientState;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct __GLXdrawable __GLXdrawable;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct __GLXcontext __GLXcontext;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include "glxscreens.h"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include "glxdrawable.h"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#include "glxcontext.h"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifndef True
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define True 1
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#ifndef False
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define False 0
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXscreen *glxGetScreen(ScreenPtr pScreen);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXclientState *glxGetClient(ClientPtr pClient);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid GlxSetVisualConfigs(int nconfigs, void *configs, void **privates);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXScreenInitVisuals(__GLXscreen * screen);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** The last context used (from the server's persective) is cached.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXcontext *__glXForceCurrent(__GLXclientState *, GLXContextTag,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncint __glXError(int error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct __GLXprovider __GLXprovider;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncstruct __GLXprovider {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync __GLXscreen *(*screenProbe) (ScreenPtr pScreen);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const char *name;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync __GLXprovider *next;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync};
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXprovider __glXDRISWRastProvider;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid GlxPushProvider(__GLXprovider * provider);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncenum {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLX_MINIMAL_VISUALS,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLX_TYPICAL_VISUALS,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLX_ALL_VISUALS
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync};
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXsetEnterLeaveServerFuncs(void (*enter) (GLboolean),
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync void (*leave) (GLboolean));
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXenterServer(GLboolean rendering);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXleaveServer(GLboolean rendering);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid glxSuspendClients(void);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid glxResumeClients(void);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*glx_func_ptr)(void);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef glx_func_ptr (*glx_gpa_proc)(const char *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXsetGetProcAddress(glx_gpa_proc get_proc_address);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid *__glGetProcAddress(const char *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync__glXsendSwapEvent(__GLXdrawable *drawable, int type, CARD64 ust,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync CARD64 msc, CARD32 sbc);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#if PRESENT
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync__glXregisterPresentCompleteNotify(void);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** State kept per client.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncstruct __GLXclientStateRec {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Whether this structure is currently being used to support a client.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Bool inUse;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Buffer for returned data.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLbyte *returnBuf;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint returnBufSize;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Keep track of large rendering commands, which span multiple requests.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint largeCmdBytesSoFar; /* bytes received so far */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint largeCmdBytesTotal; /* total bytes expected */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint largeCmdRequestsSoFar; /* requests received so far */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint largeCmdRequestsTotal; /* total requests expected */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLbyte *largeCmdBuf;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint largeCmdBufSize;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync /* Back pointer to X client record */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ClientPtr client;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync char *GLClientextensions;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync};
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Dispatch tables.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*__GLXdispatchRenderProcPtr) (GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXdispatchSingleProcPtr) (__GLXclientState *, GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXdispatchVendorPrivProcPtr) (__GLXclientState *, GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Dispatch for GLX commands.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXprocPtr) (__GLXclientState *, char *pc);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Tables for computing the size of each rendering command.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*gl_proto_size_func) (const GLbyte *, Bool);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int bytes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync gl_proto_size_func varsize;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync} __GLXrenderSizeData;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** X resources.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern RESTYPE __glXContextRes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern RESTYPE __glXClientRes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern RESTYPE __glXPixmapRes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern RESTYPE __glXDrawableRes;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Prototypes.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern char *__glXcombine_strings(const char *, const char *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Routines for sending swapped replies.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync*/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapMakeCurrentReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXMakeCurrentReply * reply);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapIsDirectReply(ClientPtr client, xGLXIsDirectReply * reply);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapQueryVersionReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXQueryVersionReply * reply);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapQueryContextInfoEXTReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXQueryContextInfoEXTReply *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync reply, int *buf);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapGetDrawableAttributesReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXGetDrawableAttributesReply *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync reply, CARD32 *buf);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void glxSwapQueryExtensionsStringReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXQueryExtensionsStringReply *
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync reply, char *buf);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void glxSwapQueryServerStringReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xGLXQueryServerStringReply * reply,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync char *buf);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/*
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Routines for computing the size of variably-sized rendering commands.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern int __glXTypeSize(GLenum enm);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern int __glXImageSize(GLenum format, GLenum type,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLenum target, GLsizei w, GLsizei h, GLsizei d,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint imageHeight, GLint rowLength, GLint skipImages,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint skipRows, GLint alignment);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern unsigned glxMajorVersion;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern unsigned glxMinorVersion;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern int __glXEventBase;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif /* !__GLX_server_h__ */