1 #ifndef __GLX_glxint_h__ 2 #define __GLX_glxint_h__ 3 4 /* 5 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) 6 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a 9 * copy of this software and associated documentation files (the "Software"), 10 * to deal in the Software without restriction, including without limitation 11 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 * and/or sell copies of the Software, and to permit persons to whom the 13 * Software is furnished to do so, subject to the following conditions: 14 * 15 * The above copyright notice including the dates of first publication and 16 * either this permission notice or a reference to 17 * http://oss.sgi.com/projects/FreeB/ 18 * shall be included in all copies or substantial portions of the Software. 19 * 20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 21 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 25 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 * SOFTWARE. 27 * 28 * Except as contained in this notice, the name of Silicon Graphics, Inc. 29 * shall not be used in advertising or otherwise to promote the sale, use or 30 * other dealings in this Software without prior written authorization from 31 * Silicon Graphics, Inc. 32 */ 33 34 #include <X11/X.h> 35 #include <X11/Xdefs.h> 36 #include "GL/gl.h" 37 38 typedef struct __GLXvisualConfigRec __GLXvisualConfig; 39 typedef struct __GLXFBConfigRec __GLXFBConfig; 40 41 struct __GLXvisualConfigRec { 42 VisualID vid; 43 int class; 44 Bool rgba; 45 int redSize, greenSize, blueSize, alphaSize; 46 unsigned long redMask, greenMask, blueMask, alphaMask; 47 int accumRedSize, accumGreenSize, accumBlueSize, accumAlphaSize; 48 Bool doubleBuffer; 49 Bool stereo; 50 int bufferSize; 51 int depthSize; 52 int stencilSize; 53 int auxBuffers; 54 int level; 55 /* Start of Extended Visual Properties */ 56 int visualRating; /* visual_rating extension */ 57 int transparentPixel; /* visual_info extension */ 58 /* colors are floats scaled to ints */ 59 int transparentRed, transparentGreen, transparentBlue, transparentAlpha; 60 int transparentIndex; 61 int multiSampleSize; 62 int nMultiSampleBuffers; 63 int visualSelectGroup; 64 }; 65 66 #define __GLX_MIN_CONFIG_PROPS 18 67 #define __GLX_MAX_CONFIG_PROPS 500 68 69 #define __GLX_EXT_CONFIG_PROPS 10 70 71 /* 72 ** Since we send all non-core visual properties as token, value pairs, 73 ** we require 2 words across the wire. In order to maintain backwards 74 ** compatibility, we need to send the total number of words that the 75 ** VisualConfigs are sent back in so old libraries can simply "ignore" 76 ** the new properties. 77 */ 78 #define __GLX_TOTAL_CONFIG (__GLX_MIN_CONFIG_PROPS + \ 79 2 * __GLX_EXT_CONFIG_PROPS) 80 81 struct __GLXFBConfigRec { 82 int visualType; 83 int transparentType; 84 /* colors are floats scaled to ints */ 85 int transparentRed, transparentGreen, transparentBlue, transparentAlpha; 86 int transparentIndex; 87 88 int visualCaveat; 89 90 int associatedVisualId; 91 int screen; 92 93 int drawableType; 94 int renderType; 95 96 int maxPbufferWidth, maxPbufferHeight, maxPbufferPixels; 97 int optimalPbufferWidth, optimalPbufferHeight; /* for SGIX_pbuffer */ 98 99 int visualSelectGroup; /* visuals grouped by select priority */ 100 101 unsigned int id; 102 103 GLboolean rgbMode; 104 GLboolean colorIndexMode; 105 GLboolean doubleBufferMode; 106 GLboolean stereoMode; 107 GLboolean haveAccumBuffer; 108 GLboolean haveDepthBuffer; 109 GLboolean haveStencilBuffer; 110 111 /* The number of bits present in various buffers */ 112 GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; 113 GLint depthBits; 114 GLint stencilBits; 115 GLint indexBits; 116 GLint redBits, greenBits, blueBits, alphaBits; 117 GLuint redMask, greenMask, blueMask, alphaMask; 118 119 GLuint multiSampleSize; /* Number of samples per pixel (0 if no ms) */ 120 121 GLuint nMultiSampleBuffers; /* Number of available ms buffers */ 122 GLint maxAuxBuffers; 123 124 /* frame buffer level */ 125 GLint level; 126 127 /* color ranges (for SGI_color_range) */ 128 GLboolean extendedRange; 129 GLdouble minRed, maxRed; 130 GLdouble minGreen, maxGreen; 131 GLdouble minBlue, maxBlue; 132 GLdouble minAlpha, maxAlpha; 133 }; 134 135 #define __GLX_TOTAL_FBCONFIG_PROPS 35 136 137 #endif /* !__GLX_glxint_h__ */ 138