1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-07 03:13:49 +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 return true; // No data to decide
} }
void FrameBuffer::resolveMultisampledTexture() void FrameBuffer::resolveMultisampledTexture(bool _bForce)
{ {
#ifdef GL_MULTISAMPLING_SUPPORT #ifdef GL_MULTISAMPLING_SUPPORT
if (m_resolved) if (m_resolved && !_bForce)
return; return;
glScissor(0, 0, m_pTexture->realWidth, m_pTexture->realHeight); glScissor(0, 0, m_pTexture->realWidth, m_pTexture->realHeight);
glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO); glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO);
@ -850,7 +850,7 @@ void FrameBufferList::renderBuffer(u32 _address)
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(); pBuffer->resolveMultisampledTexture(true);
glBindFramebuffer(GL_READ_FRAMEBUFFER, pBuffer->m_resolveFBO); glBindFramebuffer(GL_READ_FRAMEBUFFER, pBuffer->m_resolveFBO);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
} else { } else {

View File

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