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

Debugger fixes.

This commit is contained in:
Sergey Lipskiy 2019-11-28 19:11:31 +07:00
parent 9c4653a148
commit 558c465d02
2 changed files with 20 additions and 10 deletions

View File

@ -1190,7 +1190,7 @@ void Debugger::_findSelected()
}
}
void Debugger::_drawDebugInfo(FrameBuffer * _pBuffer)
void Debugger::_drawDebugInfo()
{
DisplayWindow & wnd = dwnd();
m_triSel = m_triangles.begin();
@ -1205,7 +1205,19 @@ void Debugger::_drawDebugInfo(FrameBuffer * _pBuffer)
if (i.frameBufferAddress != gDP.depthImageAddress)
m_fbAddrs.insert(i.frameBufferAddress);
}
m_curFBAddr = m_fbAddrs.find(_pBuffer->m_startAddress);
FrameBuffer * pBuffer = frameBufferList().getCurrent();
if (pBuffer == nullptr)
return;
m_curFBAddr = m_fbAddrs.find(pBuffer->m_startAddress);
if (m_curFBAddr == m_fbAddrs.end()) {
for (m_curFBAddr = m_fbAddrs.begin(); m_curFBAddr != m_fbAddrs.end(); ++m_curFBAddr) {
pBuffer = frameBufferList().findBuffer(*m_curFBAddr);
if (pBuffer != nullptr && pBuffer->m_isMainBuffer && !pBuffer->m_isDepthBuffer)
break;
}
}
if (m_curFBAddr == m_fbAddrs.end())
return;
const u32 winWidth = wnd.getWidth();
const u32 winHeight = wnd.getHeight();
@ -1280,19 +1292,17 @@ void Debugger::_drawDebugInfo(FrameBuffer * _pBuffer)
void Debugger::draw()
{
FrameBuffer *pBuffer = frameBufferList().getCurrent();
if (pBuffer == nullptr)
return;
if (m_triangles.empty()) {
_drawFrameBuffer(pBuffer);
_drawFrameBuffer(frameBufferList().getCurrent());
dwnd().swapBuffers();
} else {
_drawDebugInfo(pBuffer);
_drawDebugInfo();
}
gfxContext.bindFramebuffer(bufferTarget::READ_FRAMEBUFFER, ObjectHandle::defaultFramebuffer);
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, pBuffer->m_FBO);
FrameBuffer *pBuffer = frameBufferList().getCurrent();
if (pBuffer != nullptr)
gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, pBuffer->m_FBO);
gDP.changed |= CHANGED_SCISSOR;
}

View File

@ -140,7 +140,7 @@ private:
void _addTrianglesByElements(const graphics::Context::DrawTriangleParameters & _params);
void _debugKeys();
void _drawFrameBuffer(FrameBuffer * _pBuffer);
void _drawDebugInfo(FrameBuffer * _pBuffer);
void _drawDebugInfo();
void _setTextureCombiner();
void _setLineCombiner();
void _drawTextureFrame(const RectVertex * _rect);