]> git.saurik.com Git - wxWidgets.git/commitdiff
Correctly recognize when wglChoosePixelFormatARB() fails.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 20 Sep 2010 13:15:21 +0000 (13:15 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 20 Sep 2010 13:15:21 +0000 (13:15 +0000)
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

index 15ad41545b27d4e9a951f88e164add4f4bcced31..e446fe096bddb60cb20efb0a57c19534eca9be3c 100644 (file)
@@ -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;
 }