[cogl] glx do not use multisample visual config for front or pixmap
- From: Robert Bragg <rbragg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl] glx do not use multisample visual config for front or pixmap
- Date: Thu, 31 Jan 2013 12:26:27 +0000 (UTC)
commit 93b7b4c850dd928bf21ee168a95641a8d631f713
Author: Jerome Glisse <jglisse redhat com>
Date: Tue Jan 29 18:37:41 2013 -0500
glx do not use multisample visual config for front or pixmap
There is no guaranty that glXGetFBConfigs will return fbconfig ordered
with non msaa config first. This patch make sure that non msaa config
get choose.
Signed-off-by: Jerome Glisse <jglisse redhat com>
Reviewed-by: Robert Bragg <robert linux intel com>
cogl/winsys/cogl-winsys-glx.c | 29 +++++++++++++++++++++++------
1 files changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c
index f559f15..6015196 100644
--- a/cogl/winsys/cogl-winsys-glx.c
+++ b/cogl/winsys/cogl-winsys-glx.c
@@ -768,13 +768,20 @@ glx_attributes_from_framebuffer_config (CoglDisplay *display,
attributes[i++] = GLX_STENCIL_SIZE;
attributes[i++] = config->need_stencil ? 1: GLX_DONT_CARE;
- if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4 &&
- config->samples_per_pixel)
- {
- attributes[i++] = GLX_SAMPLE_BUFFERS;
- attributes[i++] = 1;
- attributes[i++] = GLX_SAMPLES;
- attributes[i++] = config->samples_per_pixel;
+ if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4)
+ {
+ if (config->samples_per_pixel)
+ {
+ attributes[i++] = GLX_SAMPLE_BUFFERS;
+ attributes[i++] = 1;
+ attributes[i++] = GLX_SAMPLES;
+ attributes[i++] = config->samples_per_pixel;
+ }
+ else
+ {
+ attributes[i++] = GLX_SAMPLE_BUFFERS;
+ attributes[i++] = 0;
+ }
}
attributes[i++] = None;
@@ -2016,6 +2023,16 @@ get_fbconfig_for_depth (CoglContext *context,
if (value != depth && (value - alpha) != depth)
continue;
+ if (glx_renderer->glx_major == 1 && glx_renderer->glx_minor >= 4)
+ {
+ glx_renderer->glXGetFBConfigAttrib (dpy,
+ fbconfigs[i],
+ GLX_SAMPLES,
+ &value);
+ if (value > 1)
+ continue;
+ }
+
value = 0;
if (depth == 32)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]