Always use custom entity renderer for improved performance and consistency
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package eu.crushedpixel.replaymod.video.frame;
|
package eu.crushedpixel.replaymod.video.frame;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.util.concurrent.Runnables;
|
import com.google.common.util.concurrent.Runnables;
|
||||||
import eu.crushedpixel.replaymod.gui.GuiVideoRenderer;
|
import eu.crushedpixel.replaymod.gui.GuiVideoRenderer;
|
||||||
@@ -20,6 +19,7 @@ import java.awt.image.DataBufferInt;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import static net.minecraft.client.renderer.GlStateManager.*;
|
import static net.minecraft.client.renderer.GlStateManager.*;
|
||||||
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
|
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
|
||||||
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
|
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
|
||||||
@@ -29,7 +29,7 @@ public abstract class FrameRenderer {
|
|||||||
protected final Minecraft mc = Minecraft.getMinecraft();
|
protected final Minecraft mc = Minecraft.getMinecraft();
|
||||||
private final int videoWidth;
|
private final int videoWidth;
|
||||||
private final int videoHeight;
|
private final int videoHeight;
|
||||||
private Optional<CustomEntityRenderer> customEntityRenderer;
|
private CustomEntityRenderer customEntityRenderer;
|
||||||
private DynamicTexture previewTexture;
|
private DynamicTexture previewTexture;
|
||||||
private Runnable renderPreviewCallback;
|
private Runnable renderPreviewCallback;
|
||||||
private boolean previewActive = false;
|
private boolean previewActive = false;
|
||||||
@@ -39,14 +39,14 @@ public abstract class FrameRenderer {
|
|||||||
this.videoWidth = videoWidth;
|
this.videoWidth = videoWidth;
|
||||||
this.videoHeight = videoHeight;
|
this.videoHeight = videoHeight;
|
||||||
this.buffer = BufferUtils.createByteBuffer(mc.displayWidth * mc.displayHeight * 3);
|
this.buffer = BufferUtils.createByteBuffer(mc.displayWidth * mc.displayHeight * 3);
|
||||||
this.customEntityRenderer = Optional.absent();
|
this.customEntityRenderer = new CustomEntityRenderer() {};
|
||||||
}
|
}
|
||||||
|
|
||||||
public FrameRenderer(int videoWidth, int videoHeight, int bufferSize) {
|
public FrameRenderer(int videoWidth, int videoHeight, int bufferSize) {
|
||||||
this.videoWidth = videoWidth;
|
this.videoWidth = videoWidth;
|
||||||
this.videoHeight = videoHeight;
|
this.videoHeight = videoHeight;
|
||||||
this.buffer = BufferUtils.createByteBuffer(bufferSize);
|
this.buffer = BufferUtils.createByteBuffer(bufferSize);
|
||||||
this.customEntityRenderer = Optional.absent();
|
this.customEntityRenderer = new CustomEntityRenderer() {};
|
||||||
}
|
}
|
||||||
|
|
||||||
public final int getVideoWidth() {
|
public final int getVideoWidth() {
|
||||||
@@ -80,7 +80,7 @@ public abstract class FrameRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setCustomEntityRenderer(CustomEntityRenderer customEntityRenderer) {
|
public void setCustomEntityRenderer(CustomEntityRenderer customEntityRenderer) {
|
||||||
this.customEntityRenderer = Optional.fromNullable(customEntityRenderer);
|
this.customEntityRenderer = checkNotNull(customEntityRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract BufferedImage captureFrame(Timer timer);
|
public abstract BufferedImage captureFrame(Timer timer);
|
||||||
@@ -145,11 +145,7 @@ public abstract class FrameRenderer {
|
|||||||
|
|
||||||
enableTexture2D();
|
enableTexture2D();
|
||||||
|
|
||||||
if (customEntityRenderer.isPresent()) {
|
customEntityRenderer.updateCameraAndRender(timer.renderPartialTicks);
|
||||||
customEntityRenderer.get().updateCameraAndRender(timer.renderPartialTicks);
|
|
||||||
} else {
|
|
||||||
mc.entityRenderer.updateCameraAndRender(timer.renderPartialTicks);
|
|
||||||
}
|
|
||||||
|
|
||||||
mc.getFramebuffer().unbindFramebuffer();
|
mc.getFramebuffer().unbindFramebuffer();
|
||||||
popMatrix();
|
popMatrix();
|
||||||
|
|||||||
Reference in New Issue
Block a user