Fixes #4657: Remove usage of an implementation class and just copy the needed values into arrays.
This commit is contained in:
Vendored
+23
-25
@@ -19,11 +19,8 @@
|
|||||||
package appeng.thirdparty.codechicken.lib.model.pipeline.transformers;
|
package appeng.thirdparty.codechicken.lib.model.pipeline.transformers;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
|
import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
|
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
|
||||||
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
||||||
import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.EncodingFormat;
|
|
||||||
import net.fabricmc.fabric.impl.client.indigo.renderer.mesh.MutableQuadViewImpl;
|
|
||||||
|
|
||||||
import appeng.thirdparty.codechicken.lib.math.InterpHelper;
|
import appeng.thirdparty.codechicken.lib.math.InterpHelper;
|
||||||
|
|
||||||
@@ -39,16 +36,11 @@ public class QuadReInterpolator implements RenderContext.QuadTransform {
|
|||||||
|
|
||||||
private final InterpHelper interpHelper = new InterpHelper();
|
private final InterpHelper interpHelper = new InterpHelper();
|
||||||
|
|
||||||
private final MutableQuadViewImpl bufferQuad = new MutableQuadViewImpl() {
|
private final int[] originalSpriteColor = new int[4];
|
||||||
{
|
|
||||||
data = new int[EncodingFormat.TOTAL_STRIDE];
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
private final float[] originalSpriteU = new float[4];
|
||||||
public QuadEmitter emit() {
|
|
||||||
throw new UnsupportedOperationException();
|
private final float[] originalSpriteV = new float[4];
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public QuadReInterpolator() {
|
public QuadReInterpolator() {
|
||||||
super();
|
super();
|
||||||
@@ -63,7 +55,13 @@ public class QuadReInterpolator implements RenderContext.QuadTransform {
|
|||||||
quad.posByIndex(1, xIdx), quad.posByIndex(1, yIdx), //
|
quad.posByIndex(1, xIdx), quad.posByIndex(1, yIdx), //
|
||||||
quad.posByIndex(2, xIdx), quad.posByIndex(2, yIdx), //
|
quad.posByIndex(2, xIdx), quad.posByIndex(2, yIdx), //
|
||||||
quad.posByIndex(3, xIdx), quad.posByIndex(3, yIdx));
|
quad.posByIndex(3, xIdx), quad.posByIndex(3, yIdx));
|
||||||
quad.copyTo(bufferQuad);
|
|
||||||
|
// Save the original properties of the quad's vertices
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
originalSpriteColor[i] = quad.spriteColor(i, 0);
|
||||||
|
originalSpriteU[i] = quad.spriteU(i, 0);
|
||||||
|
originalSpriteV[i] = quad.spriteV(i, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -89,10 +87,10 @@ public class QuadReInterpolator implements RenderContext.QuadTransform {
|
|||||||
* reference.
|
* reference.
|
||||||
*/
|
*/
|
||||||
public void interpColorFrom(MutableQuadView quad, int vertexIndex) {
|
public void interpColorFrom(MutableQuadView quad, int vertexIndex) {
|
||||||
int p1 = bufferQuad.spriteColor(0, 0);
|
int p1 = this.originalSpriteColor[0];
|
||||||
int p2 = bufferQuad.spriteColor(1, 0);
|
int p2 = this.originalSpriteColor[1];
|
||||||
int p3 = bufferQuad.spriteColor(2, 0);
|
int p3 = this.originalSpriteColor[2];
|
||||||
int p4 = bufferQuad.spriteColor(3, 0);
|
int p4 = this.originalSpriteColor[3];
|
||||||
if (p1 == p2 && p2 == p3 && p3 == p4) {
|
if (p1 == p2 && p2 == p3 && p3 == p4) {
|
||||||
return; // Don't bother for uniformly colored quads
|
return; // Don't bother for uniformly colored quads
|
||||||
}
|
}
|
||||||
@@ -118,16 +116,16 @@ public class QuadReInterpolator implements RenderContext.QuadTransform {
|
|||||||
* reference.
|
* reference.
|
||||||
*/
|
*/
|
||||||
public void interpUVFrom(MutableQuadView quad, int vertexIndex) {
|
public void interpUVFrom(MutableQuadView quad, int vertexIndex) {
|
||||||
float p1 = bufferQuad.spriteU(0, 0);
|
float p1 = originalSpriteU[0];
|
||||||
float p2 = bufferQuad.spriteU(1, 0);
|
float p2 = originalSpriteU[1];
|
||||||
float p3 = bufferQuad.spriteU(2, 0);
|
float p3 = originalSpriteU[2];
|
||||||
float p4 = bufferQuad.spriteU(3, 0);
|
float p4 = originalSpriteU[3];
|
||||||
float u = interpHelper.interpolate(p1, p2, p3, p4);
|
float u = interpHelper.interpolate(p1, p2, p3, p4);
|
||||||
|
|
||||||
p1 = bufferQuad.spriteV(0, 0);
|
p1 = originalSpriteV[0];
|
||||||
p2 = bufferQuad.spriteV(1, 0);
|
p2 = originalSpriteV[1];
|
||||||
p3 = bufferQuad.spriteV(2, 0);
|
p3 = originalSpriteV[2];
|
||||||
p4 = bufferQuad.spriteV(3, 0);
|
p4 = originalSpriteV[3];
|
||||||
float v = interpHelper.interpolate(p1, p2, p3, p4);
|
float v = interpHelper.interpolate(p1, p2, p3, p4);
|
||||||
quad.sprite(vertexIndex, 0, u, v);
|
quad.sprite(vertexIndex, 0, u, v);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user