Java tutorial
/** * This class was created by <Vazkii>. It's distributed as * part of the Botania Mod. Get the Source Code in github: * https://github.com/Vazkii/Botania * * Botania is Open Source and distributed under a * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) * * File Created @ [Jul 2, 2014, 12:12:45 AM (GMT)] */ package vazkii.botania.client.fx; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.profiler.Profiler; public final class ParticleRenderDispatcher { public static int wispFxCount = 0; public static int depthIgnoringWispFxCount = 0; public static int sparkleFxCount = 0; public static int fakeSparkleFxCount = 0; public static int lightningCount = 0; // Called from LightningHandler.onRenderWorldLast since that was // already registered. /shrug public static void dispatch() { Tessellator tessellator = Tessellator.getInstance(); Profiler profiler = Minecraft.getMinecraft().mcProfiler; GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); GlStateManager.depthMask(false); GlStateManager.enableBlend(); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.003921569F); GlStateManager.disableLighting(); profiler.startSection("sparkle"); FXSparkle.dispatchQueuedRenders(tessellator); profiler.endStartSection("wisp"); FXWisp.dispatchQueuedRenders(tessellator); profiler.endSection(); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); GlStateManager.disableBlend(); GlStateManager.depthMask(true); GL11.glPopAttrib(); } }