Mesa (master): glx: Stop using glcore.h and glxint.h in glx

Kristian Høgsberg krh at kemper.freedesktop.org
Wed Jul 28 20:50:37 UTC 2010


Module: Mesa
Branch: master
Commit: 38765fe4c2ba96e642510eaed0c2f8c44f0c2b1d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=38765fe4c2ba96e642510eaed0c2f8c44f0c2b1d

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Wed Jul 28 09:08:32 2010 -0400

glx: Stop using glcore.h and glxint.h in glx

We'd like to get rid of these header files.

---

 src/glx/glcontextmodes.c |   88 --------------------------------------------
 src/glx/glcontextmodes.h |   92 ++++++++++++++++++++++++++++++++++++++++++++-
 src/glx/glxclient.h      |    3 +-
 3 files changed, 90 insertions(+), 93 deletions(-)

diff --git a/src/glx/glcontextmodes.c b/src/glx/glcontextmodes.c
index cdc16f8..7778eea 100644
--- a/src/glx/glcontextmodes.c
+++ b/src/glx/glcontextmodes.c
@@ -85,94 +85,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.
  * 
  * \param mode         GL context mode whose data is to be returned.
diff --git a/src/glx/glcontextmodes.h b/src/glx/glcontextmodes.h
index ecf0280..7e65906 100644
--- a/src/glx/glcontextmodes.h
+++ b/src/glx/glcontextmodes.h
@@ -30,12 +30,98 @@
 #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);
 
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index 48b5501..01087d0 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -49,10 +49,9 @@
 #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>




More information about the mesa-commit mailing list