From d06da508880e9baee403b0d0046764b31087cdfd Mon Sep 17 00:00:00 2001 From: Jon Smirl Date: Tue, 17 May 2005 00:59:13 +0000 Subject: Fix several internal problems with generating the list of configs. --- src/egl/main/eglconfig.c | 5 +++-- src/mesa/drivers/dri/fb/fb_egl.c | 14 ++------------ 2 files changed, 5 insertions(+), 14 deletions(-) (limited to 'src') 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++) { -- cgit v1.2.3