Fix the framerate counter of the software graphic backend.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7363 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
sl1nk3.s 2011-03-16 23:57:13 +00:00
parent 9198e83ae1
commit aabb542d47
2 changed files with 23 additions and 8 deletions

View File

@ -85,7 +85,7 @@ namespace EfbCopy
if (bpmem.triggerEFBCopy.copy_to_xfb) if (bpmem.triggerEFBCopy.copy_to_xfb)
{ {
CopyToXfb(); CopyToXfb();
Core::Callback_VideoCopiedToXFB(false); Core::Callback_VideoCopiedToXFB(true);
swstats.frameCount++; swstats.frameCount++;
} }

View File

@ -43,7 +43,8 @@
namespace SW namespace SW
{ {
static bool fifoStateRun = false; static volatile bool fifoStateRun = false;
static volatile bool emuRunningState = false;
std::string VideoSoftware::GetName() std::string VideoSoftware::GetName()
@ -94,11 +95,12 @@ void VideoSoftware::DoState(PointerWrap&)
void VideoSoftware::RunLoop(bool enable) void VideoSoftware::RunLoop(bool enable)
{ {
//EmulatorState(true); emuRunningState = enable;
} }
void VideoSoftware::EmuStateChange(EMUSTATE_CHANGE newState) void VideoSoftware::EmuStateChange(EMUSTATE_CHANGE newState)
{ {
emuRunningState = (newState == EMUSTATE_CHANGE_PLAY) ? true : false;
} }
void VideoSoftware::Shutdown() void VideoSoftware::Shutdown()
@ -170,11 +172,24 @@ void VideoSoftware::Video_EnterLoop()
while (fifoStateRun) while (fifoStateRun)
{ {
g_video_backend->PeekMessages(); g_video_backend->PeekMessages();
if (!SWCommandProcessor::RunBuffer()) {
if (!SWCommandProcessor::RunBuffer())
{
Common::YieldCPU(); Common::YieldCPU();
} }
if (!emuRunningState)
{
while (!emuRunningState)
{
g_video_backend->PeekMessages();
Common::SleepCurrentThread(1);
} }
} }
}
}
void VideoSoftware::Video_ExitLoop() void VideoSoftware::Video_ExitLoop()
{ {