summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/wgl
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/wgl')
-rw-r--r--src/gallium/state_trackers/wgl/stw_context.c9
-rw-r--r--src/gallium/state_trackers/wgl/stw_framebuffer.c4
2 files changed, 6 insertions, 7 deletions
diff --git a/src/gallium/state_trackers/wgl/stw_context.c b/src/gallium/state_trackers/wgl/stw_context.c
index 3e99cc44db7..19f06203e91 100644
--- a/src/gallium/state_trackers/wgl/stw_context.c
+++ b/src/gallium/state_trackers/wgl/stw_context.c
@@ -160,21 +160,18 @@ stw_create_context_attribs(HDC hdc, INT iLayerPlane, DHGLRC hShareContext,
if (iLayerPlane != 0)
return 0;
- iPixelFormat = GetPixelFormat(hdc);
- if(!iPixelFormat)
- return 0;
-
/*
* GDI only knows about displayable pixel formats, so determine the pixel
* format from the framebuffer.
*
- * TODO: Remove the GetPixelFormat() above, and stop relying on GDI.
+ * This also allows to use a OpenGL DLL / ICD without installing.
*/
fb = stw_framebuffer_from_hdc( hdc );
if (fb) {
- assert(iPixelFormat == fb->iDisplayablePixelFormat);
iPixelFormat = fb->iPixelFormat;
stw_framebuffer_release(fb);
+ } else {
+ return 0;
}
pfi = stw_pixelformat_get_info( iPixelFormat );
diff --git a/src/gallium/state_trackers/wgl/stw_framebuffer.c b/src/gallium/state_trackers/wgl/stw_framebuffer.c
index 7b34fcbb5ed..cd8990d54f1 100644
--- a/src/gallium/state_trackers/wgl/stw_framebuffer.c
+++ b/src/gallium/state_trackers/wgl/stw_framebuffer.c
@@ -466,7 +466,9 @@ DrvSetPixelFormat(HDC hdc, LONG iPixelFormat)
* avoid opengl32.dll's wglCreateContext to fail */
if (GetPixelFormat(hdc) == 0) {
BOOL bRet = SetPixelFormat(hdc, iPixelFormat, NULL);
- assert(bRet);
+ if (!bRet) {
+ debug_printf("SetPixelFormat failed\n");
+ }
}
return TRUE;