disable post-process framebuffer rendering while in VR
[vrfileman] / src / app.cc
index b3049bc..f075761 100644 (file)
@@ -76,6 +76,8 @@ bool app_init(int argc, char **argv)
                goatvr_startvr();
                should_swap = goatvr_should_swap() != 0;
                cam_height = goatvr_get_eye_height();
+
+               RenderTarget::default_fbo = goatvr_get_fbo();
        }
 
        if(opt.srgb) {
@@ -177,37 +179,41 @@ void app_draw()
 
 static void draw_scene()
 {
-       set_render_target(rtarg);
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+       if(!opt.vr) {
+               set_render_target(rtarg);
+               glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+       }
 
        draw_backdrop();
        draw_fs();
 
-       set_render_target(0);
+       if(!opt.vr) {
+               set_render_target(0);
 
-       glPushAttrib(GL_ENABLE_BIT);
-       glDisable(GL_DEPTH_TEST);
+               glPushAttrib(GL_ENABLE_BIT);
+               glDisable(GL_DEPTH_TEST);
 
-       glUseProgram(post_sdr);
-       set_uniform_matrix4(post_sdr, "texmat", rtarg->get_texture_matrix()[0]);
+               glUseProgram(post_sdr);
+               set_uniform_matrix4(post_sdr, "texmat", rtarg->get_texture_matrix()[0]);
 
-       bind_texture(rtarg->get_texture());
+               bind_texture(rtarg->get_texture());
 
-       glBegin(GL_QUADS);
-       glTexCoord2f(0, 0);
-       glVertex2f(-1, -1);
-       glTexCoord2f(1, 0);
-       glVertex2f(1, -1);
-       glTexCoord2f(1, 1);
-       glVertex2f(1, 1);
-       glTexCoord2f(0, 1);
-       glVertex2f(-1, 1);
-       glEnd();
+               glBegin(GL_QUADS);
+               glTexCoord2f(0, 0);
+               glVertex2f(-1, -1);
+               glTexCoord2f(1, 0);
+               glVertex2f(1, -1);
+               glTexCoord2f(1, 1);
+               glVertex2f(1, 1);
+               glTexCoord2f(0, 1);
+               glVertex2f(-1, 1);
+               glEnd();
 
-       bind_texture(0);
-       glUseProgram(0);
+               bind_texture(0);
+               glUseProgram(0);
 
-       glPopAttrib();
+               glPopAttrib();
+       }
 }
 
 void app_reshape(int x, int y)