mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
st/wgl: Don't rely on GDI to bookkeep pixelformat for us.
This allows to use apitrace's retracediff script on Windows to retrace and
compare two builds of a Mesa based opengl32.dll/ICD side-by-side.
See also e4a4f15f5b
This commit is contained in:
parent
24abbaff9a
commit
e524df5ef3
2 changed files with 6 additions and 7 deletions
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue