117ca54c3Smrg#ifndef __GLX_glxint_h__ 217ca54c3Smrg#define __GLX_glxint_h__ 317ca54c3Smrg 417ca54c3Smrg/* 517ca54c3Smrg * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) 617ca54c3Smrg * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. 717ca54c3Smrg * 817ca54c3Smrg * Permission is hereby granted, free of charge, to any person obtaining a 917ca54c3Smrg * copy of this software and associated documentation files (the "Software"), 1017ca54c3Smrg * to deal in the Software without restriction, including without limitation 1117ca54c3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 1217ca54c3Smrg * and/or sell copies of the Software, and to permit persons to whom the 1317ca54c3Smrg * Software is furnished to do so, subject to the following conditions: 1417ca54c3Smrg * 1517ca54c3Smrg * The above copyright notice including the dates of first publication and 1617ca54c3Smrg * either this permission notice or a reference to 1717ca54c3Smrg * http://oss.sgi.com/projects/FreeB/ 1817ca54c3Smrg * shall be included in all copies or substantial portions of the Software. 1917ca54c3Smrg * 2017ca54c3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 2117ca54c3Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2217ca54c3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 2317ca54c3Smrg * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 2417ca54c3Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 2517ca54c3Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 2617ca54c3Smrg * SOFTWARE. 2717ca54c3Smrg * 2817ca54c3Smrg * Except as contained in this notice, the name of Silicon Graphics, Inc. 2917ca54c3Smrg * shall not be used in advertising or otherwise to promote the sale, use or 3017ca54c3Smrg * other dealings in this Software without prior written authorization from 3117ca54c3Smrg * Silicon Graphics, Inc. 3217ca54c3Smrg */ 3317ca54c3Smrg 3417ca54c3Smrg#include <X11/X.h> 3517ca54c3Smrg#include <X11/Xdefs.h> 3617ca54c3Smrg#include "GL/gl.h" 3717ca54c3Smrg 3817ca54c3Smrgtypedef struct __GLXvisualConfigRec __GLXvisualConfig; 3917ca54c3Smrgtypedef struct __GLXFBConfigRec __GLXFBConfig; 4017ca54c3Smrg 4117ca54c3Smrgstruct __GLXvisualConfigRec { 4217ca54c3Smrg VisualID vid; 4317ca54c3Smrg int class; 4417ca54c3Smrg Bool rgba; 4517ca54c3Smrg int redSize, greenSize, blueSize, alphaSize; 4617ca54c3Smrg unsigned long redMask, greenMask, blueMask, alphaMask; 4717ca54c3Smrg int accumRedSize, accumGreenSize, accumBlueSize, accumAlphaSize; 4817ca54c3Smrg Bool doubleBuffer; 4917ca54c3Smrg Bool stereo; 5017ca54c3Smrg int bufferSize; 5117ca54c3Smrg int depthSize; 5217ca54c3Smrg int stencilSize; 5317ca54c3Smrg int auxBuffers; 5417ca54c3Smrg int level; 5517ca54c3Smrg /* Start of Extended Visual Properties */ 5617ca54c3Smrg int visualRating; /* visual_rating extension */ 5717ca54c3Smrg int transparentPixel; /* visual_info extension */ 5817ca54c3Smrg /* colors are floats scaled to ints */ 5917ca54c3Smrg int transparentRed, transparentGreen, transparentBlue, transparentAlpha; 6017ca54c3Smrg int transparentIndex; 6117ca54c3Smrg int multiSampleSize; 6217ca54c3Smrg int nMultiSampleBuffers; 6317ca54c3Smrg int visualSelectGroup; 6417ca54c3Smrg}; 6517ca54c3Smrg 6617ca54c3Smrg#define __GLX_MIN_CONFIG_PROPS 18 6717ca54c3Smrg#define __GLX_MAX_CONFIG_PROPS 500 6817ca54c3Smrg 6917ca54c3Smrg#define __GLX_EXT_CONFIG_PROPS 10 7017ca54c3Smrg 7117ca54c3Smrg/* 7217ca54c3Smrg** Since we send all non-core visual properties as token, value pairs, 7317ca54c3Smrg** we require 2 words across the wire. In order to maintain backwards 7417ca54c3Smrg** compatibility, we need to send the total number of words that the 7517ca54c3Smrg** VisualConfigs are sent back in so old libraries can simply "ignore" 76ea1d6981Smrg** the new properties. 7717ca54c3Smrg*/ 7817ca54c3Smrg#define __GLX_TOTAL_CONFIG (__GLX_MIN_CONFIG_PROPS + \ 7917ca54c3Smrg 2 * __GLX_EXT_CONFIG_PROPS) 8017ca54c3Smrg 8117ca54c3Smrgstruct __GLXFBConfigRec { 8217ca54c3Smrg int visualType; 8317ca54c3Smrg int transparentType; 8417ca54c3Smrg /* colors are floats scaled to ints */ 8517ca54c3Smrg int transparentRed, transparentGreen, transparentBlue, transparentAlpha; 8617ca54c3Smrg int transparentIndex; 8717ca54c3Smrg 8817ca54c3Smrg int visualCaveat; 8917ca54c3Smrg 9017ca54c3Smrg int associatedVisualId; 9117ca54c3Smrg int screen; 9217ca54c3Smrg 9317ca54c3Smrg int drawableType; 9417ca54c3Smrg int renderType; 9517ca54c3Smrg 9617ca54c3Smrg int maxPbufferWidth, maxPbufferHeight, maxPbufferPixels; 9717ca54c3Smrg int optimalPbufferWidth, optimalPbufferHeight; /* for SGIX_pbuffer */ 9817ca54c3Smrg 9917ca54c3Smrg int visualSelectGroup; /* visuals grouped by select priority */ 10017ca54c3Smrg 101ea1d6981Smrg unsigned int id; 10217ca54c3Smrg 10317ca54c3Smrg GLboolean rgbMode; 10417ca54c3Smrg GLboolean colorIndexMode; 10517ca54c3Smrg GLboolean doubleBufferMode; 10617ca54c3Smrg GLboolean stereoMode; 10717ca54c3Smrg GLboolean haveAccumBuffer; 10817ca54c3Smrg GLboolean haveDepthBuffer; 10917ca54c3Smrg GLboolean haveStencilBuffer; 11017ca54c3Smrg 11117ca54c3Smrg /* The number of bits present in various buffers */ 11217ca54c3Smrg GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; 11317ca54c3Smrg GLint depthBits; 11417ca54c3Smrg GLint stencilBits; 11517ca54c3Smrg GLint indexBits; 11617ca54c3Smrg GLint redBits, greenBits, blueBits, alphaBits; 11717ca54c3Smrg GLuint redMask, greenMask, blueMask, alphaMask; 11817ca54c3Smrg 11917ca54c3Smrg GLuint multiSampleSize; /* Number of samples per pixel (0 if no ms) */ 12017ca54c3Smrg 121d63b911fSmrg GLuint nMultiSampleBuffers; /* Number of available ms buffers */ 12217ca54c3Smrg GLint maxAuxBuffers; 12317ca54c3Smrg 12417ca54c3Smrg /* frame buffer level */ 12517ca54c3Smrg GLint level; 12617ca54c3Smrg 12717ca54c3Smrg /* color ranges (for SGI_color_range) */ 12817ca54c3Smrg GLboolean extendedRange; 12917ca54c3Smrg GLdouble minRed, maxRed; 13017ca54c3Smrg GLdouble minGreen, maxGreen; 13117ca54c3Smrg GLdouble minBlue, maxBlue; 13217ca54c3Smrg GLdouble minAlpha, maxAlpha; 13317ca54c3Smrg}; 13417ca54c3Smrg 13517ca54c3Smrg#define __GLX_TOTAL_FBCONFIG_PROPS 35 13617ca54c3Smrg 13717ca54c3Smrg#endif /* !__GLX_glxint_h__ */ 138