glx: Stop using glcore.h and glxint.h in glx
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 28 Jul 2010 13:08:32 +0000 (09:08 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 28 Jul 2010 20:41:59 +0000 (16:41 -0400)
We'd like to get rid of these header files.

src/glx/glcontextmodes.c
src/glx/glcontextmodes.h
src/glx/glxclient.h

index cdc16f8330ad5f8a1ec52286eff8771d28d83358..7778eea19920ce3389307a9d3b4f5d6c47ae1674 100644 (file)
@@ -84,94 +84,6 @@ _gl_convert_to_x_visual_type(int visualType)
 }
 
 
-/**
- * Copy a GLX visual config structure to a GL context mode structure.  All
- * of the fields in \c config are copied to \c mode.  Additional fields in
- * \c mode that can be derrived from the fields of \c config (i.e.,
- * \c haveDepthBuffer) are also filled in.  The remaining fields in \c mode
- * that cannot be derived are set to default values.
- * 
- * \param mode   Destination GL context mode.
- * \param config Source GLX visual config.
- * 
- * \note
- * The \c fbconfigID and \c visualID fields of the \c __GLcontextModes
- * structure will be set to the \c vid of the \c __GLXvisualConfig structure.
- */
-void
-_gl_copy_visual_to_context_mode(__GLcontextModes * mode,
-                                const __GLXvisualConfig * config)
-{
-   __GLcontextModes *const next = mode->next;
-
-   (void) memset(mode, 0, sizeof(__GLcontextModes));
-   mode->next = next;
-
-   mode->visualID = config->vid;
-   mode->visualType = _gl_convert_from_x_visual_type(config->class);
-   mode->xRenderable = GL_TRUE;
-   mode->fbconfigID = config->vid;
-   mode->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT;
-
-   mode->rgbMode = (config->rgba != 0);
-   mode->renderType = (mode->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT;
-
-   mode->colorIndexMode = !(mode->rgbMode);
-   mode->doubleBufferMode = (config->doubleBuffer != 0);
-   mode->stereoMode = (config->stereo != 0);
-
-   mode->haveAccumBuffer = ((config->accumRedSize +
-                             config->accumGreenSize +
-                             config->accumBlueSize +
-                             config->accumAlphaSize) > 0);
-   mode->haveDepthBuffer = (config->depthSize > 0);
-   mode->haveStencilBuffer = (config->stencilSize > 0);
-
-   mode->redBits = config->redSize;
-   mode->greenBits = config->greenSize;
-   mode->blueBits = config->blueSize;
-   mode->alphaBits = config->alphaSize;
-   mode->redMask = config->redMask;
-   mode->greenMask = config->greenMask;
-   mode->blueMask = config->blueMask;
-   mode->alphaMask = config->alphaMask;
-   mode->rgbBits = mode->rgbMode ? config->bufferSize : 0;
-   mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0;
-
-   mode->accumRedBits = config->accumRedSize;
-   mode->accumGreenBits = config->accumGreenSize;
-   mode->accumBlueBits = config->accumBlueSize;
-   mode->accumAlphaBits = config->accumAlphaSize;
-   mode->depthBits = config->depthSize;
-   mode->stencilBits = config->stencilSize;
-
-   mode->numAuxBuffers = config->auxBuffers;
-   mode->level = config->level;
-
-   mode->visualRating = config->visualRating;
-   mode->transparentPixel = config->transparentPixel;
-   mode->transparentRed = config->transparentRed;
-   mode->transparentGreen = config->transparentGreen;
-   mode->transparentBlue = config->transparentBlue;
-   mode->transparentAlpha = config->transparentAlpha;
-   mode->transparentIndex = config->transparentIndex;
-   mode->samples = config->multiSampleSize;
-   mode->sampleBuffers = config->nMultiSampleBuffers;
-   /* mode->visualSelectGroup = config->visualSelectGroup; ? */
-
-   mode->swapMethod = GLX_SWAP_UNDEFINED_OML;
-
-   mode->bindToTextureRgb = (mode->rgbMode) ? GL_TRUE : GL_FALSE;
-   mode->bindToTextureRgba = (mode->rgbMode && mode->alphaBits) ?
-      GL_TRUE : GL_FALSE;
-   mode->bindToMipmapTexture = mode->rgbMode ? GL_TRUE : GL_FALSE;
-   mode->bindToTextureTargets = mode->rgbMode ?
-      GLX_TEXTURE_1D_BIT_EXT | GLX_TEXTURE_2D_BIT_EXT |
-      GLX_TEXTURE_RECTANGLE_BIT_EXT : 0;
-   mode->yInverted = GL_FALSE;
-}
-
-
 /**
  * Get data from a GL context mode.
  * 
index ecf0280cba3efa0951c3779dc00df88a6bbf55a9..7e6590624bfa6df2fd0545790f9e33d80a169275 100644 (file)
 #ifndef GLCONTEXTMODES_H
 #define GLCONTEXTMODES_H
 
-#include "GL/internal/glcore.h"
+typedef struct __GLcontextModesRec {
+    struct __GLcontextModesRec * next;
+
+    GLboolean rgbMode;
+    GLboolean floatMode;
+    GLboolean colorIndexMode;
+    GLuint doubleBufferMode;
+    GLuint stereoMode;
+
+    GLboolean haveAccumBuffer;
+    GLboolean haveDepthBuffer;
+    GLboolean haveStencilBuffer;
+
+    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;
+} __GLcontextModes;
+
+#define __GLX_MIN_CONFIG_PROPS 18
+#define __GLX_MAX_CONFIG_PROPS 500
+#define __GLX_EXT_CONFIG_PROPS 10
+
+/*
+** Since we send all non-core visual properties as token, value pairs,
+** we require 2 words across the wire. In order to maintain backwards
+** compatibility, we need to send the total number of words that the
+** VisualConfigs are sent back in so old libraries can simply "ignore"
+** the new properties.
+*/
+#define __GLX_TOTAL_CONFIG \
+   (__GLX_MIN_CONFIG_PROPS + 2 * __GLX_EXT_CONFIG_PROPS)
 
 extern GLint _gl_convert_from_x_visual_type(int visualType);
 extern GLint _gl_convert_to_x_visual_type(int visualType);
-extern void _gl_copy_visual_to_context_mode(__GLcontextModes * mode,
-                                            const __GLXvisualConfig * config);
 extern int _gl_get_context_mode_data(const __GLcontextModes * mode,
                                      int attribute, int *value_return);
 
index 48b5501fe9ee292fd53302055000956a618ced5d..01087d035fdbf821126ce6b7e73ac4717f4de026 100644 (file)
 #ifdef WIN32
 #include <stdint.h>
 #endif
-#include "GL/glxint.h"
 #include "GL/glxproto.h"
-#include "GL/internal/glcore.h"
 #include "glapi/glapitable.h"
+#include "glcontextmodes.h"
 #include "glxhash.h"
 #if defined( PTHREADS )
 # include <pthread.h>