Use MainWindowAccessor across all versions
This commit is contained in:
@@ -2,9 +2,11 @@ package com.replaymod.core.versions;
|
||||
|
||||
import com.replaymod.core.mixin.GuiScreenAccessor;
|
||||
import com.replaymod.core.mixin.MinecraftAccessor;
|
||||
import com.replaymod.render.mixin.MainWindowAccessor;
|
||||
import com.replaymod.replaystudio.protocol.PacketTypeRegistry;
|
||||
import com.replaymod.replaystudio.us.myles.ViaVersion.api.protocol.ProtocolVersion;
|
||||
import com.replaymod.replaystudio.us.myles.ViaVersion.packets.State;
|
||||
import de.johni0702.minecraft.gui.utils.NonNull;
|
||||
import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
@@ -38,7 +40,6 @@ import java.util.ArrayList;
|
||||
|
||||
//#if MC>=11400
|
||||
import com.replaymod.core.mixin.AbstractButtonWidgetAccessor;
|
||||
import com.replaymod.render.mixin.MainWindowAccessor;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.gl.Framebuffer;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
@@ -464,13 +465,17 @@ public class MCVer {
|
||||
}
|
||||
|
||||
//#if MC>=11400
|
||||
public static Window getWindow(MinecraftClient mc) {
|
||||
public static @NonNull Window getWindow(MinecraftClient mc) {
|
||||
//#if MC>=11500
|
||||
return mc.getWindow();
|
||||
//#else
|
||||
//$$ return mc.window;
|
||||
//#endif
|
||||
}
|
||||
//#else
|
||||
//$$ public static @NonNull MainWindowAccessor getWindow(Minecraft mc) {
|
||||
//$$ return (MainWindowAccessor) mc;
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
//#if MC>=11400
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
//#if MC>=11400
|
||||
package com.replaymod.render.mixin;
|
||||
|
||||
import net.minecraft.client.util.Window;
|
||||
@@ -7,9 +6,12 @@ import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(Window.class)
|
||||
public interface MainWindowAccessor {
|
||||
@Accessor
|
||||
int getFramebufferWidth();
|
||||
@Accessor
|
||||
void setFramebufferWidth(int value);
|
||||
@Accessor
|
||||
int getFramebufferHeight();
|
||||
@Accessor
|
||||
void setFramebufferHeight(int value);
|
||||
}
|
||||
//#endif
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.replaymod.render.gui.GuiRenderingDone;
|
||||
import com.replaymod.render.gui.GuiVideoRenderer;
|
||||
import com.replaymod.render.hooks.ForceChunkLoadingHook;
|
||||
import com.replaymod.render.metadata.MetadataInjector;
|
||||
import com.replaymod.render.mixin.MainWindowAccessor;
|
||||
import com.replaymod.render.mixin.WorldRendererAccessor;
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import com.replaymod.replaystudio.pathing.path.Keyframe;
|
||||
@@ -46,7 +47,6 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
//#if MC>=11400
|
||||
import com.replaymod.render.EXRWriter;
|
||||
import com.replaymod.render.mixin.MainWindowAccessor;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -232,19 +232,11 @@ public class VideoRenderer implements RenderInfo {
|
||||
@Override
|
||||
public float updateForNextFrame() {
|
||||
// because the jGui lib uses Minecraft's displayWidth and displayHeight values, update these temporarily
|
||||
//#if MC>=11400
|
||||
int displayWidthBefore = getWindow(mc).getFramebufferWidth();
|
||||
int displayHeightBefore = getWindow(mc).getFramebufferHeight();
|
||||
//noinspection ConstantConditions
|
||||
MainWindowAccessor acc = (MainWindowAccessor) (Object) getWindow(mc);
|
||||
int displayWidthBefore = acc.getFramebufferWidth();
|
||||
int displayHeightBefore = acc.getFramebufferHeight();
|
||||
acc.setFramebufferWidth(displayWidth);
|
||||
acc.setFramebufferHeight(displayHeight);
|
||||
//#else
|
||||
//$$ int displayWidthBefore = mc.displayWidth;
|
||||
//$$ int displayHeightBefore = mc.displayHeight;
|
||||
//$$ mc.displayWidth = displayWidth;
|
||||
//$$ mc.displayHeight = displayHeight;
|
||||
//#endif
|
||||
|
||||
if (!settings.isHighPerformance() || framesDone % fps == 0) {
|
||||
while (drawGui() && paused) {
|
||||
@@ -285,13 +277,8 @@ public class VideoRenderer implements RenderInfo {
|
||||
}
|
||||
|
||||
// change Minecraft's display size back
|
||||
//#if MC>=11400
|
||||
acc.setFramebufferWidth(displayWidthBefore);
|
||||
acc.setFramebufferHeight(displayHeightBefore);
|
||||
//#else
|
||||
//$$ mc.displayWidth = displayWidthBefore;
|
||||
//$$ mc.displayHeight = displayHeightBefore;
|
||||
//#endif
|
||||
|
||||
if (cameraPathExporter != null) {
|
||||
cameraPathExporter.recordFrame(timer.tickDelta);
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
//#if MC>=11400
|
||||
"Mixin_PreserveDepthDuringHandRendering",
|
||||
"Mixin_WindowsWorkaroundForTinyEXRNatives",
|
||||
"MainWindowAccessor",
|
||||
//#endif
|
||||
"MainWindowAccessor",
|
||||
"WorldRendererAccessor",
|
||||
//#if MC>=10904
|
||||
"MixinParticleManager",
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.replaymod.render.mixin;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(Minecraft.class)
|
||||
public interface MainWindowAccessor {
|
||||
@Accessor("displayWidth")
|
||||
int getFramebufferWidth();
|
||||
@Accessor("displayWidth")
|
||||
void setFramebufferWidth(int value);
|
||||
@Accessor("displayHeight")
|
||||
int getFramebufferHeight();
|
||||
@Accessor("displayHeight")
|
||||
void setFramebufferHeight(int value);
|
||||
}
|
||||
Reference in New Issue
Block a user