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 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); //writefln("%04X:%s", vm.pc, vm.getCurrent);
running = vm.runStep(); running = vm.runStep();
@@ -1151,7 +1151,15 @@ class PetitComputer
} //while(elapse <= 1000 / 60); } //while(elapse <= 1000 / 60);
if(vsyncFrame) 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; vsyncFrame = 0;
} }
//maincnt = cast(int)((SDL_GetTicks() - startcnt) / frame); //maincnt = cast(int)((SDL_GetTicks() - startcnt) / frame);