Fixed #8864
This commit is contained in:
@@ -27,7 +27,7 @@ import static mindustry.Vars.*;
|
|||||||
public abstract class ClientLauncher extends ApplicationCore implements Platform{
|
public abstract class ClientLauncher extends ApplicationCore implements Platform{
|
||||||
private static final int loadingFPS = 20;
|
private static final int loadingFPS = 20;
|
||||||
|
|
||||||
private long lastTime;
|
private long nextFrame;
|
||||||
private long beginTime;
|
private long beginTime;
|
||||||
private boolean finished = false;
|
private boolean finished = false;
|
||||||
private LoadRenderer loader;
|
private LoadRenderer loader;
|
||||||
@@ -199,6 +199,13 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(){
|
public void update(){
|
||||||
|
int targetfps = Core.settings.getInt("fpscap", 120);
|
||||||
|
boolean limitFps = targetfps > 0 && targetfps <= 240;
|
||||||
|
|
||||||
|
if(limitFps){
|
||||||
|
nextFrame += (1000 * 1000000) / targetfps;
|
||||||
|
}
|
||||||
|
|
||||||
if(!finished){
|
if(!finished){
|
||||||
if(loader != null){
|
if(loader != null){
|
||||||
loader.draw();
|
loader.draw();
|
||||||
@@ -230,17 +237,13 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
asyncCore.end();
|
asyncCore.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
int targetfps = Core.settings.getInt("fpscap", 120);
|
if(limitFps){
|
||||||
|
long current = Time.nanos();
|
||||||
if(targetfps > 0 && targetfps <= 240){
|
if(nextFrame > current){
|
||||||
long target = (1000 * 1000000) / targetfps; //target in nanos
|
long toSleep = nextFrame - current;
|
||||||
long elapsed = Time.timeSinceNanos(lastTime);
|
Threads.sleep(toSleep / 1000000, (int)(toSleep % 1000000));
|
||||||
if(elapsed < target){
|
|
||||||
Threads.sleep((target - elapsed) / 1000000, (int)((target - elapsed) % 1000000));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lastTime = Time.nanos();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -251,6 +254,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(){
|
public void init(){
|
||||||
|
nextFrame = Time.nanos();
|
||||||
setup();
|
setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -25,4 +25,4 @@ org.gradle.caching=true
|
|||||||
#used for slow jitpack builds; TODO see if this actually works
|
#used for slow jitpack builds; TODO see if this actually works
|
||||||
org.gradle.internal.http.socketTimeout=100000
|
org.gradle.internal.http.socketTimeout=100000
|
||||||
org.gradle.internal.http.connectionTimeout=100000
|
org.gradle.internal.http.connectionTimeout=100000
|
||||||
archash=a88585a22d
|
archash=4be3d22cf6
|
||||||
|
|||||||
Reference in New Issue
Block a user