mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-02 09:03:37 +00:00
Fix FrameBufferList::renderBuffer() when MSAA enabled.
This commit is contained in:
parent
0775d28065
commit
7b3e700eed
|
@ -1081,29 +1081,21 @@ void FrameBufferList::renderBuffer()
|
|||
hOffset + dstX1,
|
||||
vOffset + (s32)(dstY1*dstScaleY) };
|
||||
|
||||
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, ObjectHandle::null);
|
||||
|
||||
float clearColor[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
drawer.clearColorBuffer(clearColor);
|
||||
|
||||
|
||||
TextureParam filter = textureParameters::FILTER_LINEAR;
|
||||
ObjectHandle readBuffer;
|
||||
|
||||
if (pFilteredBuffer->m_pTexture->frameBufferTexture == CachedTexture::fbMultiSample) {
|
||||
if (dstX0 > 0 || dstPartHeight > 0 ||
|
||||
(srcCoord[2] - srcCoord[0]) != (dstCoord[2] - dstCoord[0]) ||
|
||||
(srcCoord[3] - srcCoord[1]) != (dstCoord[3] - dstCoord[1])) {
|
||||
pFilteredBuffer->resolveMultisampledTexture(true);
|
||||
readBuffer = pFilteredBuffer->m_resolveFBO;
|
||||
} else {
|
||||
readBuffer = pFilteredBuffer->m_FBO;
|
||||
filter = textureParameters::FILTER_NEAREST;
|
||||
}
|
||||
pFilteredBuffer->resolveMultisampledTexture(true);
|
||||
readBuffer = pFilteredBuffer->m_resolveFBO;
|
||||
pBufferTexture = pFilteredBuffer->m_pResolveTexture;
|
||||
} else {
|
||||
readBuffer = pFilteredBuffer->m_FBO;
|
||||
}
|
||||
|
||||
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, ObjectHandle::null);
|
||||
float clearColor[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
drawer.clearColorBuffer(clearColor);
|
||||
|
||||
GraphicsDrawer::BlitOrCopyRectParams blitParams;
|
||||
blitParams.srcX0 = srcCoord[0];
|
||||
blitParams.srcY0 = srcCoord[1];
|
||||
|
@ -1138,12 +1130,12 @@ void FrameBufferList::renderBuffer()
|
|||
if (pFilteredBuffer->m_pTexture->frameBufferTexture == CachedTexture::fbMultiSample) {
|
||||
pFilteredBuffer->resolveMultisampledTexture();
|
||||
readBuffer = pFilteredBuffer->m_resolveFBO;
|
||||
pBufferTexture = pFilteredBuffer->m_pResolveTexture;
|
||||
} else {
|
||||
readBuffer = pFilteredBuffer->m_FBO;
|
||||
pBufferTexture = pFilteredBuffer->m_pTexture;
|
||||
}
|
||||
|
||||
pBufferTexture = pFilteredBuffer->m_pTexture;
|
||||
|
||||
blitParams.srcY0 = 0;
|
||||
blitParams.srcY1 = min((s32)(srcY1*srcScaleY), (s32)pFilteredBuffer->m_pTexture->realHeight);
|
||||
blitParams.srcWidth = pBufferTexture->realWidth;
|
||||
|
|
Loading…
Reference in New Issue
Block a user