From 0dfbcb3c6d70da4ab7c7bfdd2e6ddd0e0a60304f Mon Sep 17 00:00:00 2001 From: James Seibel Date: Wed, 3 Jun 2026 07:45:31 -0500 Subject: [PATCH] Render engine validation cleanup and 26.2.0 prep --- .../distanthorizons/common/AbstractModInitializer.java | 3 +++ .../MixinImmersivePortalsRenderStatesCommon.java | 4 +++- .../common/render/blaze/BlazeDhRenderApiDefinition.java | 9 ++++----- .../common/render/blaze/wrappers/RenderPassWrapper.java | 1 + .../common/render/openGl/GlDhRenderApiDefinition.java | 2 +- .../distanthorizons/common/wrappers/DependencySetup.java | 6 +++--- .../wrappers/minecraft/MinecraftRenderWrapper.java | 5 ++++- coreSubProjects | 2 +- versionProperties/26.2.0.properties | 4 ++-- 9 files changed, 22 insertions(+), 14 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java index de30b4deb..f20819b53 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java @@ -6,6 +6,7 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeD import com.seibel.distanthorizons.common.commands.CommandInitializer; import com.seibel.distanthorizons.common.wrappers.DependencySetup; import com.seibel.distanthorizons.common.wrappers.gui.DhDebugScreenEntry; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftClientWrapper; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftServerWrapper; import com.seibel.distanthorizons.core.Initializer; import com.seibel.distanthorizons.core.api.internal.ClientApi; @@ -262,6 +263,8 @@ public abstract class AbstractModInitializer } catch (Exception e) { + NativeDialogUtil.showDialog(ModInfo.READABLE_NAME, e.getMessage(), "ok", "error"); + MinecraftClientWrapper.INSTANCE.crashMinecraft(e.getMessage(), e); future.completeExceptionally(e); } finally diff --git a/common/src/main/java/com/seibel/distanthorizons/common/commonMixins/MixinImmersivePortalsRenderStatesCommon.java b/common/src/main/java/com/seibel/distanthorizons/common/commonMixins/MixinImmersivePortalsRenderStatesCommon.java index 9407e62c3..defc44005 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/commonMixins/MixinImmersivePortalsRenderStatesCommon.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/commonMixins/MixinImmersivePortalsRenderStatesCommon.java @@ -50,8 +50,10 @@ public class MixinImmersivePortalsRenderStatesCommon // camera pos #if MC_VER <= MC_1_21_10 Vec3 cameraPos = mc.gameRenderer.getMainCamera().getPosition(); - #else + #elif MC_VER <= MC_26_1_2 Vec3 cameraPos = mc.gameRenderer.getMainCamera().position(); + #else + Vec3 cameraPos = mc.gameRenderer.mainCamera().position(); #endif AbstractImmersivePortalsAccessorCommon.actualCameraPos = new DhVec3d(cameraPos.x(), cameraPos.y(), cameraPos.z()); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhRenderApiDefinition.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhRenderApiDefinition.java index f3467ff10..8689a757b 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhRenderApiDefinition.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhRenderApiDefinition.java @@ -6,7 +6,6 @@ public class BlazeDhRenderApiDefinition {} #else import com.seibel.distanthorizons.api.enums.config.EDhApiRenderingApi; -import com.seibel.distanthorizons.api.enums.config.EDhApiRenderingEngine; import com.seibel.distanthorizons.common.render.blaze.objects.BlazeGenericObjectVertexContainer; import com.seibel.distanthorizons.common.render.blaze.postProcessing.BlazeDhFarFadeRenderer; import com.seibel.distanthorizons.common.render.blaze.postProcessing.BlazeDhFogRenderer; @@ -35,8 +34,8 @@ public class BlazeDhRenderApiDefinition extends AbstractDhRenderApiDefinition //=========// //region - private final String apiName; - public String getApiName() { return this.apiName; } + private final String engineName; + public String getEngineName() { return this.engineName; } public EDhRenderDepth getRenderDepth() { @@ -66,11 +65,11 @@ public class BlazeDhRenderApiDefinition extends AbstractDhRenderApiDefinition #if MC_VER <= MC_26_1_2 renderApi = EDhApiRenderingApi.OPEN_GL; #else - // use the same rendering API as Minecraft + // Blaze always uses the same rendering API as Minecraft this.renderApi = MinecraftRenderWrapper.INSTANCE.getMcRenderingApi(); #endif - this.apiName = "Blaze3D: " + this.getRenderApi(); + this.engineName = "Blaze3D: " + this.getRenderApi(); } //endregion diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPassWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPassWrapper.java index 47113a473..e107cb9e1 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPassWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPassWrapper.java @@ -16,6 +16,7 @@ import com.seibel.distanthorizons.common.render.blaze.wrappers.uniform.BlazeUnif import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import java.util.Optional; import java.util.OptionalDouble; import java.util.OptionalInt; import java.util.function.Supplier; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/GlDhRenderApiDefinition.java b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/GlDhRenderApiDefinition.java index 4b690dc81..a68753229 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/GlDhRenderApiDefinition.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/GlDhRenderApiDefinition.java @@ -26,7 +26,7 @@ public class GlDhRenderApiDefinition extends AbstractDhRenderApiDefinition //=========// //region - public String getApiName() { return "OpenGL"; } + public String getEngineName() { return "OpenGL"; } public EDhRenderDepth getRenderDepth() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/DependencySetup.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/DependencySetup.java index 881c60ed6..7e6affedf 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/DependencySetup.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/DependencySetup.java @@ -134,7 +134,7 @@ public class DependencySetup // crash if an invalid API is set if (!validApi) { - String message = "["+renderingApiEnum+"] is not supported on this version of Minecraft, reverting to ["+ EDhApiRenderingEngine.AUTO+"]."; + String message = "The Distant Horizons rendering engine ["+renderDefinition.getEngineName()+"]-["+renderingApiEnum+"] is not supported with this Minecraft config, reverting to ["+ EDhApiRenderingEngine.AUTO+"]."; LOGGER.fatal(message); Config.Client.Advanced.Graphics.Experimental.renderingEngine.set(EDhApiRenderingEngine.AUTO); throw new IllegalStateException(message); @@ -144,14 +144,14 @@ public class DependencySetup EDhApiRenderingApi mcRenderApi = MinecraftRenderWrapper.INSTANCE.getMcRenderingApi(); if (mcRenderApi != renderDefinition.getRenderApi()) { - String message = "["+renderDefinition.getApiName()+"] cannot be used due to it's API ["+renderDefinition.getRenderApi().name()+"] not matching what Minecraft is currently set to use. Please either change Minecraft's rendering API or Distant Horizons'."; + String message = "The Distant Horizons rendering engine ["+renderDefinition.getEngineName()+"]-["+renderDefinition.getRenderApi().name()+"] cannot be used since it's API doesn't match what Minecraft is currently set to use ["+mcRenderApi.name()+"]. Please either change Minecraft's rendering API or Distant Horizons'."; LOGGER.fatal(message); throw new IllegalStateException(message); } renderDefinition.bindRenderers(); - LOGGER.info("DH Rendering successfully bound to: ["+renderDefinition.getApiName()+"]..."); + LOGGER.info("DH Rendering successfully bound to: ["+renderDefinition.getEngineName()+"]..."); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java index a7dd370a6..2cd65cdda 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java @@ -400,9 +400,12 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper float frameTime = this.getPartialTickTime(); int argbColorInt = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getPosition(), frameTime); return ColorUtil.toColorObjARGB(argbColorInt); - #else + #elif MC_VER <= MC_26_1_2 int argbColor = MC.level.environmentAttributes().getValue(EnvironmentAttributes.SKY_COLOR, MC.gameRenderer.getMainCamera().position()); return new Color(ColorUtil.getRed(argbColor), ColorUtil.getGreen(argbColor), ColorUtil.getBlue(argbColor), 255 /* ignore alpha since DH clouds don't render correctly with transparency */); + #else + int argbColor = MC.level.environmentAttributes().getValue(EnvironmentAttributes.SKY_COLOR, MC.gameRenderer.mainCamera().position()); + return new Color(ColorUtil.getRed(argbColor), ColorUtil.getGreen(argbColor), ColorUtil.getBlue(argbColor), 255 /* ignore alpha since DH clouds don't render correctly with transparency */); #endif } else diff --git a/coreSubProjects b/coreSubProjects index 4ac56774f..4f0a3afd9 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 4ac56774fb209b3679086abf89cf4e5322720ac3 +Subproject commit 4f0a3afd9363c47f5a820b0eb5b971fb6336383b diff --git a/versionProperties/26.2.0.properties b/versionProperties/26.2.0.properties index 82cac14e4..f19475740 100644 --- a/versionProperties/26.2.0.properties +++ b/versionProperties/26.2.0.properties @@ -1,8 +1,8 @@ # 26.2.0 version java_version=25 -minecraft_version=26.2-snapshot-7 +minecraft_version=26.2-pre-3 parchment_version=1.21:2024.07.28 -compatible_minecraft_versions=["26.2.0","26.2-alpha.7"] +compatible_minecraft_versions=["26.2.0","26.2-pre.3"] accessWidenerVersion=26_1 builds_for=fabric #,neoforge