Adding multitouch capability per e-mail from Florian Echtler dated 3/17/11 12:07 PM
[freeglut] / src / freeglut_gamemode.c
index 7569d1f..6934534 100644 (file)
@@ -445,6 +445,7 @@ static GLboolean fghChangeDisplayMode( GLboolean haveToTest )
 
     DEVMODE  devMode;
     char *fggmstr = NULL;
+    char displayMode[300];
 
     success = GL_FALSE;
 
@@ -477,12 +478,15 @@ static GLboolean fghChangeDisplayMode( GLboolean haveToTest )
     case DISP_CHANGE_SUCCESSFUL:
         success = GL_TRUE;
 
-        /* update vars in case if windows switched to proper mode */
-        EnumDisplaySettings( fgDisplay.DisplayName, FREEGLUT_ENUM_CURRENT_SETTINGS, &devMode );
-        fgState.GameModeSize.X  = devMode.dmPelsWidth;        
-        fgState.GameModeSize.Y  = devMode.dmPelsHeight;
-        fgState.GameModeDepth   = devMode.dmBitsPerPel;
-        fgState.GameModeRefresh = devMode.dmDisplayFrequency;
+        if (!haveToTest)
+        {
+            /* update vars in case if windows switched to proper mode */
+            EnumDisplaySettings( fgDisplay.DisplayName, FREEGLUT_ENUM_CURRENT_SETTINGS, &devMode );
+            fgState.GameModeSize.X  = devMode.dmPelsWidth;        
+            fgState.GameModeSize.Y  = devMode.dmPelsHeight;
+            fgState.GameModeDepth   = devMode.dmBitsPerPel;
+            fgState.GameModeRefresh = devMode.dmDisplayFrequency;
+        }
                break;
     case DISP_CHANGE_RESTART:
         fggmstr = "The computer must be restarted for the graphics mode to work.";
@@ -505,8 +509,14 @@ static GLboolean fghChangeDisplayMode( GLboolean haveToTest )
     }
 
     if ( !success )
-        fgWarning(fggmstr); /* I'd rather get info whats going on in my program than wonder about */
-                            /* magic happenings behind my back, its lib for devels at last ;) */
+    {
+        /* I'd rather get info whats going on in my program than wonder about */
+        /* magic happenings behind my back, its lib for devels at last ;) */
+        
+        /* append display mode to error to make things more informative */
+        sprintf(displayMode,"%s Problem with requested mode: %ix%i:%i@%i", fggmstr, devMode.dmPelsWidth, devMode.dmPelsHeight, devMode.dmBitsPerPel, devMode.dmDisplayFrequency);
+        fgWarning(displayMode);
+    }
 #endif
 
     return success;