Add Optifine compatibility to rendering by disabling their separate chunk loading queue

Add compatibility to shaders that utilize the Shadow Map by manually setting displayListEntitiesDirty to false
Call Shaders.beginRender in an Event Handler to avoid calling all of EntityRenderer#renderWorld
This commit is contained in:
CrushedPixel
2016-11-09 04:28:56 +01:00
committed by johni0702
parent 3a28c5ba6f
commit e5eb982b98
10 changed files with 270 additions and 47 deletions

View File

@@ -6,7 +6,6 @@ import com.replaymod.render.capturer.WorldRenderer;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.FMLCommonHandler;
import java.io.IOException;
@@ -36,18 +35,13 @@ public class EntityRendererHandler implements WorldRenderer {
public void renderWorld(float partialTicks, long finishTimeNano) {
FMLCommonHandler.instance().onRenderTickStart(partialTicks);
// the Shaders Mod does an initializing call in the EntityRenderer#renderWorld method
if (FMLClientHandler.instance().hasOptifine()) {
mc.entityRenderer.renderWorld(partialTicks, finishTimeNano);
} else {
mc.entityRenderer.updateLightmap(partialTicks);
mc.entityRenderer.updateLightmap(partialTicks);
GlStateManager.enableDepth();
GlStateManager.enableAlpha();
GlStateManager.alphaFunc(516, 0.5F);
GlStateManager.enableDepth();
GlStateManager.enableAlpha();
GlStateManager.alphaFunc(516, 0.5F);
mc.entityRenderer.renderWorldPass(2, partialTicks, finishTimeNano);
}
mc.entityRenderer.renderWorldPass(2, partialTicks, finishTimeNano);
FMLCommonHandler.instance().onRenderTickEnd(partialTicks);
}