From 4263f0009277194fbdbb74fa11e3b6f97bbba74c Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 10 May 2014 11:41:24 +0800 Subject: [PATCH] Add GL_NV_framebuffer_blit support for BindFramebufferColor() --- GPU/GLES/Framebuffer.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/Framebuffer.cpp b/GPU/GLES/Framebuffer.cpp index ba3ebd914c..78e64758cb 100644 --- a/GPU/GLES/Framebuffer.cpp +++ b/GPU/GLES/Framebuffer.cpp @@ -1009,7 +1009,15 @@ void FramebufferManager::BindFramebufferColor(VirtualFramebuffer *framebuffer) { fbo_bind_as_render_target(renderCopy); glViewport(0, 0, framebuffer->renderWidth, framebuffer->renderHeight); fbo_bind_for_read(framebuffer->fbo); - glBlitFramebuffer(0, 0, framebuffer->renderWidth, framebuffer->renderHeight, 0, 0, framebuffer->renderWidth, framebuffer->renderHeight, GL_COLOR_BUFFER_BIT, GL_NEAREST); + + if (gl_extensions.GLES3) { + glBlitFramebuffer(0, 0, framebuffer->renderWidth, framebuffer->renderHeight, 0, 0, framebuffer->renderWidth, framebuffer->renderHeight, GL_COLOR_BUFFER_BIT, GL_NEAREST); + } +#if defined(ANDROID) // We only support this extension on Android, it's not even available on PC. + else if (gl_extensions.NV_framebuffer_blit) { + glBlitFramebufferNV(0, 0, framebuffer->renderWidth, framebuffer->renderHeight, 0, 0, framebuffer->renderWidth, framebuffer->renderHeight, GL_COLOR_BUFFER_BIT, GL_NEAREST) + } +#endif // defined(ANDROID) fbo_bind_as_render_target(currentRenderVfb_->fbo); fbo_bind_color_as_texture(renderCopy, 0);