diff --git a/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java b/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java index 7531d6af93..69970116fd 100644 --- a/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java +++ b/forge/forge_client/src/net/minecraft/src/forge/ForgeHooksClient.java @@ -30,7 +30,16 @@ public class ForgeHooksClient { return false; } - static LinkedList highlightHandlers = new LinkedList(); + public static void onRenderWorldLast(RenderGlobal rg, float f) { + for (IRenderWorldLastHandler handler : renderWorldLastHandlers) { + handler.onRenderWorldLast(rg,f); + } + } + + static LinkedList highlightHandlers = + new LinkedList(); + static LinkedList renderWorldLastHandlers = + new LinkedList(); public static boolean canRenderInPass(Block block, int pass) { if(block instanceof IMultipassRender) { diff --git a/forge/forge_client/src/net/minecraft/src/forge/IRenderWorldLastHandler.java b/forge/forge_client/src/net/minecraft/src/forge/IRenderWorldLastHandler.java new file mode 100644 index 0000000000..53160895f3 --- /dev/null +++ b/forge/forge_client/src/net/minecraft/src/forge/IRenderWorldLastHandler.java @@ -0,0 +1,17 @@ +/* + * This software is provided under the terms of the Minecraft Forge Public + * License v1.0. + */ +package net.minecraft.src.forge; + +import net.minecraft.src.RenderGlobal; + +public interface IRenderWorldLastHandler { + /** Called after rendering all the 3D data of the world. This is + * called before the user's tool is rendered, but otherwise after all + * 3D content. It is called twice in anaglyph mode. This is intended + * for rendering visual effect overlays into the world. + */ + void onRenderWorldLast(RenderGlobal rg, float f); +} + diff --git a/forge/patches/minecraft/net/minecraft/src/EntityRenderer.java.patch b/forge/patches/minecraft/net/minecraft/src/EntityRenderer.java.patch index c72429ad2b..d330267270 100644 --- a/forge/patches/minecraft/net/minecraft/src/EntityRenderer.java.patch +++ b/forge/patches/minecraft/net/minecraft/src/EntityRenderer.java.patch @@ -34,3 +34,12 @@ GL11.glEnable(3008 /*GL_ALPHA_TEST*/); } Profiler.endStartSection("weather"); +@@ -988,6 +993,8 @@ + setupFog(1, f); + GL11.glPopMatrix(); + } ++ Profiler.endStartSection("fhooks"); ++ ForgeHooksClient.onRenderWorldLast(renderglobal,f); + Profiler.endStartSection("hand"); + if(cameraZoom == 1.0D) + {