1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Correct multisample texture resolving in FrameBufferList::renderBuffer.

This commit is contained in:
Sergey Lipskiy 2016-05-14 18:12:42 +06:00
parent 70ede8237e
commit 88656c9059

View File

@ -977,15 +977,15 @@ void FrameBufferList::renderBuffer(u32 _address)
render.clearColorBuffer(clearColor); render.clearColorBuffer(clearColor);
GLenum filter = GL_LINEAR; GLenum filter = GL_LINEAR;
if (config.video.multisampling != 0 && pFilteredBuffer == pBuffer) { if (pFilteredBuffer->m_pTexture->frameBufferTexture == CachedTexture::fbMultiSample) {
if (X0 > 0 || dstPartHeight > 0 || if (X0 > 0 || dstPartHeight > 0 ||
(srcCoord[2] - srcCoord[0]) != (dstCoord[2] - dstCoord[0]) || (srcCoord[2] - srcCoord[0]) != (dstCoord[2] - dstCoord[0]) ||
(srcCoord[3] - srcCoord[1]) != (dstCoord[3] - dstCoord[1])) { (srcCoord[3] - srcCoord[1]) != (dstCoord[3] - dstCoord[1])) {
pBuffer->resolveMultisampledTexture(true); pFilteredBuffer->resolveMultisampledTexture(true);
glBindFramebuffer(GL_READ_FRAMEBUFFER, pBuffer->m_resolveFBO); glBindFramebuffer(GL_READ_FRAMEBUFFER, pFilteredBuffer->m_resolveFBO);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
} else { } else {
glBindFramebuffer(GL_READ_FRAMEBUFFER, pBuffer->m_FBO); glBindFramebuffer(GL_READ_FRAMEBUFFER, pFilteredBuffer->m_FBO);
filter = GL_NEAREST; filter = GL_NEAREST;
} }
} else } else