Skip to content

Commit

Permalink
working on #12
Browse files Browse the repository at this point in the history
  • Loading branch information
FalsePattern committed Jun 1, 2022
1 parent e11a047 commit ceff4db
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
public interface ITessellatorMixin {
void setAlternativeTriangulation();

boolean isDrawingTris();
boolean hackedQuadRendering();
boolean quadTriangulationActive();
boolean shaderOn();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.falsepattern.triangulator.mixin.mixins.client.optifine;

import com.falsepattern.triangulator.mixin.helper.ITessellatorMixin;
import lombok.val;
import net.minecraft.client.renderer.Tessellator;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(Tessellator.class)
Expand All @@ -15,4 +17,18 @@ public abstract class TessellatorVanillaMixin implements ITessellatorMixin {
private void hackVertex(CallbackInfo ci) {
triangulate();
}

@Redirect(method = "draw",
at = @At(value = "INVOKE",
target = "Ljava/lang/Math;min(II)I",
ordinal = 0),
require = 1)
private int snapTo3(int a, int b) {
val v = Math.min(a, b);
if (isDrawingTris()) {
return v - (v % 3);
} else {
return v;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.falsepattern.triangulator.api.ToggleableTessellator;
import com.falsepattern.triangulator.mixin.helper.IQuadComparatorMixin;
import com.falsepattern.triangulator.mixin.helper.ITessellatorMixin;
import lombok.Getter;
import net.minecraft.client.renderer.Tessellator;
import org.lwjgl.opengl.GL11;
import org.spongepowered.asm.lib.Opcodes;
Expand All @@ -23,6 +24,7 @@ public abstract class TessellatorMixin implements ITessellatorMixin, ToggleableT
@Shadow private int rawBufferIndex;
@Shadow private int vertexCount;
private boolean hackedQuadRendering = false;
@Getter
private boolean drawingTris = false;
private boolean alternativeTriangulation = false;
private boolean quadTriangulationTemporarilySuspended = false;
Expand Down

0 comments on commit ceff4db

Please sign in to comment.