diff gldragon.cpp @ 63:d6ffc59bb84d

Move more of the SDL and GL setup code to the renderer class.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 14 Dec 2019 20:13:32 +0200
parents baccf2044289
children e8100c1c5d99
line wrap: on
line diff
--- a/gldragon.cpp	Sat Dec 14 16:39:20 2019 +0200
+++ b/gldragon.cpp	Sat Dec 14 20:13:32 2019 +0200
@@ -28,11 +28,6 @@
        optVSyncMode = 1;
 
 
-/* Globals
- */
-SDL_Window *dmWindow = NULL;
-
-
 /* Helpers
  */
 bool dmInitSDL(DMSimpleRenderer &renderer, const int width, const int height, const char *title)
@@ -49,25 +44,11 @@
     }
 
     // Part 1 of initialization
-    if (!renderer.initRender1())
+    if (!renderer.initRenderer1(title, width, height,
+        SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
+        SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE))
         return false;
 
-    // Attempt to create a window
-    if ((dmWindow = SDL_CreateWindow(title,
-            SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
-            width, height,
-            SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)) == NULL)
-    {
-        dmError("Could not create SDL window: %s",
-            SDL_GetError());
-        return false;
-    }
-
-    // Part 2 of initialization
-    if (!renderer.initRender2(dmWindow))
-        return false;
-
-
     // Check if we want to attempt to use vsync
     switch (optVSyncMode)
     {
@@ -105,7 +86,7 @@
     }
 
     // Part 3 of initialization
-    if (!renderer.initRender3(width, height))
+    if (!renderer.initRenderer2())
         return false;
 
     dmMsg("VSync mode  : %s\n", msg.c_str());
@@ -307,7 +288,7 @@
         renderer.drawScene(scene, totalTime);
 
         // Draw the current frame
-        SDL_GL_SwapWindow(dmWindow);
+        renderer.swapWindow();
 
         // Rotate for 2 degrees
         renderer.animate(scene, totalTime);
@@ -343,9 +324,6 @@
 exit:
     renderer.shutdownRenderer();
 
-    if (dmWindow != NULL)
-        SDL_DestroyWindow(dmWindow);
-
     SDL_Quit();
 
     return 0;