b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/GL/mesa/src/X/xf86glxint.h,v 1.4 2002/02/22 21:45:08 dawes Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/**************************************************************************
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncAll Rights Reserved.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission is hereby granted, free of charge, to any person obtaining a
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopy of this software and associated documentation files (the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync"Software"), to deal in the Software without restriction, including
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncwithout limitation the rights to use, copy, modify, merge, publish,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdistribute, sub license, and/or sell copies of the Software, and to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncpermit persons to whom the Software is furnished to do so, subject to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe following conditions:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice (including the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncnext paragraph) shall be included in all copies or substantial portions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncof the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync**************************************************************************/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Authors:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Kevin E. Martin <kevin@precisioninsight.com>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef HAVE_DIX_CONFIG_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <dix-config.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef _XF86GLXINT_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _XF86GLXINT_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <miscstruct.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <GL/gl.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <GL/xmesa.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct __MESA_screenRec __MESA_screen;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncstruct __MESA_screenRec {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int num_vis;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync __GLcontextModes *modes;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XMesaVisual *xm_vis;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync void **private;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync};
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct __MESA_bufferRec *__MESA_buffer;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncstruct __MESA_bufferRec {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XMesaBuffer xm_buf;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLboolean (*fbresize)(__GLdrawableBuffer *buf,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLint x, GLint y, GLuint width, GLuint height,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync __GLdrawablePrivate *glPriv, GLuint bufferMask);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLboolean (*fbswap)(__GLXdrawablePrivate *glxPriv);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync};
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_setVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync void **privates);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool __MESA_initVisuals(VisualPtr *visualp, DepthPtr *depthp,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int *nvisualp, int *ndepthp, int *rootDepthp,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync VisualID *defaultVisp, unsigned long sizes,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bitsPerRGB);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool __MESA_screenProbe(int screen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_resetExtension(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_createBuffer(__GLXdrawablePrivate *glxPriv);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_resizeBuffers(__GLdrawableBuffer *buf,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLint x, GLint y,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLuint width, GLuint height,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync __GLdrawablePrivate *glPriv,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLuint bufferMask);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_swapBuffers(__GLXdrawablePrivate *glxPriv);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_destroyBuffer(__GLdrawablePrivate *glPriv);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern __GLinterface *__MESA_createContext(__GLimports *imports,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync __GLcontextModes *modes,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync __GLinterface *shareGC);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_destroyContext(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_loseCurrent(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_makeCurrent(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_shareContext(__GLcontext *gc, __GLcontext *gcShare);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_copyContext(__GLcontext *dst, const __GLcontext *src,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GLuint mask);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_forceCurrent(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLboolean __MESA_notifyResize(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_notifyDestroy(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_notifySwapBuffers(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern struct __GLdispatchStateRec *__MESA_dispatchExec(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_beginDispatchOverride(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void __MESA_endDispatchOverride(__GLcontext *gc);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern GLuint __glFloorLog2(GLuint val);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* _XF86GLXINT_H_ */