mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Fix TexrectDrawer when frame buffer emulation disabled.
This commit is contained in:
parent
5ccc40423f
commit
ed21ec774b
|
@ -518,6 +518,8 @@ void FrameBufferList::setCurrentDrawBuffer() const
|
||||||
{
|
{
|
||||||
if (m_pCurrent != nullptr)
|
if (m_pCurrent != nullptr)
|
||||||
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pCurrent->m_FBO);
|
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pCurrent->m_FBO);
|
||||||
|
else if (!m_list.empty())
|
||||||
|
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_list.back().m_FBO);
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameBuffer * FrameBufferList::findBuffer(u32 _startAddress)
|
FrameBuffer * FrameBufferList::findBuffer(u32 _startAddress)
|
||||||
|
|
|
@ -104,6 +104,14 @@ void TexrectDrawer::_setViewport() const
|
||||||
gfxContext.setViewport(0, 0, bufferWidth, VI_GetMaxBufferHeight(bufferWidth));
|
gfxContext.setViewport(0, 0, bufferWidth, VI_GetMaxBufferHeight(bufferWidth));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TexrectDrawer::_setDrawBuffer()
|
||||||
|
{
|
||||||
|
if (m_pBuffer != nullptr)
|
||||||
|
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pBuffer->m_FBO);
|
||||||
|
else
|
||||||
|
frameBufferList().setCurrentDrawBuffer();
|
||||||
|
}
|
||||||
|
|
||||||
void TexrectDrawer::add()
|
void TexrectDrawer::add()
|
||||||
{
|
{
|
||||||
DisplayWindow & wnd = dwnd();
|
DisplayWindow & wnd = dwnd();
|
||||||
|
@ -278,7 +286,7 @@ bool TexrectDrawer::draw()
|
||||||
rect[3].t0 = t1;
|
rect[3].t0 = t1;
|
||||||
|
|
||||||
drawer.updateScissor(m_pBuffer);
|
drawer.updateScissor(m_pBuffer);
|
||||||
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pBuffer != nullptr ? m_pBuffer->m_FBO : ObjectHandle::null);
|
_setDrawBuffer();
|
||||||
|
|
||||||
Context::DrawRectParameters rectParams;
|
Context::DrawRectParameters rectParams;
|
||||||
rectParams.mode = drawmode::TRIANGLE_STRIP;
|
rectParams.mode = drawmode::TRIANGLE_STRIP;
|
||||||
|
@ -313,7 +321,7 @@ bool TexrectDrawer::draw()
|
||||||
gfxContext.enable(enable::SCISSOR_TEST, true);
|
gfxContext.enable(enable::SCISSOR_TEST, true);
|
||||||
|
|
||||||
m_pBuffer = frameBufferList().getCurrent();
|
m_pBuffer = frameBufferList().getCurrent();
|
||||||
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pBuffer != nullptr ? m_pBuffer->m_FBO : ObjectHandle::null);
|
_setDrawBuffer();
|
||||||
|
|
||||||
m_numRects = 0;
|
m_numRects = 0;
|
||||||
m_vecRectCoords.clear();
|
m_vecRectCoords.clear();
|
||||||
|
|
|
@ -24,6 +24,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _setViewport() const;
|
void _setViewport() const;
|
||||||
|
void _setDrawBuffer();
|
||||||
|
|
||||||
u32 m_numRects;
|
u32 m_numRects;
|
||||||
u64 m_otherMode;
|
u64 m_otherMode;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user