From 2407c94762ea7c63b751b2838e228f803a62ede1 Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Thu, 24 Mar 2016 23:52:42 +0100 Subject: [PATCH] gl_rendertarget: Always set all draw buffers. --- src/Layers/xrRenderPC_GL/gl_rendertarget.cpp | 25 +++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/Layers/xrRenderPC_GL/gl_rendertarget.cpp b/src/Layers/xrRenderPC_GL/gl_rendertarget.cpp index d40dd1534b3..f1971fe5cd1 100644 --- a/src/Layers/xrRenderPC_GL/gl_rendertarget.cpp +++ b/src/Layers/xrRenderPC_GL/gl_rendertarget.cpp @@ -19,28 +19,27 @@ void CRenderTarget::u_setrt(const ref_rt& _1, const ref_rt& _2, const ref_rt& _3 VERIFY(_1); dwWidth = _1->dwWidth; dwHeight = _1->dwHeight; - GLuint cnt = 0; GLenum buffers[3] = { GL_NONE }; if (_1) { - buffers[cnt++] = GL_COLOR_ATTACHMENT0; + buffers[0] = GL_COLOR_ATTACHMENT0; RCache.set_RT(_1->pRT, 0); } if (_2) { - buffers[cnt++] = GL_COLOR_ATTACHMENT1; + buffers[1] = GL_COLOR_ATTACHMENT1; RCache.set_RT(_2->pRT, 1); } if (_3) { - buffers[cnt++] = GL_COLOR_ATTACHMENT2; + buffers[2] = GL_COLOR_ATTACHMENT2; RCache.set_RT(_3->pRT, 2); } RCache.set_ZB(zb); // RImplementation.rmNormal (); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); VERIFY(status == GL_FRAMEBUFFER_COMPLETE); - CHK_GL(glDrawBuffers(cnt, buffers)); + CHK_GL(glDrawBuffers(3, buffers)); } void CRenderTarget::u_setrt(const ref_rt& _1, const ref_rt& _2, GLuint zb) @@ -48,51 +47,49 @@ void CRenderTarget::u_setrt(const ref_rt& _1, const ref_rt& _2, GLuint zb) VERIFY(_1); dwWidth = _1->dwWidth; dwHeight = _1->dwHeight; - GLuint cnt = 0; GLenum buffers[2] = { GL_NONE }; if (_1) { - buffers[cnt++] = GL_COLOR_ATTACHMENT0; + buffers[0] = GL_COLOR_ATTACHMENT0; RCache.set_RT(_1->pRT, 0); } if (_2) { - buffers[cnt++] = GL_COLOR_ATTACHMENT1; + buffers[1] = GL_COLOR_ATTACHMENT1; RCache.set_RT(_2->pRT, 1); } RCache.set_ZB(zb); // RImplementation.rmNormal (); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); VERIFY(status == GL_FRAMEBUFFER_COMPLETE); - CHK_GL(glDrawBuffers(cnt, buffers)); + CHK_GL(glDrawBuffers(2, buffers)); } void CRenderTarget::u_setrt(u32 W, u32 H, GLuint _1, GLuint _2, GLuint _3, GLuint zb) { dwWidth = W; dwHeight = H; - GLuint cnt = 0; GLenum buffers[3] = { GL_NONE }; if (_1) { - buffers[cnt++] = GL_COLOR_ATTACHMENT0; + buffers[0] = GL_COLOR_ATTACHMENT0; RCache.set_RT(_1, 0); } if (_2) { - buffers[cnt++] = GL_COLOR_ATTACHMENT1; + buffers[1] = GL_COLOR_ATTACHMENT1; RCache.set_RT(_2, 1); } if (_3) { - buffers[cnt++] = GL_COLOR_ATTACHMENT2; + buffers[2] = GL_COLOR_ATTACHMENT2; RCache.set_RT(_3, 2); } RCache.set_ZB(zb); // RImplementation.rmNormal (); GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER); VERIFY(status == GL_FRAMEBUFFER_COMPLETE); - CHK_GL(glDrawBuffers(cnt, buffers)); + CHK_GL(glDrawBuffers(3, buffers)); } void CRenderTarget::u_stencil_optimize (eStencilOptimizeMode eSOM)