demos: Adjust vulkaninfo failure cases
authorDustin Graves <dustin@lunarg.com>
Mon, 15 Feb 2016 22:54:52 +0000 (15:54 -0700)
committerJon Ashburn <jon@lunarg.com>
Thu, 18 Feb 2016 22:42:04 +0000 (15:42 -0700)
For Windows, after vulkaninfo allocates a console, it tries to resize the
console and change the title text.  Failure of either operation was
treated as console icreation failure, which led to vulkaninfo printing
to the console and then closing the console immediately.  Now treating
AllocConsole() failure as console creation failure and ignoring resize and
title text change failures.  With this change, resize failure will not
stop the app from pausing after printing info to the console.

demos/vulkaninfo.c

index 8f768bf5f19379fe80ff2f8b1fa907e5230798b9..8549b3a5cef6aee5ad7ae3cf08f7ee542c1522e1 100644 (file)
@@ -1213,7 +1213,8 @@ bool SetStdOutToNewConsole() {
         return false;
 
     // allocate a console for this app
-    AllocConsole();
+    if (!AllocConsole())
+        return false;
 
     // redirect unbuffered STDOUT to the console
     HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
@@ -1224,23 +1225,22 @@ bool SetStdOutToNewConsole() {
 
     // make the console window bigger
     CONSOLE_SCREEN_BUFFER_INFO csbi;
-    SMALL_RECT r;
     COORD bufferSize;
-    if (!GetConsoleScreenBufferInfo(consoleHandle, &csbi))
-        return false;
-    bufferSize.X = csbi.dwSize.X + 30;
-    bufferSize.Y = 20000;
-    if (!SetConsoleScreenBufferSize(consoleHandle, bufferSize))
-        return false;
+    if (GetConsoleScreenBufferInfo(consoleHandle, &csbi))
+    {
+        bufferSize.X = csbi.dwSize.X + 30;
+        bufferSize.Y = 20000;
+        SetConsoleScreenBufferSize(consoleHandle, bufferSize);
+    }
+
+    SMALL_RECT r;
     r.Left = r.Top = 0;
     r.Right = csbi.dwSize.X - 1 + 30;
     r.Bottom = 50;
-    if (!SetConsoleWindowInfo(consoleHandle, true, &r))
-        return false;
+    SetConsoleWindowInfo(consoleHandle, true, &r);
 
     // change the console window title
-    if (!SetConsoleTitle(TEXT(APP_SHORT_NAME)))
-        return false;
+    SetConsoleTitle(TEXT(APP_SHORT_NAME));
 
     return true;
 }