Get render module compiling on 1.13
This commit is contained in:
@@ -3,8 +3,6 @@ package com.replaymod.render.hooks;
|
||||
|
||||
import com.replaymod.render.utils.JailingQueue;
|
||||
import net.minecraft.client.renderer.RegionRenderCacheBuilder;
|
||||
import net.minecraft.client.renderer.RenderGlobal;
|
||||
import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
|
||||
import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher;
|
||||
import net.minecraft.client.renderer.chunk.ChunkRenderWorker;
|
||||
import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
@@ -12,6 +10,14 @@ import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Iterator;
|
||||
|
||||
//#if MC>=11300
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.client.renderer.chunk.ChunkRenderTask;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.RenderGlobal;
|
||||
//$$ import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator;
|
||||
//#endif
|
||||
|
||||
//#if MC>=10904
|
||||
import java.util.concurrent.PriorityBlockingQueue;
|
||||
//#else
|
||||
@@ -22,14 +28,28 @@ import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
public class ChunkLoadingRenderGlobal {
|
||||
|
||||
private final RenderGlobal hooked;
|
||||
//#if MC>=11300
|
||||
private final WorldRenderer hooked;
|
||||
//#else
|
||||
//$$ private final RenderGlobal hooked;
|
||||
//#endif
|
||||
private ChunkRenderDispatcher renderDispatcher;
|
||||
private JailingQueue<ChunkCompileTaskGenerator> workerJailingQueue;
|
||||
//#if MC>=11300
|
||||
private JailingQueue<ChunkRenderTask> workerJailingQueue;
|
||||
//#else
|
||||
//$$ private JailingQueue<ChunkCompileTaskGenerator> workerJailingQueue;
|
||||
//#endif
|
||||
private CustomChunkRenderWorker renderWorker;
|
||||
private int frame;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public ChunkLoadingRenderGlobal(RenderGlobal renderGlobal) {
|
||||
public ChunkLoadingRenderGlobal(
|
||||
//#if MC>=11300
|
||||
WorldRenderer renderGlobal
|
||||
//#else
|
||||
//$$ RenderGlobal renderGlobal
|
||||
//#endif
|
||||
) {
|
||||
this.hooked = renderGlobal;
|
||||
|
||||
setup(renderGlobal.renderDispatcher);
|
||||
@@ -51,14 +71,22 @@ public class ChunkLoadingRenderGlobal {
|
||||
|
||||
int workerThreads = renderDispatcher.listThreadedWorkers.size();
|
||||
//#if MC>=10904
|
||||
PriorityBlockingQueue<ChunkCompileTaskGenerator> queueChunkUpdates = renderDispatcher.queueChunkUpdates;
|
||||
//#if MC>=11300
|
||||
PriorityBlockingQueue<ChunkRenderTask> queueChunkUpdates = renderDispatcher.queueChunkUpdates;
|
||||
//#else
|
||||
//$$ PriorityBlockingQueue<ChunkCompileTaskGenerator> queueChunkUpdates = renderDispatcher.queueChunkUpdates;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ BlockingQueue<ChunkCompileTaskGenerator> queueChunkUpdates = renderDispatcher.queueChunkUpdates;
|
||||
//#endif
|
||||
workerJailingQueue = new JailingQueue<>(queueChunkUpdates);
|
||||
renderDispatcher.queueChunkUpdates = workerJailingQueue;
|
||||
//#if MC>=10904
|
||||
ChunkCompileTaskGenerator element = new ChunkCompileTaskGenerator(null, null, 0);
|
||||
//#if MC>=11300
|
||||
ChunkRenderTask element = new ChunkRenderTask(null, null, 0);
|
||||
//#else
|
||||
//$$ ChunkCompileTaskGenerator element = new ChunkCompileTaskGenerator(null, null, 0);
|
||||
//#endif
|
||||
//#else
|
||||
//$$ ChunkCompileTaskGenerator element = new ChunkCompileTaskGenerator(null, null);
|
||||
//#endif
|
||||
@@ -75,7 +103,11 @@ public class ChunkLoadingRenderGlobal {
|
||||
renderDispatcher.queueChunkUpdates = queueChunkUpdates;
|
||||
|
||||
try {
|
||||
Field hookField = RenderGlobal.class.getField("replayModRender_hook");
|
||||
//#if MC>=11300
|
||||
Field hookField = WorldRenderer.class.getField("replayModRender_hook");
|
||||
//#else
|
||||
//$$ Field hookField = RenderGlobal.class.getField("replayModRender_hook");
|
||||
//#endif
|
||||
hookField.set(hooked, this);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
throw new Error(e);
|
||||
@@ -119,7 +151,11 @@ public class ChunkLoadingRenderGlobal {
|
||||
workerJailingQueue.freeAll();
|
||||
|
||||
try {
|
||||
Field hookField = RenderGlobal.class.getField("replayModRender_hook");
|
||||
//#if MC>=11300
|
||||
Field hookField = WorldRenderer.class.getField("replayModRender_hook");
|
||||
//#else
|
||||
//$$ Field hookField = RenderGlobal.class.getField("replayModRender_hook");
|
||||
//#endif
|
||||
hookField.set(hooked, null);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
throw new Error(e);
|
||||
@@ -139,7 +175,13 @@ public class ChunkLoadingRenderGlobal {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processTask(ChunkCompileTaskGenerator p_178474_1_) throws InterruptedException {
|
||||
protected void processTask(
|
||||
//#if MC>=11300
|
||||
ChunkRenderTask p_178474_1_
|
||||
//#else
|
||||
//$$ ChunkCompileTaskGenerator p_178474_1_
|
||||
//#endif
|
||||
) throws InterruptedException {
|
||||
super.processTask(p_178474_1_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.replaymod.render.hooks;
|
||||
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.render.RenderSettings;
|
||||
import com.replaymod.render.capturer.CaptureData;
|
||||
import com.replaymod.render.capturer.RenderInfo;
|
||||
@@ -8,8 +9,12 @@ import lombok.Getter;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
//#if MC>=10800
|
||||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
//#if MC>=11300
|
||||
import net.minecraftforge.fml.hooks.BasicEventHooks;
|
||||
//#else
|
||||
//$$ import net.minecraft.client.renderer.GlStateManager;
|
||||
//$$ import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import com.replaymod.core.versions.MCVer.GlStateManager;
|
||||
//$$ import cpw.mods.fml.common.FMLCommonHandler;
|
||||
@@ -18,7 +23,7 @@ import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import java.io.IOException;
|
||||
|
||||
public class EntityRendererHandler implements WorldRenderer {
|
||||
public final Minecraft mc = Minecraft.getMinecraft();
|
||||
public final Minecraft mc = MCVer.getMinecraft();
|
||||
|
||||
@Getter
|
||||
protected final RenderSettings settings;
|
||||
@@ -44,21 +49,33 @@ public class EntityRendererHandler implements WorldRenderer {
|
||||
}
|
||||
|
||||
public void renderWorld(float partialTicks, long finishTimeNano) {
|
||||
FMLCommonHandler.instance().onRenderTickStart(partialTicks);
|
||||
|
||||
mc.entityRenderer.updateLightmap(partialTicks);
|
||||
|
||||
GlStateManager.enableDepth();
|
||||
GlStateManager.enableAlpha();
|
||||
GlStateManager.alphaFunc(516, 0.5F);
|
||||
//#if MC>=11300
|
||||
BasicEventHooks.onRenderTickStart(partialTicks);
|
||||
//#else
|
||||
//$$ FMLCommonHandler.instance().onRenderTickStart(partialTicks);
|
||||
//#endif
|
||||
|
||||
//#if MC>=11300
|
||||
mc.entityRenderer.renderWorld(partialTicks, finishTimeNano);
|
||||
//#else
|
||||
//$$ mc.entityRenderer.updateLightmap(partialTicks);
|
||||
//$$
|
||||
//$$ GlStateManager.enableDepth();
|
||||
//$$ GlStateManager.enableAlpha();
|
||||
//$$ GlStateManager.alphaFunc(516, 0.5F);
|
||||
//$$
|
||||
//#if MC>=10800
|
||||
mc.entityRenderer.renderWorldPass(2, partialTicks, finishTimeNano);
|
||||
//$$ mc.entityRenderer.renderWorldPass(2, partialTicks, finishTimeNano);
|
||||
//#else
|
||||
//$$ mc.entityRenderer.renderWorld(partialTicks, finishTimeNano);
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
FMLCommonHandler.instance().onRenderTickEnd(partialTicks);
|
||||
//#if MC>=11300
|
||||
BasicEventHooks.onRenderTickEnd(partialTicks);
|
||||
//#else
|
||||
//$$ FMLCommonHandler.instance().onRenderTickEnd(partialTicks);
|
||||
//#endif
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user