Module: wine Branch: master Commit: 521598560e95b4190367c9c09a45fcb559627150 URL: http://source.winehq.org/git/wine.git/?a=commit;h=521598560e95b4190367c9c09a...
Author: Roderick Colenbrander thunderbird2k@gmail.com Date: Wed Nov 11 16:27:43 2009 +0100
wgl: Fix a violation of the GLX specs in ConvertAttribWGLtoGLX.
Nvidia and Mesa ignore GLX_RENDER_TYPE when it is set to an invalid value like 0 but AMD for instance doesn't, which is legal.
---
dlls/winex11.drv/opengl.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 9f97099..6171f9b 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -600,7 +600,7 @@ static int ConvertAttribWGLtoGLX(const int* iWGLAttr, int* oGLXAttr, Wine_GLPBuf int pop; int drawattrib = 0; int nvfloatattrib = GLX_DONT_CARE; - int pixelattrib = 0; + int pixelattrib = ~0;
/* The list of WGL attributes is allowed to be NULL. We don't return here for NULL * because we need to do fixups for GLX_DRAWABLE_TYPE/GLX_RENDER_TYPE/GLX_FLOAT_COMPONENTS_NV. */ @@ -801,7 +801,9 @@ static int ConvertAttribWGLtoGLX(const int* iWGLAttr, int* oGLXAttr, Wine_GLPBuf PUSH2(oGLXAttr, GLX_DRAWABLE_TYPE, drawattrib); TRACE("pAttr[?] = GLX_DRAWABLE_TYPE: %#x\n", drawattrib);
- /* Set GLX_RENDER_TYPE all the time */ + /* By default glXChooseFBConfig uses GLX_RGBA_BIT as the default value. Since wglChoosePixelFormatARB + * searches in all formats we have to do the same. For this reason we set GLX_RENDER_TYPE to ~0 unless + * it is overridden. */ PUSH2(oGLXAttr, GLX_RENDER_TYPE, pixelattrib); TRACE("pAttr[?] = GLX_RENDER_TYPE: %#x\n", pixelattrib);