mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Fix RDRAMtoFrameBuffer::CopyFromRDRAM.
Fixed flicker in StarCraft64 logos.
This commit is contained in:
parent
d790380de0
commit
b9257e33b1
|
@ -1047,32 +1047,17 @@ void RDRAMtoFrameBuffer::CopyFromRDRAM( u32 _address, bool _bUseAlpha)
|
||||||
|
|
||||||
OGLVideo & ogl = video();
|
OGLVideo & ogl = video();
|
||||||
|
|
||||||
#if 0
|
|
||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
|
||||||
|
|
||||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO);
|
|
||||||
const GLuint attachment = GL_COLOR_ATTACHMENT0;
|
|
||||||
glReadBuffer(attachment);
|
|
||||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, pBuffer->m_FBO);
|
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, pBuffer->m_FBO);
|
||||||
glDrawBuffers(1, &attachment);
|
if (_bUseAlpha) {
|
||||||
glBlitFramebuffer(
|
CombinerInfo::get().setCombine(EncodeCombineMode(0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0));
|
||||||
0, 0, width, height,
|
glEnable(GL_BLEND);
|
||||||
0, 0, ogl.getWidth(), ogl.getHeight(),
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
GL_COLOR_BUFFER_BIT, GL_LINEAR
|
} else {
|
||||||
);
|
CombinerInfo::get().setCombine(EncodeCombineMode(0, 0, 0, TEXEL0, 0, 0, 0, 1, 0, 0, 0, TEXEL0, 0, 0, 0, 1));
|
||||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
glDisable(GL_BLEND);
|
||||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBufferList().getCurrent()->m_FBO);
|
}
|
||||||
#else
|
|
||||||
if (_bUseAlpha)
|
|
||||||
CombinerInfo::get().setCombine( EncodeCombineMode( 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0 ) );
|
|
||||||
else
|
|
||||||
CombinerInfo::get().setCombine( EncodeCombineMode( 0, 0, 0, TEXEL0, 0, 0, 0, 1, 0, 0, 0, TEXEL0, 0, 0, 0, 1 ) );
|
|
||||||
glEnable( GL_BLEND );
|
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
|
||||||
// glDisable( GL_ALPHA_TEST );
|
|
||||||
glDisable( GL_DEPTH_TEST );
|
glDisable( GL_DEPTH_TEST );
|
||||||
glDisable( GL_CULL_FACE );
|
glDisable( GL_CULL_FACE );
|
||||||
glDisable( GL_POLYGON_OFFSET_FILL );
|
|
||||||
const u32 gspChanged = gSP.changed & CHANGED_CPU_FB_WRITE;
|
const u32 gspChanged = gSP.changed & CHANGED_CPU_FB_WRITE;
|
||||||
gSP.changed = gDP.changed = 0;
|
gSP.changed = gDP.changed = 0;
|
||||||
|
|
||||||
|
@ -1086,9 +1071,9 @@ void RDRAMtoFrameBuffer::CopyFromRDRAM( u32 _address, bool _bUseAlpha)
|
||||||
|
|
||||||
OGLRender::TexturedRectParams params(0.0f, 0.0f, (float)width, (float)height, 0.0f, 0.0f, width - 1.0f, height - 1.0f, false);
|
OGLRender::TexturedRectParams params(0.0f, 0.0f, (float)width, (float)height, 0.0f, 0.0f, width - 1.0f, height - 1.0f, false);
|
||||||
ogl.getRender().drawTexturedRect(params);
|
ogl.getRender().drawTexturedRect(params);
|
||||||
gSP.changed |= gspChanged| CHANGED_TEXTURE | CHANGED_VIEWPORT;
|
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, frameBufferList().getCurrent()->m_FBO);
|
||||||
|
gSP.changed |= gspChanged | CHANGED_TEXTURE | CHANGED_VIEWPORT;
|
||||||
gDP.changed |= CHANGED_COMBINE;
|
gDP.changed |= CHANGED_COMBINE;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBuffer_CopyFromRDRAM( u32 address, bool bUseAlpha )
|
void FrameBuffer_CopyFromRDRAM( u32 address, bool bUseAlpha )
|
||||||
|
|
Loading…
Reference in New Issue
Block a user