handle failure to get an sRGB framebuffer correctly
[laserbrain_demo] / src / app.cc
index 2f2cd50..ac6edd9 100644 (file)
@@ -95,11 +95,16 @@ bool app_init(int argc, char **argv)
                goatvr_recenter();
        }
 
-       int srgb_capable;
-       glGetIntegerv(GL_FRAMEBUFFER_SRGB_CAPABLE_EXT, &srgb_capable);
-       printf("Framebuffer %s sRGB-capable\n", srgb_capable ? "is" : "is not");
-       fb_srgb = srgb_capable != 0;
-       glEnable(GL_FRAMEBUFFER_SRGB);
+       if(fb_srgb) {
+               int srgb_capable;
+               glGetIntegerv(GL_FRAMEBUFFER_SRGB_CAPABLE_EXT, &srgb_capable);
+               printf("Framebuffer %s sRGB-capable\n", srgb_capable ? "is" : "is not");
+               if(srgb_capable) {
+                       glEnable(GL_FRAMEBUFFER_SRGB);
+               } else {
+                       fb_srgb = 0;
+               }
+       }
 
        glEnable(GL_MULTISAMPLE);
        glEnable(GL_DEPTH_TEST);
@@ -114,6 +119,8 @@ bool app_init(int argc, char **argv)
 
        glClearColor(1, 1, 1, 1);
 
+       init_audio();
+
        if(!init_vrhands()) {
                return false;
        }
@@ -166,11 +173,20 @@ bool app_init(int argc, char **argv)
        if(opt.vr || opt.fullscreen) {
                app_grab_mouse(true);
        }
+
+       if(mscn->music && opt.music) {
+               mscn->music->play(AUDIO_PLAYMODE_LOOP);
+       }
        return true;
 }
 
 void app_cleanup()
 {
+       if(mscn->music) {
+               mscn->music->stop();
+       }
+       destroy_audio();
+
        app_grab_mouse(false);
        if(opt.vr) {
                goatvr_shutdown();