mirror of
https://github.com/GTNewHorizons/Angelica.git
synced 2026-11-12 16:37:49 +00:00
Set defaults once per TE pass instead of once per TE (#1213)
This commit is contained in:
1 parent
38641268ae
commit
085ec79c21
2 files changed
+18
-8
No files matched your search
@@ -28,7 +28,6 @@ import me.jellysquid.mods.sodium.client.render.pipeline.context.ChunkRenderCache
|
||||
import me.jellysquid.mods.sodium.client.util.math.FrustumExtended;
|
||||
import me.jellysquid.mods.sodium.common.util.ListUtil;
|
||||
import net.coderbot.iris.block_rendering.BlockRenderingSettings;
|
||||
import net.coderbot.iris.gl.shader.ProgramCreator;
|
||||
import net.coderbot.iris.layer.GbufferPrograms;
|
||||
import net.coderbot.iris.pipeline.ShadowRenderer;
|
||||
import net.coderbot.iris.shadows.ShadowRenderingState;
|
||||
@@ -52,7 +51,6 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import org.joml.Vector3d;
|
||||
import org.lwjgl.opengl.GL20;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -361,10 +359,6 @@ public class SodiumWorldRenderer {
|
||||
if(Iris.enabled) {
|
||||
final Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
CapturedRenderingState.INSTANCE.setCurrentBlockEntity(Block.getIdFromBlock(block));
|
||||
GL20.glVertexAttrib2s(ProgramCreator.MC_ENTITY, (short)-1, (short)-1);
|
||||
GL20.glVertexAttrib2f(ProgramCreator.MC_MID_TEX_COORD, 0.5f, 0.5f);
|
||||
GL20.glVertexAttrib4f(ProgramCreator.AT_TANGENT, 1.0f, 0.0f, 0.0f, 1.0f);
|
||||
GbufferPrograms.beginBlockEntities();
|
||||
}
|
||||
TileEntityRendererDispatcher.instance.renderTileEntity(tileEntity, partialTicks);
|
||||
|
||||
@@ -378,12 +372,16 @@ public class SodiumWorldRenderer {
|
||||
finally {
|
||||
if(Iris.enabled) {
|
||||
CapturedRenderingState.INSTANCE.setCurrentBlockEntity(-1);
|
||||
GbufferPrograms.endBlockEntities();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void renderTileEntities(EntityLivingBase entity, ICamera camera, float partialTicks) {
|
||||
if (Iris.enabled) {
|
||||
GbufferPrograms.beginBlockEntities();
|
||||
GbufferPrograms.setBlockEntityDefaults();
|
||||
}
|
||||
|
||||
final int pass = MinecraftForgeClient.getRenderPass();
|
||||
for (TileEntity tileEntity : this.chunkRenderManager.getVisibleTileEntities()) {
|
||||
renderTE(tileEntity, pass, partialTicks);
|
||||
@@ -392,6 +390,10 @@ public class SodiumWorldRenderer {
|
||||
for (TileEntity tileEntity : this.globalTileEntities) {
|
||||
renderTE(tileEntity, pass, partialTicks);
|
||||
}
|
||||
|
||||
if (Iris.enabled) {
|
||||
GbufferPrograms.endBlockEntities();
|
||||
}
|
||||
}
|
||||
|
||||
public void onChunkRenderUpdated(int x, int y, int z, ChunkRenderData meshBefore, ChunkRenderData meshAfter) {
|
||||
|
||||
@@ -2,9 +2,11 @@ package net.coderbot.iris.layer;
|
||||
|
||||
import net.coderbot.iris.Iris;
|
||||
import net.coderbot.iris.gbuffer_overrides.matching.SpecialCondition;
|
||||
import net.coderbot.iris.gl.shader.ProgramCreator;
|
||||
import net.coderbot.iris.gl.state.StateUpdateNotifiers;
|
||||
import net.coderbot.iris.pipeline.WorldRenderingPhase;
|
||||
import net.coderbot.iris.pipeline.WorldRenderingPipeline;
|
||||
import org.lwjgl.opengl.GL20;
|
||||
|
||||
public class GbufferPrograms {
|
||||
private static boolean entities;
|
||||
@@ -64,6 +66,12 @@ public class GbufferPrograms {
|
||||
blockEntities = false;
|
||||
}
|
||||
|
||||
public static void setBlockEntityDefaults() {
|
||||
GL20.glVertexAttrib2s(ProgramCreator.MC_ENTITY, (short)-1, (short)-1);
|
||||
GL20.glVertexAttrib2f(ProgramCreator.MC_MID_TEX_COORD, 0.5f, 0.5f);
|
||||
GL20.glVertexAttrib4f(ProgramCreator.AT_TANGENT, 1.0f, 0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
public static WorldRenderingPhase getCurrentPhase() {
|
||||
final WorldRenderingPipeline pipeline = Iris.getPipelineManager().getPipelineNullable();
|
||||
|
||||
|
||||
Reference in new issue
Block a user