From d03a5f20114203fd00e0004659fd2617f4c03a32 Mon Sep 17 00:00:00 2001 From: marha Date: Thu, 14 Jul 2011 09:02:09 +0200 Subject: mesa xserver git update 14 july 2011 --- xorg-server/glx/glxscreens.h | 331 +++++++++++++++++++++---------------------- 1 file changed, 165 insertions(+), 166 deletions(-) (limited to 'xorg-server/glx/glxscreens.h') diff --git a/xorg-server/glx/glxscreens.h b/xorg-server/glx/glxscreens.h index 0fb0fd17d..eb2926045 100644 --- a/xorg-server/glx/glxscreens.h +++ b/xorg-server/glx/glxscreens.h @@ -1,166 +1,165 @@ -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef _GLX_screens_h_ -#define _GLX_screens_h_ - -/* - * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) - * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice including the dates of first publication and - * either this permission notice or a reference to - * http://oss.sgi.com/projects/FreeB/ - * shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the name of Silicon Graphics, Inc. - * shall not be used in advertising or otherwise to promote the sale, use or - * other dealings in this Software without prior written authorization from - * Silicon Graphics, Inc. - */ - -typedef struct __GLXconfig __GLXconfig; -struct __GLXconfig { - __GLXconfig *next; - GLuint doubleBufferMode; - GLuint stereoMode; - - GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ - GLuint redMask, greenMask, blueMask, alphaMask; - GLint rgbBits; /* total bits for rgb */ - GLint indexBits; /* total bits for colorindex */ - - GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; - GLint depthBits; - GLint stencilBits; - - GLint numAuxBuffers; - - GLint level; - - GLint pixmapMode; - - /* GLX */ - GLint visualID; - GLint visualType; /**< One of the GLX X visual types. (i.e., - * \c GLX_TRUE_COLOR, etc.) - */ - - /* EXT_visual_rating / GLX 1.2 */ - GLint visualRating; - - /* EXT_visual_info / GLX 1.2 */ - GLint transparentPixel; - /* colors are floats scaled to ints */ - GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; - GLint transparentIndex; - - /* ARB_multisample / SGIS_multisample */ - GLint sampleBuffers; - GLint samples; - - /* SGIX_fbconfig / GLX 1.3 */ - GLint drawableType; - GLint renderType; - GLint xRenderable; - GLint fbconfigID; - - /* SGIX_pbuffer / GLX 1.3 */ - GLint maxPbufferWidth; - GLint maxPbufferHeight; - GLint maxPbufferPixels; - GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ - GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ - - /* SGIX_visual_select_group */ - GLint visualSelectGroup; - - /* OML_swap_method */ - GLint swapMethod; - - GLint screen; - - /* EXT_texture_from_pixmap */ - GLint bindToTextureRgb; - GLint bindToTextureRgba; - GLint bindToMipmapTexture; - GLint bindToTextureTargets; - GLint yInverted; -}; - -GLint glxConvertToXVisualType(int visualType); - -/* -** Screen dependent data. These methods are the interface between the DIX -** and DDX layers of the GLX server extension. The methods provide an -** interface for context management on a screen. -*/ -typedef struct __GLXscreen __GLXscreen; -struct __GLXscreen { - void (*destroy) (__GLXscreen *screen); - - __GLXcontext *(*createContext) (__GLXscreen *screen, - __GLXconfig *modes, - __GLXcontext *shareContext); - - __GLXdrawable *(*createDrawable)(ClientPtr client, - __GLXscreen *context, - DrawablePtr pDraw, - XID drawId, - int type, - XID glxDrawId, - __GLXconfig *modes); - int (*swapInterval) (__GLXdrawable *drawable, - int interval); - - ScreenPtr pScreen; - - /* Linked list of valid fbconfigs for this screen. */ - __GLXconfig *fbconfigs; - int numFBConfigs; - - /* Subset of fbconfigs that are exposed as GLX visuals. */ - __GLXconfig **visuals; - GLint numVisuals; - - char *GLextensions; - - char *GLXvendor; - char *GLXversion; - char *GLXextensions; - - /** - * \name GLX version supported by this screen. - * - * Since the GLX version advertised by the server is for the whole server, - * the GLX protocol code uses the minimum version supported on all screens. - */ - /*@{*/ - unsigned GLXmajor; - unsigned GLXminor; - /*@}*/ - - Bool (*CloseScreen)(int index, ScreenPtr pScreen); -}; - - -void __glXScreenInit(__GLXscreen *screen, ScreenPtr pScreen); -void __glXScreenDestroy(__GLXscreen *screen); - -#endif /* !__GLX_screens_h__ */ +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#ifndef _GLX_screens_h_ +#define _GLX_screens_h_ + +/* + * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) + * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice including the dates of first publication and + * either this permission notice or a reference to + * http://oss.sgi.com/projects/FreeB/ + * shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Except as contained in this notice, the name of Silicon Graphics, Inc. + * shall not be used in advertising or otherwise to promote the sale, use or + * other dealings in this Software without prior written authorization from + * Silicon Graphics, Inc. + */ + +typedef struct __GLXconfig __GLXconfig; +struct __GLXconfig { + __GLXconfig *next; + GLuint doubleBufferMode; + GLuint stereoMode; + + GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ + GLuint redMask, greenMask, blueMask, alphaMask; + GLint rgbBits; /* total bits for rgb */ + GLint indexBits; /* total bits for colorindex */ + + GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; + GLint depthBits; + GLint stencilBits; + + GLint numAuxBuffers; + + GLint level; + + GLint pixmapMode; + + /* GLX */ + GLint visualID; + GLint visualType; /**< One of the GLX X visual types. (i.e., + * \c GLX_TRUE_COLOR, etc.) + */ + + /* EXT_visual_rating / GLX 1.2 */ + GLint visualRating; + + /* EXT_visual_info / GLX 1.2 */ + GLint transparentPixel; + /* colors are floats scaled to ints */ + GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; + GLint transparentIndex; + + /* ARB_multisample / SGIS_multisample */ + GLint sampleBuffers; + GLint samples; + + /* SGIX_fbconfig / GLX 1.3 */ + GLint drawableType; + GLint renderType; + GLint xRenderable; + GLint fbconfigID; + + /* SGIX_pbuffer / GLX 1.3 */ + GLint maxPbufferWidth; + GLint maxPbufferHeight; + GLint maxPbufferPixels; + GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ + GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ + + /* SGIX_visual_select_group */ + GLint visualSelectGroup; + + /* OML_swap_method */ + GLint swapMethod; + + GLint screen; + + /* EXT_texture_from_pixmap */ + GLint bindToTextureRgb; + GLint bindToTextureRgba; + GLint bindToMipmapTexture; + GLint bindToTextureTargets; + GLint yInverted; +}; + +GLint glxConvertToXVisualType(int visualType); + +/* +** Screen dependent data. These methods are the interface between the DIX +** and DDX layers of the GLX server extension. The methods provide an +** interface for context management on a screen. +*/ +typedef struct __GLXscreen __GLXscreen; +struct __GLXscreen { + void (*destroy) (__GLXscreen *screen); + + __GLXcontext *(*createContext) (__GLXscreen *screen, + __GLXconfig *modes, + __GLXcontext *shareContext); + + __GLXdrawable *(*createDrawable)(ClientPtr client, + __GLXscreen *context, + DrawablePtr pDraw, + XID drawId, + int type, + XID glxDrawId, + __GLXconfig *modes); + int (*swapInterval) (__GLXdrawable *drawable, + int interval); + + ScreenPtr pScreen; + + /* Linked list of valid fbconfigs for this screen. */ + __GLXconfig *fbconfigs; + int numFBConfigs; + + /* Subset of fbconfigs that are exposed as GLX visuals. */ + __GLXconfig **visuals; + GLint numVisuals; + + char *GLextensions; + + char *GLXvendor; + char *GLXextensions; + + /** + * \name GLX version supported by this screen. + * + * Since the GLX version advertised by the server is for the whole server, + * the GLX protocol code uses the minimum version supported on all screens. + */ + /*@{*/ + unsigned GLXmajor; + unsigned GLXminor; + /*@}*/ + + Bool (*CloseScreen)(int index, ScreenPtr pScreen); +}; + + +void __glXScreenInit(__GLXscreen *screen, ScreenPtr pScreen); +void __glXScreenDestroy(__GLXscreen *screen); + +#endif /* !__GLX_screens_h__ */ -- cgit v1.2.3