alexanderswang

OpenGL / .h / glxint.h

Jun 25th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  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 availble 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__ */
Add Comment
Please, Sign In to add comment