Update 1.14.4 yarn

This commit is contained in:
Jonas Herzig
2020-03-30 18:08:01 +02:00
parent ba83aa97b3
commit 527562549b
48 changed files with 214 additions and 225 deletions

View File

@@ -6,7 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import net.minecraft.client.resource.language.I18n;
import net.minecraft.util.SystemUtil;
import net.minecraft.util.Util;
import java.io.File;
import java.util.Arrays;
@@ -173,7 +173,7 @@ public class RenderSettings {
}
private static String findFFmpeg() {
switch (SystemUtil.getOperatingSystem()) {
switch (Util.getOperatingSystem()) {
case WINDOWS:
// Allow windows users to unpack the ffmpeg archive into a sub-folder of their .minecraft folder
File inDotMinecraft = new File(MCVer.getMinecraft().runDirectory, "ffmpeg/bin/ffmpeg.exe");

View File

@@ -110,7 +110,7 @@ public class BlendMeshBuilder
throw new IllegalStateException("Not building!");
} else {
if (!wellBehaved) {
Tessellator.getInstance().getBufferBuilder().end();
Tessellator.getInstance().getBuffer().end();
}
//#if MC<10809
@@ -168,7 +168,7 @@ public class BlendMeshBuilder
int posOffset = -1, colorOffset = -1, uvOffset = -1;
int index = 0;
//#if MC>=11500
int elementOffset = 0;
//$$ int elementOffset = 0;
//#endif
for (VertexFormatElement element : getElements(vertexFormat)) {
//#if MC>=11500

View File

@@ -18,13 +18,13 @@ import com.mojang.blaze3d.platform.GLX;
import net.minecraft.client.render.chunk.ChunkRenderData;
import net.minecraft.client.render.chunk.ChunkRenderer;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.client.gl.GlBuffer;
import net.minecraft.client.gl.VertexBuffer;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
//#if MC>=10904
import net.minecraft.block.BlockRenderLayer;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.math.BlockPos;
//#else
//$$ import net.minecraft.util.BlockPos;
@@ -42,8 +42,8 @@ import java.util.Map;
public class ChunkExporter implements Exporter {
private final Map<BlockPos, DObject> chunkObjects = new HashMap<>();
//#if MC>=10904
private final Map<BlockPos, Map<BlockRenderLayer, DObject>> chunkLayerObjects = new HashMap<>();
private final List<Pair<ChunkRenderer, BlockRenderLayer>> chunks = new ArrayList<>();
private final Map<BlockPos, Map<RenderLayer, DObject>> chunkLayerObjects = new HashMap<>();
private final List<Pair<ChunkRenderer, RenderLayer>> chunks = new ArrayList<>();
//#else
//$$ private final Map<BlockPos, Map<EnumWorldBlockLayer, DObject>> chunkLayerObjects = new HashMap<>();
//$$ private final List<Pair<RenderChunk, EnumWorldBlockLayer>> chunks = new ArrayList<>();
@@ -53,7 +53,7 @@ public class ChunkExporter implements Exporter {
public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) {
//#if MC>=10904
for (BlockRenderLayer layer : BlockRenderLayer.values()) {
for (RenderLayer layer : RenderLayer.values()) {
//#else
//$$ for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) {
//#endif
@@ -98,8 +98,8 @@ public class ChunkExporter implements Exporter {
@Override
public void postFrame(int frame) throws IOException {
//#if MC>=10904
for (Pair<ChunkRenderer, BlockRenderLayer> pair : chunks) {
BlockRenderLayer layer = pair.getRight();
for (Pair<ChunkRenderer, RenderLayer> pair : chunks) {
RenderLayer layer = pair.getRight();
//#else
//$$ for (Pair<RenderChunk, EnumWorldBlockLayer> pair : chunks) {
//$$ EnumWorldBlockLayer layer = pair.getRight();
@@ -114,7 +114,7 @@ public class ChunkExporter implements Exporter {
DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer);
if (layerObject == null) continue;
//#if MC>=10904
Map<BlockRenderLayer, DObject> layerObjects
Map<RenderLayer, DObject> layerObjects
//#else
//$$ Map<EnumWorldBlockLayer, DObject> layerObjects
//#endif
@@ -145,11 +145,11 @@ public class ChunkExporter implements Exporter {
private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk,
//#if MC>=10904
BlockRenderLayer layer) {
RenderLayer layer) {
//#else
//$$ EnumWorldBlockLayer layer) {
//#endif
GlBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal());
VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal());
if (vertexBuffer == null) return null;
DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer));
@@ -158,7 +158,7 @@ public class ChunkExporter implements Exporter {
return layerObject;
}
private DMesh buildChunkLayerMesh(GlBuffer vertexBuffer) {
private DMesh buildChunkLayerMesh(VertexBuffer vertexBuffer) {
vertexBuffer.bind();
int size = GL15.glGetBufferParameteri(GLX.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE);
ByteBuffer byteBuffer = GlAllocationUtils.allocateByteBuffer(size);

View File

@@ -86,7 +86,7 @@ public class ItemExporter implements Exporter {
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
builder.setWellBehaved(true);
//#if MC>=10809
builder.begin(GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_NORMAL);
builder.begin(GL11.GL_QUADS, VertexFormats.POSITION_COLOR_TEXTURE_LIGHT_NORMAL);
//#else
//$$ builder.startDrawingQuads();
//$$ builder.setVertexFormat(DefaultVertexFormats.ITEM);

View File

@@ -9,7 +9,7 @@ import org.lwjgl.opengl.GL11;
//#if MC>=11400
import net.minecraft.client.model.Box;
import net.minecraft.client.model.Cuboid;
import net.minecraft.client.model.ModelPart;
//#else
//$$ import net.minecraft.client.model.ModelBox;
//$$ import net.minecraft.client.model.ModelRenderer;
@@ -31,7 +31,7 @@ public class ModelRendererExporter implements Exporter {
public void setup() throws IOException {
}
public void preRenderModel(Cuboid model, float scale) {
public void preRenderModel(ModelPart model, float scale) {
DObject object = getObjectForModel(model, scale);
renderState.pushObject(object);
renderState.pushModelView();
@@ -53,7 +53,7 @@ public class ModelRendererExporter implements Exporter {
renderState.pop();
}
private DObject getObjectForModel(Cuboid model, float scale) {
private DObject getObjectForModel(ModelPart model, float scale) {
int frame = renderState.getFrame();
DObject parent = renderState.peekObject();
DObject object = null;
@@ -78,7 +78,7 @@ public class ModelRendererExporter implements Exporter {
return object;
}
private static DMesh generateMesh(Cuboid model, float scale) {
private static DMesh generateMesh(ModelPart model, float scale) {
DMesh mesh = new DMesh();
BlendMeshBuilder builder = new BlendMeshBuilder(mesh);
for (Box box : cubeList(model)) {
@@ -93,17 +93,17 @@ public class ModelRendererExporter implements Exporter {
}
private static class ModelBasedDObject extends DObject {
private final Cuboid model;
private final ModelPart model;
private final float scale;
private boolean valid;
public ModelBasedDObject(Cuboid model, float scale) {
public ModelBasedDObject(ModelPart model, float scale) {
super(generateMesh(model, scale));
this.model = model;
this.scale = scale;
}
public boolean isBasedOn(Cuboid model, float scale) {
public boolean isBasedOn(ModelPart model, float scale) {
return this.model == model && Math.abs(this.scale - scale) < 1e-4;
}

View File

@@ -169,7 +169,7 @@ public class ParticlesExporter implements Exporter {
builder.setReverseOffset(offset);
builder.setWellBehaved(true);
//#if MC>=10809
builder.begin(7, VertexFormats.POSITION_UV_COLOR_LMAP);
builder.begin(7, VertexFormats.POSITION_TEXTURE_COLOR_LIGHT);
//#else
//$$ builder.startDrawingQuads();
//#endif

View File

@@ -5,15 +5,7 @@ import net.minecraft.client.render.chunk.ChunkRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
//#if MC>=11400
@Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo")
//#else
//#if MC>=11400
//$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation")
//#else
//$$ @Mixin(targets = "net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation")
//#endif
//#endif
public interface ContainerLocalRenderInformationAccessor {
//#if MC>=11500
//$$ @Accessor("chunk")

View File

@@ -10,18 +10,18 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11400
import net.minecraft.client.model.Cuboid;
import net.minecraft.client.model.ModelPart;
//#else
//$$ import net.minecraft.client.model.ModelRenderer;
//#endif
@Mixin(Cuboid.class)
@Mixin(ModelPart.class)
public abstract class MixinModelRenderer {
@Inject(method = "render", at = @At("HEAD"))
public void preRender(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale);
blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale);
}
}
@@ -29,7 +29,7 @@ public abstract class MixinModelRenderer {
public void preRenderWithRotation(float scale, CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale);
blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale);
}
}

View File

@@ -21,10 +21,14 @@ import net.minecraft.client.render.entity.LivingEntityRenderer;
//$$ @Mixin(RendererLivingEntity.class)
//#endif
public abstract class MixinRenderLivingBase {
//#if MC>=11500
//$$ @Inject(method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(
//#else
//#if FABRIC>=1
@Inject(method = "method_4054", at = @At(
@Inject(method = "render(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
//#else
//$$ @Inject(method = "doRender(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At(
//#endif
//#endif
value = "INVOKE",
//#if MC>=10904
@@ -34,7 +38,7 @@ public abstract class MixinRenderLivingBase {
//#endif
shift = At.Shift.AFTER
))
private void recordModelMatrix(LivingEntity entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) {
private void recordModelMatrix(CallbackInfo ci) {
BlendState blendState = BlendState.getState();
if (blendState != null) {
blendState.get(EntityExporter.class).postEntityLivingSetup();

View File

@@ -9,7 +9,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
import de.johni0702.minecraft.gui.utils.lwjgl.WritableDimension;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gl.GlFramebuffer;
import net.minecraft.client.gl.Framebuffer;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
@@ -34,7 +34,7 @@ public abstract class OpenGlFrameCapturer<F extends Frame, D extends CaptureData
protected final WorldRenderer worldRenderer;
protected final RenderInfo renderInfo;
protected int framesDone;
private GlFramebuffer frameBuffer;
private Framebuffer frameBuffer;
private final MinecraftClient mc = MCVer.getMinecraft();
@@ -68,7 +68,7 @@ public abstract class OpenGlFrameCapturer<F extends Frame, D extends CaptureData
return renderInfo.getFrameSize().getHeight();
}
protected GlFramebuffer frameBuffer() {
protected Framebuffer frameBuffer() {
if (frameBuffer == null) {
frameBuffer = mc.getFramebuffer();
}
@@ -117,8 +117,8 @@ public abstract class OpenGlFrameCapturer<F extends Frame, D extends CaptureData
protected void resize(int width, int height) {
//#if MC>=11400
GlFramebuffer fb = mc.getFramebuffer();
if (fb.viewWidth != width || fb.viewHeight != height) {
Framebuffer fb = mc.getFramebuffer();
if (fb.viewportWidth != width || fb.viewportHeight != height) {
fb.resize(width, height
//#if MC>=11400
, false

View File

@@ -289,7 +289,7 @@ public class GuiVideoRenderer extends GuiScreen implements Tickable {
buffer.get(); // alpha
//#if MC>=11400
int value = 0xff << 24 | b << 16 | g << 8 | r;
data.setPixelRGBA(x, y, value); // actually takes ABGR, not RGBA
data.setPixelRgba(x, y, value); // actually takes ABGR, not RGBA
//#else
//$$ int value = 0xff << 24 | r << 16 | g << 8 | b;
//$$ data[y * width + x] = value;

View File

@@ -5,9 +5,9 @@ package com.replaymod.render.hooks;
import com.replaymod.render.mixin.ChunkRenderDispatcherAccessor;
import com.replaymod.render.mixin.WorldRendererAccessor;
import com.replaymod.render.utils.JailingQueue;
import net.minecraft.client.render.chunk.BlockLayeredBufferBuilder;
import net.minecraft.client.render.chunk.BlockBufferBuilderStorage;
import net.minecraft.client.render.WorldRenderer;
import net.minecraft.client.render.chunk.ChunkBatcher;
import net.minecraft.client.render.chunk.ChunkBuilder;
import net.minecraft.client.render.chunk.ChunkRenderTask;
import net.minecraft.client.render.chunk.ChunkRenderWorker;
import net.minecraft.client.render.chunk.ChunkRenderer;
@@ -30,7 +30,7 @@ public class ChunkLoadingRenderGlobal {
//#else
//$$ private final RenderGlobal hooked;
//#endif
private ChunkBatcher renderDispatcher;
private ChunkBuilder renderDispatcher;
//#if MC>=11400
private JailingQueue<ChunkRenderTask> workerJailingQueue;
//#else
@@ -52,7 +52,7 @@ public class ChunkLoadingRenderGlobal {
setup(((WorldRendererAccessor) renderGlobal).getRenderDispatcher());
}
public void updateRenderDispatcher(ChunkBatcher renderDispatcher) {
public void updateRenderDispatcher(ChunkBuilder renderDispatcher) {
if (this.renderDispatcher != null) {
workerJailingQueue.freeAll();
this.renderDispatcher = null;
@@ -62,9 +62,9 @@ public class ChunkLoadingRenderGlobal {
}
}
private void setup(ChunkBatcher renderDispatcher) {
private void setup(ChunkBuilder renderDispatcher) {
this.renderDispatcher = renderDispatcher;
this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockLayeredBufferBuilder());
this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockBufferBuilderStorage());
ChunkRenderDispatcherAccessor renderDispatcherAcc = (ChunkRenderDispatcherAccessor) renderDispatcher;
int workerThreads = renderDispatcherAcc.getListThreadedWorkers().size();

View File

@@ -1,7 +1,7 @@
//#if MC>=10800 && MC<11500
package com.replaymod.render.mixin;
import net.minecraft.client.render.chunk.ChunkBatcher;
import net.minecraft.client.render.chunk.ChunkBuilder;
import net.minecraft.client.render.chunk.ChunkRenderTask;
import net.minecraft.client.render.chunk.ChunkRenderWorker;
import org.spongepowered.asm.mixin.Mixin;
@@ -14,7 +14,7 @@ import java.util.concurrent.PriorityBlockingQueue;
//$$ import java.util.concurrent.BlockingQueue;
//#endif
@Mixin(ChunkBatcher.class)
@Mixin(ChunkBuilder.class)
public interface ChunkRenderDispatcherAccessor {
@Accessor("workers")
List<ChunkRenderWorker> getListThreadedWorkers();

View File

@@ -2,7 +2,7 @@
package com.replaymod.render.mixin;
import com.replaymod.render.hooks.ChunkLoadingRenderGlobal;
import net.minecraft.client.render.chunk.ChunkBatcher;
import net.minecraft.client.render.chunk.ChunkBuilder;
import net.minecraft.client.render.VisibleRegion;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
@@ -37,10 +37,10 @@ public abstract class MixinRenderGlobal {
private boolean replayModRender_passThroughSetupTerrain;
@Shadow
public boolean terrainUpdateNecessary;
public boolean needsTerrainUpdate;
@Shadow
public ChunkBatcher chunkBatcher;
public ChunkBuilder chunkBuilder;
@Shadow
public abstract void setUpTerrain(
@@ -90,9 +90,9 @@ public abstract class MixinRenderGlobal {
playerSpectator
);
replayModRender_hook.updateChunks();
} while (this.terrainUpdateNecessary);
} while (this.needsTerrainUpdate);
this.terrainUpdateNecessary = true;
this.needsTerrainUpdate = true;
replayModRender_passThroughSetupTerrain = false;
ci.cancel();
@@ -118,7 +118,7 @@ public abstract class MixinRenderGlobal {
// Prior to 1.9.4, MC always uses the same ChunkRenderDispatcher instance
//#if MC>=10904
@Inject(method = "setWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/chunk/ChunkBatcher;stop()V"))
@Inject(method = "setWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/chunk/ChunkBuilder;stop()V"))
private void stopWorkerThreadsAndChunkLoadingRenderGlobal(CallbackInfo ci) {
if (replayModRender_hook != null) {
replayModRender_hook.updateRenderDispatcher(null);
@@ -129,7 +129,7 @@ public abstract class MixinRenderGlobal {
@Inject(method = "reload", at = @At(value = "RETURN"))
private void setupChunkLoadingRenderGlobal(CallbackInfo ci) {
if (replayModRender_hook != null) {
replayModRender_hook.updateRenderDispatcher(this.chunkBatcher);
replayModRender_hook.updateRenderDispatcher(this.chunkBuilder);
}
}
}

View File

@@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.gen.Accessor;
import java.util.Set;
//#if MC>=10800
import net.minecraft.client.render.chunk.ChunkBatcher;
import net.minecraft.client.render.chunk.ChunkBuilder;
import net.minecraft.client.render.chunk.ChunkRenderer;
//#endif
@@ -18,13 +18,13 @@ public interface WorldRendererAccessor {
void setRenderEntitiesStartupCounter(int value);
//#if MC>=10800
@Accessor("chunkBatcher")
ChunkBatcher getRenderDispatcher();
@Accessor("chunkBuilder")
ChunkBuilder getRenderDispatcher();
@Accessor("terrainUpdateNecessary")
@Accessor("needsTerrainUpdate")
void setDisplayListEntitiesDirty(boolean value);
@Accessor("chunkRenderers")
@Accessor("chunksToRebuild")
Set<ChunkRenderer> getChunksToUpdate();
//#endif
//#endif

View File

@@ -27,7 +27,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
import net.minecraft.client.MinecraftClient;
import com.mojang.blaze3d.platform.GLX;
import net.minecraft.client.gl.GlFramebuffer;
import net.minecraft.client.gl.Framebuffer;
import net.minecraft.util.crash.CrashException;
import net.minecraft.sound.SoundCategory;
import net.minecraft.client.render.RenderTickCounter;
@@ -103,7 +103,7 @@ public class VideoRenderer implements RenderInfo {
private boolean cancelled;
private volatile Throwable failureCause;
private GlFramebuffer guiFramebuffer;
private Framebuffer guiFramebuffer;
private int displayWidth, displayHeight;
public VideoRenderer(RenderSettings settings, ReplayHandler replayHandler, Timeline timeline) throws IOException {
@@ -319,7 +319,7 @@ public class VideoRenderer implements RenderInfo {
//#endif
// Set up our own framebuffer to render the GUI to
guiFramebuffer = new GlFramebuffer(displayWidth, displayHeight, true
guiFramebuffer = new Framebuffer(displayWidth, displayHeight, true
//#if MC>=11400
, false
//#endif