summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJon Smirl <jonsmirl@gmail.com>2005-05-17 00:59:13 +0000
committerJon Smirl <jonsmirl@gmail.com>2005-05-17 00:59:13 +0000
commitd06da508880e9baee403b0d0046764b31087cdfd (patch)
treed373c8ed0a835c34586ba5d5a7cfa1285ae190ee /src
parentc1082804a853233eee123c5b2408ba9b3faa7fd9 (diff)
Fix several internal problems with generating the list of configs.
Diffstat (limited to 'src')
-rw-r--r--src/egl/main/eglconfig.c5
-rw-r--r--src/mesa/drivers/dri/fb/fb_egl.c14
2 files changed, 5 insertions, 14 deletions
diff --git a/src/egl/main/eglconfig.c b/src/egl/main/eglconfig.c
index 59503f6c9b..34195c5277 100644
--- a/src/egl/main/eglconfig.c
+++ b/src/egl/main/eglconfig.c
@@ -19,7 +19,7 @@
/**
* Convert an _EGLConfig to a __GLcontextModes object.
*/
-void
+static void
_eglConfigToContextModesRec(const _EGLConfig *config, __GLcontextModes *mode)
{
memset(mode, 0, sizeof(*mode));
@@ -185,6 +185,7 @@ _eglAddConfig(_EGLDisplay *display, const _EGLConfig *config)
if (newConfigs) {
display->Configs = newConfigs;
display->Configs[n] = *config; /* copy struct */
+ display->Configs[n].Handle = n;
display->NumConfigs++;
return display->Configs + n;
}
@@ -633,7 +634,7 @@ _eglFillInConfigs(_EGLConfig * configs,
config->glmode.visualRating = (j == 0) ? GLX_NONE : GLX_SLOW_CONFIG;
_eglSetConfigAttrib(config, EGL_STENCIL_SIZE, stencil_bits[k]);
- _eglSetConfigAttrib(config, EGL_DEPTH_SIZE, depth_bits[k]);
+ _eglSetConfigAttrib(config, EGL_DEPTH_SIZE, depth_bits[i]);
config->glmode.visualType = visType;
config->glmode.renderType = GLX_RGBA_BIT;
diff --git a/src/mesa/drivers/dri/fb/fb_egl.c b/src/mesa/drivers/dri/fb/fb_egl.c
index 78ca3a5860..8af14d1d16 100644
--- a/src/mesa/drivers/dri/fb/fb_egl.c
+++ b/src/mesa/drivers/dri/fb/fb_egl.c
@@ -109,7 +109,7 @@ fbFillInConfigs(_EGLDisplay *disp, unsigned pixel_bits, unsigned depth_bits,
u_int8_t depth_bits_array[2];
u_int8_t stencil_bits_array[2];
- depth_bits_array[0] = depth_bits;
+ depth_bits_array[0] = 0;
depth_bits_array[1] = depth_bits;
/* Just like with the accumulation buffer, always provide some modes
@@ -122,7 +122,7 @@ fbFillInConfigs(_EGLDisplay *disp, unsigned pixel_bits, unsigned depth_bits,
depth_buffer_factor = ((depth_bits != 0) || (stencil_bits != 0)) ? 2 : 1;
back_buffer_factor = (have_back_buffer) ? 2 : 1;
- num_configs = depth_buffer_factor * back_buffer_factor * 4;
+ num_configs = depth_buffer_factor * back_buffer_factor * 2;
if (pixel_bits == 16) {
fb_format = GL_RGB;
@@ -143,16 +143,6 @@ fbFillInConfigs(_EGLDisplay *disp, unsigned pixel_bits, unsigned depth_bits,
return EGL_FALSE;
}
- c = &configs[depth_buffer_factor * back_buffer_factor * 2];
- if (!_eglFillInConfigs(c, fb_format, fb_type,
- depth_bits_array, stencil_bits_array, depth_buffer_factor,
- back_buffer_modes, back_buffer_factor,
- GLX_DIRECT_COLOR)) {
- fprintf(stderr, "[%s:%u] Error creating FBConfig!\n",
- __func__, __LINE__);
- return EGL_FALSE;
- }
-
/* Mark the visual as slow if there are "fake" stencil bits.
*/
for (i = 0, c = configs; i < num_configs; i++, c++) {