1 #ifndef __GLX_glxint_h__
2 #define __GLX_glxint_h__
5 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
6 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
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:
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.
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
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.
35 #include <X11/Xdefs.h>
38 typedef struct __GLXvisualConfigRec __GLXvisualConfig;
39 typedef struct __GLXFBConfigRec __GLXFBConfig;
41 struct __GLXvisualConfigRec {
45 int redSize, greenSize, blueSize, alphaSize;
46 unsigned long redMask, greenMask, blueMask, alphaMask;
47 int accumRedSize, accumGreenSize, accumBlueSize, accumAlphaSize;
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;
62 int nMultiSampleBuffers;
63 int visualSelectGroup;
66 #define __GLX_MIN_CONFIG_PROPS 18
67 #define __GLX_MAX_CONFIG_PROPS 500
69 #define __GLX_EXT_CONFIG_PROPS 10
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.
78 #define __GLX_TOTAL_CONFIG (__GLX_MIN_CONFIG_PROPS + \
79 2 * __GLX_EXT_CONFIG_PROPS)
81 struct __GLXFBConfigRec {
84 /* colors are floats scaled to ints */
85 int transparentRed, transparentGreen, transparentBlue, transparentAlpha;
90 int associatedVisualId;
96 int maxPbufferWidth, maxPbufferHeight, maxPbufferPixels;
97 int optimalPbufferWidth, optimalPbufferHeight; /* for SGIX_pbuffer */
99 int visualSelectGroup; /* visuals grouped by select priority */
104 GLboolean colorIndexMode;
105 GLboolean doubleBufferMode;
106 GLboolean stereoMode;
107 GLboolean haveAccumBuffer;
108 GLboolean haveDepthBuffer;
109 GLboolean haveStencilBuffer;
111 /* The number of bits present in various buffers */
112 GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
116 GLint redBits, greenBits, blueBits, alphaBits;
117 GLuint redMask, greenMask, blueMask, alphaMask;
119 GLuint multiSampleSize; /* Number of samples per pixel (0 if no ms) */
121 GLuint nMultiSampleBuffers; /* Number of availble ms buffers */
124 /* frame buffer level */
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;
135 #define __GLX_TOTAL_FBCONFIG_PROPS 35
137 #endif /* !__GLX_glxint_h__ */