Kick off render loop from client tick
This commit is contained in:
+10
@@ -15,6 +15,7 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.Screenshot;
|
||||
import net.minecraft.client.gui.GuiGraphicsExtractor;
|
||||
@@ -35,6 +36,7 @@ public final class RenderCatalogClient implements ClientModInitializer {
|
||||
private Path outputDir;
|
||||
private int currentJobIndex;
|
||||
private RenderScreen renderScreen;
|
||||
private boolean renderStarted;
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
@@ -64,6 +66,14 @@ public final class RenderCatalogClient implements ClientModInitializer {
|
||||
client.setScreenAndShow(renderScreen);
|
||||
});
|
||||
|
||||
ClientTickEvents.END_CLIENT_TICK.register(tickedClient -> {
|
||||
if (!renderStarted && tickedClient.screen == renderScreen) {
|
||||
renderStarted = true;
|
||||
System.out.println("[renderer] starting render loop from client tick");
|
||||
renderCurrentJob(tickedClient, renderScreen);
|
||||
}
|
||||
});
|
||||
|
||||
Thread activationWatchdog = new Thread(() -> {
|
||||
try {
|
||||
Thread.sleep(SCREEN_ACTIVATION_TIMEOUT_MILLIS);
|
||||
|
||||
Reference in New Issue
Block a user