From 148349a00aa9348cfd51580527d09999815ffbe6 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 5 Dec 2015 21:46:07 +0600 Subject: [PATCH] Fix FrameBufferToRDRAM::_prepareCopy Wrong buffer could be used when several buffers copied per frame --- src/FrameBuffer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index 31a645be..1162bcee 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -1045,13 +1045,14 @@ void FrameBufferToRDRAM::Destroy() { bool FrameBufferToRDRAM::_prepareCopy(u32 _address) { const u32 curFrame = video().getBuffersSwapCount(); - if (m_frameCount == curFrame) + FrameBuffer * pBuffer = frameBufferList().findBuffer(_address); + if (m_frameCount == curFrame && pBuffer == m_pCurFrameBuffer) return true; if (VI.width == 0 || frameBufferList().getCurrent() == NULL) return false; - m_pCurFrameBuffer = frameBufferList().findBuffer(_address); + m_pCurFrameBuffer = pBuffer; if (m_pCurFrameBuffer == NULL || m_pCurFrameBuffer->m_isOBScreen) return false;