61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
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 * The above copyright notice including the dates of first publication and
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * either this permission notice or a reference to
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * shall be included in all copies or substantial portions of the Software.
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 * 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** GLX resources.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct __GLXclientStateRec __GLXclientState;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXscreen *glxGetScreen(ScreenPtr pScreen);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXclientState *glxGetClient(ClientPtr pClient);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid GlxSetVisualConfigs(int nconfigs, void *configs, void **privates);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** The last context used (from the server's persective) is cached.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern __GLXcontext *__glXForceCurrent(__GLXclientState *, GLXContextTag,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXsetEnterLeaveServerFuncs(void (*enter) (GLboolean),
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid __glXsetGetProcAddress(glx_gpa_proc get_proc_address);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncvoid *__glGetProcAddress(const char *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync__glXsendSwapEvent(__GLXdrawable *drawable, int type, CARD64 ust,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** State kept per client.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Whether this structure is currently being used to support a client.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Buffer for returned data.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ** Keep track of large rendering commands, which span multiple requests.
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 /* Back pointer to X client record */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Dispatch tables.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*__GLXdispatchRenderProcPtr) (GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXdispatchSingleProcPtr) (__GLXclientState *, GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXdispatchVendorPrivProcPtr) (__GLXclientState *, GLbyte *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Dispatch for GLX commands.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*__GLXprocPtr) (__GLXclientState *, char *pc);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Tables for computing the size of each rendering command.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*gl_proto_size_func) (const GLbyte *, Bool);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** X resources.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/************************************************************************/
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Prototypes.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern char *__glXcombine_strings(const char *, const char *);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync** Routines for sending swapped replies.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapMakeCurrentReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapIsDirectReply(ClientPtr client, xGLXIsDirectReply * reply);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapQueryVersionReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapQueryContextInfoEXTReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void __glXSwapGetDrawableAttributesReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void glxSwapQueryExtensionsStringReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern void glxSwapQueryServerStringReply(ClientPtr client,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Routines for computing the size of variably-sized rendering commands.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern int __glXImageSize(GLenum format, GLenum type,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync GLint imageHeight, GLint rowLength, GLint skipImages,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern unsigned glxMajorVersion;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern unsigned glxMinorVersion;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif /* !__GLX_server_h__ */