From 6288e99798751d3b98a5f161447e33c5cd5c4193 Mon Sep 17 00:00:00 2001 From: Sam Cake Date: Fri, 11 Dec 2015 23:28:04 -0800 Subject: [PATCH] Playing with mirror --- interface/src/Application.cpp | 44 +++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index e1915d4415..93dbf3fead 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1339,23 +1339,33 @@ void Application::paintGL() { auto mirrorRectDest = glm::ivec4(mirrorRect.z, mirrorRect.y, mirrorRect.x, mirrorRect.w); auto primaryFbo = framebufferCache->getPrimaryFramebuffer(); - /** - gpu::doInBatch(renderArgs._context, [=](gpu::Batch& batch) { - batch.setFramebuffer(finalFramebuffer); - batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)); - batch.blit(primaryFbo, mirrorRect, finalFramebuffer, mirrorRectDest); - batch.setFramebuffer(nullptr); - }); - */ - gpu::doInBatch(renderArgs._context, [=](gpu::Batch& batch) { - gpu::Vec4i rect; - rect.z = size.width(); - rect.w = size.height(); - batch.setFramebuffer(finalFramebuffer); - batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)); - batch.blit(primaryFbo, rect, finalFramebuffer, rect); - // batch.setFramebuffer(nullptr); - }); + + if (renderArgs._renderMode == RenderArgs::MIRROR_RENDER_MODE) { + gpu::doInBatch(renderArgs._context, [=](gpu::Batch& batch) { + gpu::Vec4i srcRect; + srcRect.z = size.width(); + srcRect.w = size.height(); + gpu::Vec4i destRect; + destRect.x = size.width(); + destRect.y = 0; + destRect.z = 0; + destRect.w = size.height(); + batch.setFramebuffer(finalFramebuffer); + // batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)); + batch.blit(primaryFbo, srcRect, finalFramebuffer, destRect); + // batch.setFramebuffer(nullptr); + }); + } else { + gpu::doInBatch(renderArgs._context, [=](gpu::Batch& batch) { + gpu::Vec4i rect; + rect.z = size.width(); + rect.w = size.height(); + batch.setFramebuffer(finalFramebuffer); + // batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, glm::vec4(0.0f, 0.0f, 0.0f, 0.0f)); + batch.blit(primaryFbo, rect, finalFramebuffer, rect); + // batch.setFramebuffer(nullptr); + }); + } }