Start render loop after screen open

This commit is contained in:
2026-08-11 00:25:42 +01:00
parent ee7848f96a
commit 217b780ee0
@@ -63,34 +63,12 @@ public final class RenderCatalogClient implements ClientModInitializer {
client.execute(() -> { client.execute(() -> {
System.out.println("[renderer] opening render screen"); System.out.println("[renderer] opening render screen");
client.setScreenAndShow(renderScreen); client.setScreenAndShow(renderScreen);
client.execute(() -> {
System.out.println("[renderer] starting render loop after screen open");
renderCurrentJob(client, renderScreen);
});
}); });
Thread renderStarter = new Thread(() -> {
long deadline = System.currentTimeMillis() + SCREEN_ACTIVATION_TIMEOUT_MILLIS;
while (System.currentTimeMillis() < deadline) {
if (renderScreen.activated) {
client.execute(() -> {
System.out.println("[renderer] starting render loop after screen activation");
renderCurrentJob(client, renderScreen);
});
return;
}
try {
Thread.sleep(100L);
} catch (InterruptedException exception) {
Thread.currentThread().interrupt();
return;
}
}
System.err.println("[renderer] render screen never activated within " + SCREEN_ACTIVATION_TIMEOUT_MILLIS + "ms");
Runtime.getRuntime().halt(1);
}, "renderer-startup-watchdog");
renderStarter.setDaemon(true);
renderStarter.start();
Thread activationWatchdog = new Thread(() -> { Thread activationWatchdog = new Thread(() -> {
try { try {
Thread.sleep(SCREEN_ACTIVATION_TIMEOUT_MILLIS); Thread.sleep(SCREEN_ACTIVATION_TIMEOUT_MILLIS);