1
0

Fix VSYNC?

This commit is contained in:
otya128
2016-12-13 20:50:38 +09:00
parent ccc09093b0
commit 0d04bbfc58

View File

@@ -1091,7 +1091,7 @@ class PetitComputer
{
try
{
for(int i = 0; !quit && maincnt == oldmaincnt && !vsyncFrame && running; i++)
for(int i = 0; !quit /*&& maincnt == oldmaincnt */&& !vsyncFrame && running; i++)
{
//writefln("%04X:%s", vm.pc, vm.getCurrent);
running = vm.runStep();
@@ -1151,7 +1151,15 @@ class PetitComputer
} //while(elapse <= 1000 / 60);
if(vsyncFrame)
{
SDL_Delay(cast(uint)(vsyncFrame * frame));
//FIXME:VSYNC IS NOT WAIT
//A=MAINCNT:WAIT 50:A=MAINCNT-A->A=50
//A=MAINCNT:VSYNC 50:A=MAINCNT-A->A=0~50
auto endmaincnt = maincnt + vsyncFrame;
graphic.updateVM();
while (maincnt < endmaincnt)
{
SDL_Delay(cast(uint)(frame));
}
vsyncFrame = 0;
}
//maincnt = cast(int)((SDL_GetTicks() - startcnt) / frame);