XQuartz: Cleanup the bitmask setting for GLX visuals.

(cherry picked from commit d32c3df258)
This commit is contained in:
Jeremy Huddleston 2009-07-31 14:14:21 -07:00
parent 70ac671af2
commit da0a274780

View File

@ -56,6 +56,8 @@
#include "capabilities.h"
#include "visualConfigs.h"
#define MASK(l,h) (((1 << (1 + h - l)) - 1) << l)
/* Based originally on code from indirect.c which was based on code from i830_dri.c. */
__GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber) {
int numConfigs = 0;
@ -180,33 +182,29 @@ __GLXconfig *__glXAquaCreateVisualConfigs(int *numConfigsPtr, int screenNumber)
}
// Color
c->redBits = conf->color_buffers[color].r;
c->greenBits = conf->color_buffers[color].g;
c->rgbBits = 0;
c->blueBits = conf->color_buffers[color].b;
c->blueMask = MASK(c->rgbBits, c->rgbBits + c->blueBits - 1);
c->rgbBits += c->blueBits;
c->greenBits = conf->color_buffers[color].g;
c->greenMask = MASK(c->rgbBits, c->rgbBits + c->greenBits - 1);
c->rgbBits += c->greenBits;
c->redBits = conf->color_buffers[color].r;
c->redMask = MASK(c->rgbBits, c->rgbBits + c->redBits - 1);
c->rgbBits += c->redBits;
if(GLCAPS_COLOR_BUF_INVALID_VALUE != conf->color_buffers[color].a) {
c->alphaBits = conf->color_buffers[color].a;
c->alphaMask = MASK(c->rgbBits, c->rgbBits + c->alphaBits - 1);
c->rgbBits += c->alphaBits;
} else {
c->alphaBits = 0;
c->alphaMask = 0;
}
c->rgbBits = c->redBits + c->blueBits +
c->blueBits + c->alphaBits;
/*
* I'm uncertain about these masks.
* I don't think we actually care what the values are in our
* libGL, so it doesn't seem to make a difference.
*
* These need to match dfb in xprScreen.c or we'll have a default
* visual without a corresponding GLX visual. This causes
* http://xquartz.macosforge.org/trac/ticket/287
*/
c->redMask = 0xff0000;
c->greenMask = 0x00ff00;
c->blueMask = 0x0000ff;
c->alphaMask = 0;
// Accumulation Buffers
if(conf->total_accum_buffers > 0) {
c->accumRedBits = conf->accum_buffers[accum].r;