1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

Force resolve multisampled buffer in FrameBufferList::renderBuffer.

Fixed Mario Party 3 - Missing characters and textbox in intro #901
This commit is contained in:
Sergey Lipskiy 2016-03-19 20:18:39 +06:00
parent 325082b2bb
commit ea62a778fa
2 changed files with 4 additions and 4 deletions

View File

@ -391,10 +391,10 @@ bool FrameBuffer::isValid() const
return true; // No data to decide
}
void FrameBuffer::resolveMultisampledTexture()
void FrameBuffer::resolveMultisampledTexture(bool _bForce)
{
#ifdef GL_MULTISAMPLING_SUPPORT
if (m_resolved)
if (m_resolved && !_bForce)
return;
glScissor(0, 0, m_pTexture->realWidth, m_pTexture->realHeight);
glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO);
@ -850,7 +850,7 @@ void FrameBufferList::renderBuffer(u32 _address)
if (X0 > 0 || dstPartHeight > 0 ||
(srcCoord[2] - srcCoord[0]) != (dstCoord[2] - dstCoord[0]) ||
(srcCoord[3] - srcCoord[1]) != (dstCoord[3] - dstCoord[1])) {
pBuffer->resolveMultisampledTexture();
pBuffer->resolveMultisampledTexture(true);
glBindFramebuffer(GL_READ_FRAMEBUFFER, pBuffer->m_resolveFBO);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
} else {

View File

@ -18,7 +18,7 @@ struct FrameBuffer
~FrameBuffer();
void init(u32 _address, u32 _endAddress, u16 _format, u16 _size, u16 _width, u16 _height, bool _cfb);
void reinit(u16 _height);
void resolveMultisampledTexture();
void resolveMultisampledTexture(bool _bForce = false);
CachedTexture * getTexture();
void copyRdram();
bool isValid() const;