From af6da66ce3c22b083d4f8b8f7d8e5b34bda18db0 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 20 Sep 2010 13:15:21 +0000 Subject: [PATCH] Correctly recognize when wglChoosePixelFormatARB() fails. This function returns TRUE even if it failed to find any matching formats, so test not only its return value but also the number of formats it found. Closes #12474. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/glcanvas.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/msw/glcanvas.cpp b/src/msw/glcanvas.cpp index 15ad41545b..e446fe096b 100644 --- a/src/msw/glcanvas.cpp +++ b/src/msw/glcanvas.cpp @@ -493,12 +493,21 @@ static int ChoosePixelFormatARB(HDC hdc, const int *attribList) int pf; UINT numFormats = 0; + if ( !wglChoosePixelFormatARB(hdc, iAttributes, NULL, 1, &pf, &numFormats) ) { wxLogLastError(wxT("wglChoosePixelFormatARB")); return 0; } + // Although TRUE is returned if no matching formats are found (see + // http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt), pf is + // not initialized in this case so we need to check for numFormats being + // not 0 explicitly (however this is not an error so don't call + // wxLogLastError() here). + if ( !numFormats ) + pf = 0; + return pf; } -- 2.47.2