fix up framestep too

This commit is contained in:
Arisotura 2024-06-14 23:04:12 +02:00
parent 0cac63811a
commit 32a5aa07ba
2 changed files with 12 additions and 5 deletions

View File

@ -461,10 +461,10 @@ void EmuThread::sendMessage(Message msg)
msgMutex.unlock();
}
void EmuThread::waitMessage()
void EmuThread::waitMessage(int num)
{
if (QThread::currentThread() == this) return;
msgSemaphore.acquire();
msgSemaphore.acquire(num);
}
void EmuThread::waitAllMessages()
@ -537,6 +537,10 @@ void EmuThread::handleMessages()
emit windowEmuStop();
break;
case msg_EmuFrameStep:
emuStatus = emuStatus_FrameStep;
break;
case msg_InitGL:
emuInstance->initOpenGL();
useOpenGL = true;
@ -610,8 +614,10 @@ void EmuThread::emuExit()
void EmuThread::emuFrameStep()
{
//if (emuPauseStack < emuPauseStackPauseThreshold) emit windowEmuPause();
emuStatus = emuStatus_FrameStep;
if (emuPauseStack < emuPauseStackPauseThreshold)
sendMessage(msg_EmuPause);
sendMessage(msg_EmuFrameStep);
waitAllMessages();
}
bool EmuThread::emuIsRunning()

View File

@ -63,6 +63,7 @@ public:
msg_EmuPause,
msg_EmuUnpause,
msg_EmuStop,
msg_EmuFrameStep,
msg_InitGL,
msg_DeInitGL,
@ -78,7 +79,7 @@ public:
};
void sendMessage(Message msg);
void waitMessage();
void waitMessage(int num = 1);
void waitAllMessages();
void sendMessage(MessageType type)