From 89619696cbc4b43edc56b6732b58ec5f1f7e298d Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 10 Mar 2026 16:45:58 -0500 Subject: [PATCH] fix iris rendering --- .../common/AbstractModInitializer.java | 45 ++++++++++++++++++- .../blaze/BlazeDhRenderApiDefinition.java | 26 ++++++++++- .../nativeGl/DhTerrainShaderProgram.java | 41 ++++++----------- .../render/nativeGl/OpenGlDhMetaRenderer.java | 37 ++++++++------- .../nativeGl/OpenGlDhRenderApiDefinition.java | 27 ++++++++++- .../glObject/texture/DhFramebuffer.java | 27 ++++++----- .../common/wrappers/VersionConstants.java | 38 ++++++++++++---- coreSubProjects | 2 +- 8 files changed, 172 insertions(+), 71 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 538f16fdd..aba9025e4 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/AbstractModInitializer.java @@ -1,6 +1,7 @@ package com.seibel.distanthorizons.common; import com.mojang.brigadier.CommandDispatcher; +import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDhInitEvent; import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeDhInitEvent; import com.seibel.distanthorizons.common.commands.CommandInitializer; @@ -18,6 +19,10 @@ import com.seibel.distanthorizons.core.enums.MinecraftTextFormat; import com.seibel.distanthorizons.core.jar.ModJarInfo; import com.seibel.distanthorizons.core.jar.updater.SelfUpdater; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import com.seibel.distanthorizons.core.util.NativeDialogUtil; +import com.seibel.distanthorizons.core.wrapperInterfaces.IVersionConstants; +import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; +import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IIrisAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector; @@ -244,6 +249,7 @@ public abstract class AbstractModInitializer // Alex's caves + //region if (modChecker.isModLoaded("alexscaves")) { // There've been a few reports about this mod breaking DH at a few different points in time @@ -260,8 +266,10 @@ public abstract class AbstractModInitializer LOGGER.warn(startingString + "[Alex's Caves] may require some config changes in order to render Distant Horizons correctly."); } + //endregion // William Wythers' Overhauled Overworld (WWOO) + //region if (modChecker.isModLoaded("wwoo")) { // WWOO has a bug with it's world gen that can't be fixed by DH or WWOO @@ -282,8 +290,11 @@ public abstract class AbstractModInitializer LOGGER.warn(startingString + "[WWOO] "+ wwooWarning); } + //endregion + + // Chunky // + //region - // Chunky boolean chunkyPresent = false; try { @@ -313,6 +324,38 @@ public abstract class AbstractModInitializer LOGGER.warn(startingString + "[Chunky] "+ chunkyWarning); } + //endregion + + // iris // + //region + + IIrisAccessor iris = ModAccessorInjector.INSTANCE.get(IIrisAccessor.class); + if (iris != null) + { + // get the currently selected rendering API + EDhApiRenderApi renderApi = Config.Client.Advanced.Graphics.Experimental.renderingApi.get(); + if (renderApi == EDhApiRenderApi.AUTO) + { + IVersionConstants versionConstants = SingletonInjector.INSTANCE.get(IVersionConstants.class); + renderApi = versionConstants.getDefaultRenderer(); + } + + // Iris only supports nataive OpenGL + if (renderApi != EDhApiRenderApi.OPEN_GL) + { + String irisUnsupportedMessage = "Iris doesn't support DH when using the ["+EDhApiRenderApi.BLAZE_3D+"] rendering API, please change it to ["+EDhApiRenderApi.OPEN_GL+"] in DH's config file."; + LOGGER.fatal(irisUnsupportedMessage); + NativeDialogUtil.showDialog(ModInfo.READABLE_NAME, irisUnsupportedMessage, "ok", "error"); + + IMinecraftClientWrapper mc = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); + String errorMessage = "loading Distant Horizons. "+irisUnsupportedMessage; + String exceptionError = "Distant Horizons conditional mod config Exception"; + mc.crashMinecraft(errorMessage, new Exception(exceptionError)); + } + } + + //endregion + } //endregion 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 7e7c1cd18..de117e308 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 @@ -18,8 +18,22 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.*; public class BlazeDhRenderApiDefinition extends AbstractDhRenderApiDefinition { + //=========// + // getters // + //=========// + //region + public String getApiName() { return "Blaze3D"; } + //endregion + + + + //============// + // singletons // + //============// + //region + @Override public IDhMetaRenderer getMetaRenderer() { return BlazeDhMetaRenderer.INSTANCE; } @Override public IDhTerrainRenderer getTerrainRenderer() { return BlazeDhTerrainRenderer.INSTANCE; } @Override public IDhSsaoRenderer getSsaoRenderer() { return BlazeDhSsaoRenderer.INSTANCE; } @@ -30,13 +44,23 @@ public class BlazeDhRenderApiDefinition extends AbstractDhRenderApiDefinition @Override public IDhVanillaFadeRenderer getVanillaFadeRenderer() { return BlazeVanillaFadeRenderer.INSTANCE; } @Override public IDhTestTriangleRenderer getTestTriangleRenderer() { return BlazeDhTestTriangleRenderer.INSTANCE; } - @Override public IDhGenericRenderer createGenericRenderer() { return new BlazeDhGenericObjectRenderer(); } + //endregion + + //===========// + // factories // + //===========// + //region + + @Override public IDhGenericRenderer createGenericRenderer() { return new BlazeDhGenericObjectRenderer(); } + @Override public IVertexBufferWrapper createVboWrapper(String name) { return new BlazeVertexBufferWrapper(name); } @Override public ILodContainerUniformBufferWrapper createLodContainerUniformWrapper() { return new BlazeLodUniformBufferWrapper(); } @Override public IDhGenericObjectVertexBufferContainer createGenericVboContainer() { return new BlazeGenericObjectVertexContainer(); } + //endregion + } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/DhTerrainShaderProgram.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/DhTerrainShaderProgram.java index 7650d25aa..b150f5593 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/DhTerrainShaderProgram.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/DhTerrainShaderProgram.java @@ -19,18 +19,14 @@ package com.seibel.distanthorizons.common.render.nativeGl; -import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass; -import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiFramebuffer; import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShaderProgram; import com.seibel.distanthorizons.api.methods.events.abstractEvents.*; import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam; -import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiTextureCreatedParam; import com.seibel.distanthorizons.api.objects.math.DhApiVec3f; import com.seibel.distanthorizons.common.render.nativeGl.glObject.GLProxy; import com.seibel.distanthorizons.common.render.nativeGl.glObject.buffer.GLVertexBuffer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.buffer.QuadElementBuffer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderProgram; -import com.seibel.distanthorizons.common.render.nativeGl.glObject.texture.*; import com.seibel.distanthorizons.common.render.nativeGl.glObject.vertexAttribute.AbstractVertexAttribute; import com.seibel.distanthorizons.common.render.nativeGl.glObject.vertexAttribute.VertexAttributePostGL43; import com.seibel.distanthorizons.common.render.nativeGl.glObject.vertexAttribute.VertexAttributePreGL43; @@ -42,23 +38,19 @@ import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodBufferContainer; import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodQuadBuilder; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; -import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; -import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos; import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.util.math.Vec3d; import com.seibel.distanthorizons.core.util.math.Vec3f; import com.seibel.distanthorizons.core.util.objects.SortedArraySet; -import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IProfilerWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IIrisAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.IVertexBufferWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhTerrainRenderer; import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector; -import com.seibel.distanthorizons.coreapi.DependencyInjection.OverrideInjector; import org.lwjgl.opengl.GL32; /** @@ -330,7 +322,20 @@ public class DhTerrainShaderProgram extends ShaderProgram implements IDhApiShade for (int lodIndex = 0; lodIndex < bufferContainers.size(); lodIndex++) { LodBufferContainer bufferContainer = bufferContainers.get(lodIndex); - this.setShaderProgramMvmOffset(bufferContainer.minCornerBlockPos, OpenGlDhMetaRenderer.INSTANCE.shaderProgramForThisFrame, renderEventParam); + + // set uniforms + { + Vec3d camPos = renderEventParam.exactCameraPosition; + Vec3f modelPos = new Vec3f( + (float) (bufferContainer.minCornerBlockPos.getX() - camPos.x), + (float) (bufferContainer.minCornerBlockPos.getY() - camPos.y), + (float) (bufferContainer.minCornerBlockPos.getZ() - camPos.z)); + + OpenGlDhMetaRenderer.INSTANCE.shaderProgramForThisFrame.bind(); + OpenGlDhMetaRenderer.INSTANCE.shaderProgramForThisFrame.setModelOffsetPos(modelPos); + + ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeBufferRenderEvent.class, new DhApiBeforeBufferRenderEvent.EventParam(renderEventParam, modelPos)); + } IVertexBufferWrapper[] vertexBuffers = (opaquePass ? bufferContainer.vbos : bufferContainer.vbosTransparent); for (int vboIndex = 0; vboIndex < vertexBuffers.length; vboIndex++) @@ -372,24 +377,6 @@ public class DhTerrainShaderProgram extends ShaderProgram implements IDhApiShade } - /** - * the MVM offset is needed so LODs can be rendered anywhere in the MC world - * without running into floating point percision loss. - */ - private void setShaderProgramMvmOffset(DhBlockPos pos, IDhApiShaderProgram shaderProgram, RenderParams renderEventParam) throws IllegalStateException - { - Vec3d camPos = renderEventParam.exactCameraPosition; - Vec3f modelPos = new Vec3f( - (float) (pos.getX() - camPos.x), - (float) (pos.getY() - camPos.y), - (float) (pos.getZ() - camPos.z)); - - shaderProgram.bind(); - shaderProgram.setModelOffsetPos(modelPos); - - ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeBufferRenderEvent.class, new DhApiBeforeBufferRenderEvent.EventParam(renderEventParam, modelPos)); - } - //endregion diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java index 2fb7143f3..579f73b44 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java @@ -7,30 +7,19 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.*; import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam; import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiTextureCreatedParam; import com.seibel.distanthorizons.common.render.nativeGl.glObject.GLProxy; -import com.seibel.distanthorizons.common.render.nativeGl.glObject.buffer.GLVertexBuffer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.buffer.QuadElementBuffer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.texture.*; import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.apply.DhApplyShader; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.config.Config; -import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodBufferContainer; import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodQuadBuilder; -import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; -import com.seibel.distanthorizons.core.pos.blockPos.DhBlockPos; +import com.seibel.distanthorizons.core.render.DhApiRenderProxy; import com.seibel.distanthorizons.core.render.RenderParams; -import com.seibel.distanthorizons.core.util.ColorUtil; -import com.seibel.distanthorizons.core.util.math.Vec3d; -import com.seibel.distanthorizons.core.util.math.Vec3f; -import com.seibel.distanthorizons.core.util.objects.SortedArraySet; -import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; -import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IProfilerWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.AbstractOptifineAccessor; -import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IIrisAccessor; -import com.seibel.distanthorizons.core.wrapperInterfaces.render.objects.IVertexBufferWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhMetaRenderer; import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector; import com.seibel.distanthorizons.coreapi.DependencyInjection.OverrideInjector; @@ -90,7 +79,7 @@ public class OpenGlDhMetaRenderer implements IDhMetaRenderer { boolean firstPass = (renderParams.renderPass == EDhApiRenderPass.OPAQUE - || renderParams.renderPass == EDhApiRenderPass.OPAQUE_AND_TRANSPARENT); + || renderParams.renderPass == EDhApiRenderPass.OPAQUE_AND_TRANSPARENT); if (!this.renderObjectsCreated) { @@ -132,7 +121,7 @@ public class OpenGlDhMetaRenderer implements IDhMetaRenderer { framebuffer = framebufferOverride; } - this.activeFramebufferId = framebuffer.getId(); + this.setActiveFramebufferId(framebuffer.getId()); framebuffer.bind(); @@ -192,16 +181,19 @@ public class OpenGlDhMetaRenderer implements IDhMetaRenderer // set the active textures - this.activeDepthTextureId = this.depthTexture.getTextureId(); + int depthTextureId = this.depthTexture.getTextureId(); + this.setActiveDepthTextureId(depthTextureId); if (this.nullableColorTexture != null) { - this.activeColorTextureId = this.nullableColorTexture.getTextureId(); + int colorTextureId = this.nullableColorTexture.getTextureId(); + this.setActiveColorTextureId(colorTextureId); } else { // get MC's color texture - this.activeColorTextureId = GL32.glGetFramebufferAttachmentParameteri(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0, GL32.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); + int colorTextureId = GL32.glGetFramebufferAttachmentParameteri(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0, GL32.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); + this.setActiveColorTextureId(colorTextureId); } @@ -432,12 +424,23 @@ public class OpenGlDhMetaRenderer implements IDhMetaRenderer //===============// //region + public void setActiveFramebufferId(int id) { this.activeFramebufferId = id; } /** @return -1 if no frame buffer has been bound yet */ public int getActiveFramebufferId() { return this.activeFramebufferId; } + public void setActiveColorTextureId(int id) + { + this.activeColorTextureId = id; + DhApiRenderProxy.activeOpenGlDhColorTextureId = id; + } /** @return -1 if no texture has been bound yet */ public int getActiveColorTextureId() { return this.activeColorTextureId; } + public void setActiveDepthTextureId(int id) + { + this.activeDepthTextureId = id; + DhApiRenderProxy.activeOpenGlDhDepthTextureId = id; + } /** @return -1 if no texture has been bound yet */ public int getActiveDepthTextureId() { return this.activeDepthTextureId; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhRenderApiDefinition.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhRenderApiDefinition.java index a00fa7236..f86222d66 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhRenderApiDefinition.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhRenderApiDefinition.java @@ -18,11 +18,24 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.*; public class OpenGlDhRenderApiDefinition extends AbstractDhRenderApiDefinition { + //=========// + // getters // + //=========// + //region public String getApiName() { return "OpenGL"; } + //endregion + + + + //============// + // singletons // + //============// + //region + @Override public IDhMetaRenderer getMetaRenderer() { return OpenGlDhMetaRenderer.INSTANCE; } - @Override public IDhTerrainRenderer getTerrainRenderer() { return DhTerrainShaderProgram.INSTANCE; } // TODO how to support Iris? + @Override public IDhTerrainRenderer getTerrainRenderer() { return DhTerrainShaderProgram.INSTANCE; } @Override public IDhSsaoRenderer getSsaoRenderer() { return DhSSAORenderer.INSTANCE; } @Override public IDhFogRenderer getFogRenderer() { return DhFogRenderer.INSTANCE; } @Override public IDhFarFadeRenderer getFarFadeRenderer() { return DhFarFadeRenderer.INSTANCE; } @@ -31,13 +44,23 @@ public class OpenGlDhRenderApiDefinition extends AbstractDhRenderApiDefinition @Override public IDhVanillaFadeRenderer getVanillaFadeRenderer() { return VanillaFadeRenderer.INSTANCE; } @Override public IDhTestTriangleRenderer getTestTriangleRenderer() { return GlTestTriangleRenderer.INSTANCE; } - @Override public IDhGenericRenderer createGenericRenderer() { return OpenGlGenericObjectRenderer.INSTANCE; } + //endregion + + //===========// + // factories // + //===========// + //region + + @Override public IDhGenericRenderer createGenericRenderer() { return OpenGlGenericObjectRenderer.INSTANCE; } + @Override public IVertexBufferWrapper createVboWrapper(String name) { return new GLVertexBuffer(); } @Override public ILodContainerUniformBufferWrapper createLodContainerUniformWrapper() { return new OpenGlDummyUniformData(); } @Override public IDhGenericObjectVertexBufferContainer createGenericVboContainer() { return new OpenGlGenericObjectVertexContainer(); } + //endregion + } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/glObject/texture/DhFramebuffer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/glObject/texture/DhFramebuffer.java index ff1369a46..3035e850d 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/glObject/texture/DhFramebuffer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/glObject/texture/DhFramebuffer.java @@ -10,7 +10,6 @@ public class DhFramebuffer implements IDhApiFramebuffer { private static final MinecraftGLWrapper GLMC = MinecraftGLWrapper.INSTANCE; - private final Int2IntMap attachments; private int id; @@ -18,27 +17,21 @@ public class DhFramebuffer implements IDhApiFramebuffer //=============// // constructor // //=============// + //region - public DhFramebuffer() - { - this.id = GL32.glGenFramebuffers(); - - this.attachments = new Int2IntArrayMap(); - } + public DhFramebuffer() { this.id = GL32.glGenFramebuffers(); } /** For internal use by Iris, do not remove. */ - public DhFramebuffer(int id) - { - this.id = id; - - this.attachments = new Int2IntArrayMap(); - } + public DhFramebuffer(int id) { this.id = id; } + + //endregion //=========// // methods // //=========// + //region @Override public void addDepthAttachment(int textureId, boolean isCombinedStencil) @@ -55,7 +48,6 @@ public class DhFramebuffer implements IDhApiFramebuffer this.bind(); GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0 + textureIndex, GL32.GL_TEXTURE_2D, textureId, 0); - this.attachments.put(textureIndex, textureId); } @Override @@ -86,12 +78,19 @@ public class DhFramebuffer implements IDhApiFramebuffer @Override public int getId() { return this.id; } + //endregion + //=============// // API methods // //=============// + //region public boolean overrideThisFrame() { return true; } + //endregion + + + } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java index dada9d870..791722449 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java @@ -19,22 +19,30 @@ package com.seibel.distanthorizons.common.wrappers; +import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi; import com.seibel.distanthorizons.core.wrapperInterfaces.IVersionConstants; -/** - * @author James Seibel - * @version 12-11-2021 - */ public class VersionConstants implements IVersionConstants { public static final VersionConstants INSTANCE = new VersionConstants(); - private VersionConstants() - { - - } + //=============// + // constructor // + //=============// + //region + + private VersionConstants() { } + + //endregion + + + + //=========// + // methods // + //=========// + //region @Override public String getMinecraftVersion() @@ -91,4 +99,18 @@ public class VersionConstants implements IVersionConstants } + @Override + public EDhApiRenderApi getDefaultRenderer() + { + #if MC_VER <= MC_1_21_11 + return EDhApiRenderApi.OPEN_GL; + #else + ERROR MC version constant missing + #endif + } + + //endregion + + + } \ No newline at end of file diff --git a/coreSubProjects b/coreSubProjects index 0362d8917..5b0bf59f0 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 0362d89173523c21bf198e6a7481a8bb75d23290 +Subproject commit 5b0bf59f00d52b72a65e09459a2d6c31242fbc42