mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Correct ColorBufferToRDRAM::_prepareCopy
Code cleanup.
This commit is contained in:
parent
32ba7bd182
commit
184ff8f017
|
@ -113,7 +113,6 @@ void ColorBufferToRDRAM::_initFBTexture(void)
|
||||||
assert(!gfxContext.isFramebufferError());
|
assert(!gfxContext.isFramebufferError());
|
||||||
|
|
||||||
gfxContext.bindFramebuffer(graphics::bufferTarget::DRAW_FRAMEBUFFER, graphics::ObjectHandle());
|
gfxContext.bindFramebuffer(graphics::bufferTarget::DRAW_FRAMEBUFFER, graphics::ObjectHandle());
|
||||||
// glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
|
||||||
|
|
||||||
m_bufferReader.reset(gfxContext.createColorBufferReader(m_pTexture));
|
m_bufferReader.reset(gfxContext.createColorBufferReader(m_pTexture));
|
||||||
}
|
}
|
||||||
|
@ -173,18 +172,12 @@ bool ColorBufferToRDRAM::_prepareCopy(u32 _startAddress)
|
||||||
|
|
||||||
if (config.video.multisampling != 0) {
|
if (config.video.multisampling != 0) {
|
||||||
m_pCurFrameBuffer->resolveMultisampledTexture();
|
m_pCurFrameBuffer->resolveMultisampledTexture();
|
||||||
//glBindFramebuffer(GL_READ_FRAMEBUFFER, m_pCurFrameBuffer->m_resolveFBO);
|
readBuffer = m_pCurFrameBuffer->m_resolveFBO;
|
||||||
readBuffer = ObjectHandle(m_pCurFrameBuffer->m_resolveFBO);
|
|
||||||
} else {
|
} else {
|
||||||
// glBindFramebuffer(GL_READ_FRAMEBUFFER, m_pCurFrameBuffer->m_FBO);
|
readBuffer = m_pCurFrameBuffer->m_FBO;
|
||||||
readBuffer = ObjectHandle(m_pCurFrameBuffer->m_FBO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (m_pCurFrameBuffer->m_scaleX != 1.0f || m_pCurFrameBuffer->m_scaleY != 1.0f) {
|
if (m_pCurFrameBuffer->m_scaleX != 1.0f || m_pCurFrameBuffer->m_scaleY != 1.0f) {
|
||||||
// glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO);
|
|
||||||
ObjectHandle drawBuffer(m_FBO);
|
|
||||||
|
|
||||||
u32 x0 = 0;
|
u32 x0 = 0;
|
||||||
u32 width, height;
|
u32 width, height;
|
||||||
if (config.frameBufferEmulation.nativeResFactor == 0) {
|
if (config.frameBufferEmulation.nativeResFactor == 0) {
|
||||||
|
@ -195,13 +188,12 @@ bool ColorBufferToRDRAM::_prepareCopy(u32 _startAddress)
|
||||||
width = static_cast<u32>(screenWidth*wnd.getAdjustScale());
|
width = static_cast<u32>(screenWidth*wnd.getAdjustScale());
|
||||||
x0 = (screenWidth - width) / 2;
|
x0 = (screenWidth - width) / 2;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
width = m_pCurFrameBuffer->m_pTexture->realWidth;
|
width = m_pCurFrameBuffer->m_pTexture->realWidth;
|
||||||
height = m_pCurFrameBuffer->m_pTexture->realHeight;
|
height = m_pCurFrameBuffer->m_pTexture->realHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
CachedTexture * pInputTexture = frameBufferList().getCurrent()->m_pTexture;
|
CachedTexture * pInputTexture = m_pCurFrameBuffer->m_pTexture;
|
||||||
GraphicsDrawer::BlitOrCopyRectParams blitParams;
|
GraphicsDrawer::BlitOrCopyRectParams blitParams;
|
||||||
blitParams.srcX0 = x0;
|
blitParams.srcX0 = x0;
|
||||||
blitParams.srcY0 = 0;
|
blitParams.srcY0 = 0;
|
||||||
|
@ -219,12 +211,11 @@ bool ColorBufferToRDRAM::_prepareCopy(u32 _startAddress)
|
||||||
blitParams.tex[0] = pInputTexture;
|
blitParams.tex[0] = pInputTexture;
|
||||||
blitParams.combiner = CombinerInfo::get().getTexrectCopyProgram();
|
blitParams.combiner = CombinerInfo::get().getTexrectCopyProgram();
|
||||||
blitParams.readBuffer = readBuffer;
|
blitParams.readBuffer = readBuffer;
|
||||||
blitParams.drawBuffer = drawBuffer;
|
blitParams.drawBuffer = m_FBO;
|
||||||
blitParams.mask = blitMask::COLOR_BUFFER;
|
blitParams.mask = blitMask::COLOR_BUFFER;
|
||||||
wnd.getDrawer().blitOrCopyTexturedRect(blitParams);
|
wnd.getDrawer().blitOrCopyTexturedRect(blitParams);
|
||||||
|
|
||||||
gfxContext.bindFramebuffer(bufferTarget::READ_FRAMEBUFFER, ObjectHandle(m_FBO));
|
gfxContext.bindFramebuffer(bufferTarget::READ_FRAMEBUFFER, m_FBO);
|
||||||
// glBindFramebuffer(GL_READ_FRAMEBUFFER, m_FBO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_frameCount = curFrame;
|
m_frameCount = curFrame;
|
||||||
|
@ -326,29 +317,6 @@ ColorBufferToRDRAM & ColorBufferToRDRAM::get()
|
||||||
{
|
{
|
||||||
static ColorBufferToRDRAM cbCopy;
|
static ColorBufferToRDRAM cbCopy;
|
||||||
return cbCopy;
|
return cbCopy;
|
||||||
|
|
||||||
/*
|
|
||||||
#ifndef GLES2
|
|
||||||
|
|
||||||
static bool supportsBufferStorage = OGLVideo::isExtensionSupported("GL_EXT_buffer_storage") ||
|
|
||||||
OGLVideo::isExtensionSupported("GL_ARB_buffer_storage");
|
|
||||||
|
|
||||||
if (supportsBufferStorage) {
|
|
||||||
static ColorBufferToRDRAM_BufferStorageExt cbCopy;
|
|
||||||
return cbCopy;
|
|
||||||
} else {
|
|
||||||
static ColorBufferToRDRAM_GL cbCopy;
|
|
||||||
return cbCopy;
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined(ANDROID) && defined (GLES2)
|
|
||||||
static ColorBufferToRDRAM_GLES cbCopy;
|
|
||||||
return cbCopy;
|
|
||||||
#else
|
|
||||||
static ColorBufferToRDRAMStub cbCopy;
|
|
||||||
return cbCopy;
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void copyWhiteToRDRAM(FrameBuffer * _pBuffer)
|
void copyWhiteToRDRAM(FrameBuffer * _pBuffer)
|
||||||
|
|
|
@ -56,7 +56,7 @@ u8 * ColorBufferReaderWithBufferStorage::readPixels(s32 _x0, s32 _y0, u32 _width
|
||||||
colorFormatBytes = GLenum(fbTexFormat.monochromeFormatBytes);
|
colorFormatBytes = GLenum(fbTexFormat.monochromeFormatBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
glBindBuffer(GL_PIXEL_PACK_BUFFER, m_PBO[m_curIndex]);
|
m_bindBuffer->bind(Parameter(GL_PIXEL_PACK_BUFFER), ObjectHandle(m_PBO[m_curIndex]));
|
||||||
glReadPixels(_x0, _y0, m_pTexture->realWidth, _height, colorFormat, colorType, 0);
|
glReadPixels(_x0, _y0, m_pTexture->realWidth, _height, colorFormat, colorType, 0);
|
||||||
|
|
||||||
//Setup a fence sync object so that we know when glReadPixels completes
|
//Setup a fence sync object so that we know when glReadPixels completes
|
||||||
|
|
Loading…
Reference in New Issue
Block a user