ColorbufferInfo Framebuffer::getColorbuffersForRender(const rx::Workarounds &workarounds) const { ColorbufferInfo colorbuffersForRender; for (size_t colorAttachment = 0; colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS; ++colorAttachment) { GLenum drawBufferState = mDrawBufferStates[colorAttachment]; FramebufferAttachment *colorbuffer = mColorbuffers[colorAttachment]; if (colorbuffer != NULL && drawBufferState != GL_NONE) { ASSERT(drawBufferState == GL_BACK || drawBufferState == (GL_COLOR_ATTACHMENT0_EXT + colorAttachment)); colorbuffersForRender.push_back(colorbuffer); } else if (!workarounds.mrtPerfWorkaround) { colorbuffersForRender.push_back(NULL); } } return colorbuffersForRender; }
ColorbufferInfo Framebuffer::getColorbuffersForRender() const { ColorbufferInfo colorbuffersForRender; for (size_t colorAttachment = 0; colorAttachment < IMPLEMENTATION_MAX_DRAW_BUFFERS; ++colorAttachment) { GLenum drawBufferState = mDrawBufferStates[colorAttachment]; FramebufferAttachment *colorbuffer = mColorbuffers[colorAttachment]; if (colorbuffer != NULL && drawBufferState != GL_NONE) { ASSERT(drawBufferState == GL_BACK || drawBufferState == (GL_COLOR_ATTACHMENT0_EXT + colorAttachment)); colorbuffersForRender.push_back(colorbuffer); } #if (ANGLE_MRT_PERF_WORKAROUND == ANGLE_WORKAROUND_DISABLED) else { colorbuffersForRender.push_back(NULL); } #endif } return colorbuffersForRender; }