diff --git a/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java b/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java index f2f0e2c7c..2dff42bd3 100644 --- a/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java +++ b/api/src/main/java/com/seibel/distanthorizons/coreapi/ModInfo.java @@ -34,7 +34,7 @@ public final class ModInfo public static final String NAME = "DistantHorizons"; /** Human-readable version of NAME */ public static final String READABLE_NAME = "Distant Horizons"; - public static final String VERSION = "2.0.0-a-dev"; + public static final String VERSION = "2.0.1-a-dev"; /** Returns true if the current build is an unstable developer build, false otherwise. */ public static boolean IS_DEV_BUILD = VERSION.toLowerCase().contains("dev"); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/ConfigBase.java b/core/src/main/java/com/seibel/distanthorizons/core/config/ConfigBase.java index f466ab1d2..6980d531f 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/ConfigBase.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/ConfigBase.java @@ -26,10 +26,12 @@ import com.seibel.distanthorizons.core.config.types.ConfigCategory; import com.seibel.distanthorizons.core.config.types.ConfigEntry; import com.seibel.distanthorizons.core.config.types.ConfigLinkedEntry; import com.seibel.distanthorizons.core.wrapperInterfaces.config.ILangWrapper; +import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftSharedWrapper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.lang.reflect.Field; +import java.nio.file.Path; import java.util.*; /** @@ -69,7 +71,7 @@ public class ConfigBase *
{@link String} *
*
// Below, "T" should be a value from above - *
// Note: This is not checked, so we trust that you are doing the right thing + *
// Note: This is not checked, so we trust that you are doing the right thing (TODO: Check it) *
List *
ArrayList *
Map @@ -98,7 +100,20 @@ public class ConfigBase public final List> entries = new ArrayList<>(); + public ConfigBase(String modID, String modName, Class config) + { + this(modID, modName, config, getConfigPath(modName), -1); + } + public ConfigBase(String modID, String modName, Class config, Path configPath) + { + this(modID, modName, config, configPath, -1); + } public ConfigBase(String modID, String modName, Class config, int configVersion) + { + this(modID, modName, config, getConfigPath(modName), configVersion); + } + + public ConfigBase(String modID, String modName, Class config, Path configPath, int configVersion) { this.LOGGER = LogManager.getLogger(this.getClass().getSimpleName() + ", " + modID); @@ -110,7 +125,7 @@ public class ConfigBase initNestedClass(config, ""); // Init root category // File handling (load from file) - this.configFileINSTANCE = new ConfigFileHandling(this); + this.configFileINSTANCE = new ConfigFileHandling(this, configPath); this.configFileINSTANCE.loadFromFile(); isLoaded = true; @@ -171,6 +186,12 @@ public class ConfigBase } + /** Gets the default config path given a mod name */ + public static Path getConfigPath(String modName) + { + return SingletonInjector.INSTANCE.get(IMinecraftSharedWrapper.class) + .getInstallationDirectory().toPath().resolve("config").resolve(modName + ".toml"); + } /** diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandling.java b/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandling.java index e9c403212..b63d5cae1 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandling.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/file/ConfigFileHandling.java @@ -49,15 +49,13 @@ public class ConfigFileHandling /** This is the object for night-config */ private final CommentedFileConfig nightConfig; - public ConfigFileHandling(ConfigBase configBase) + public ConfigFileHandling(ConfigBase configBase, Path configPath) { this.LOGGER = LogManager.getLogger(this.getClass().getSimpleName() + ", " + configBase.modID); this.configBase = configBase; + this.configPath = configPath; - configPath = SingletonInjector.INSTANCE.get(IMinecraftSharedWrapper.class) - .getInstallationDirectory().toPath().resolve("config").resolve(this.configBase.modName + ".toml"); - - this.nightConfig = CommentedFileConfig.builder(configPath.toFile()).build(); + this.nightConfig = CommentedFileConfig.builder(this.configPath.toFile()).build(); } /** Saves the entire config to the file */ @@ -105,7 +103,38 @@ public class ConfigFileHandling */ public void loadFromFile() { + int currentCfgVersion = configBase.configVersion; + try + { + // Dont load the real `this.nightConfig`, instead create a tempoary one + CommentedFileConfig tmpNightConfig = CommentedFileConfig.builder(this.configPath.toFile()).build(); + tmpNightConfig.load(); + // Attempt to get the version number + currentCfgVersion = (Integer) tmpNightConfig.get("_version"); + tmpNightConfig.close(); + } catch (Exception e) {e.printStackTrace();} + + if (currentCfgVersion == configBase.configVersion) + {} + else if (currentCfgVersion > configBase.configVersion) + { + LOGGER.warn("Found config version [" + String.valueOf(currentCfgVersion) + "] which is newer than current mods config version of [" + String.valueOf(configBase.configVersion) + "]. You may have downgraded the mod and items may have been moved, you have been warned"); + } + else // if (currentCfgVersion < configBase.configVersion) + { + LOGGER.warn(configBase.modName +" config is of an older version, currently there is no config updater... so resetting config"); + try + { + Files.delete(configPath); + } + catch (Exception e) + { + LOGGER.error(e); + } + } + loadFromFile(nightConfig); + nightConfig.set("_version", configBase.configVersion); } /** * Loads the entire config from the file @@ -122,7 +151,6 @@ public class ConfigFileHandling else { reCreateFile(configPath); - return; } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/GitlabGetter.java b/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/GitlabGetter.java index 3ec49a9d4..1d3f5668b 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/GitlabGetter.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/GitlabGetter.java @@ -39,7 +39,7 @@ public class GitlabGetter public final String projectID; /** Combines the {@link GitlabGetter#GitlabApi} and {@link GitlabGetter#projectID} into one var (Followed by a "/" at the end) */ public final String GitProjID; - public ArrayList projectPipelines; + public ArrayList projectPipelines = new ArrayList<>(); /** Commit sha; Commit info */ private static final Map commitInfo = new HashMap<>(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/MarkdownFormatter.java b/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/MarkdownFormatter.java index 15129bad7..6b9d6b618 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/MarkdownFormatter.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/jar/installer/MarkdownFormatter.java @@ -89,7 +89,7 @@ public class MarkdownFormatter @Override public String convertTo(String original) { - original = original.replaceAll("
", "\n"); // New lines + original = original.replaceAll("
|
", "\n"); // New lines original = replaceRegex(original, "\\*\\*", "§l", "§r"); // Bold original = replaceRegex(original, "~~", "§m", "§r"); // Striketrough // original = replaceRegex(original, "_", "§n", "§r"); // Italic diff --git a/core/src/main/java/com/seibel/distanthorizons/core/jar/updater/SelfUpdater.java b/core/src/main/java/com/seibel/distanthorizons/core/jar/updater/SelfUpdater.java index 88431fd46..6f5894d93 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/jar/updater/SelfUpdater.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/jar/updater/SelfUpdater.java @@ -80,15 +80,22 @@ public class SelfUpdater } boolean returnValue = false; - switch (Config.Client.Advanced.AutoUpdater.updateBranch.get()) + try { - case STABLE: - returnValue = onStableStart(); - break; - case NIGHTLY: - returnValue = onNightlyStart(); - break; - }; + switch (Config.Client.Advanced.AutoUpdater.updateBranch.get()) + { + case STABLE: + returnValue = onStableStart(); + break; + case NIGHTLY: + returnValue = onNightlyStart(); + break; + }; + } + catch (Exception e) // Shouldn't be needed, but just in case + { + LOGGER.warn(e); + } return returnValue; } @@ -373,7 +380,9 @@ public class SelfUpdater } catch (Exception e) { - LOGGER.warn("Failed to delete previous " + ModInfo.READABLE_NAME + " file, please delete it manually at [" + JarUtils.jarFile + "]", e); + LOGGER.warn("Failed to delete old jar using bootstrap method, doing backup 'Files.deleteOnExit()' method", e); + JarUtils.jarFile.deleteOnExit(); + LOGGER.warn("If the old DH file didnt delete, delete it manually at [" + JarUtils.jarFile + "]"); } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/GLState.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/GLState.java index 0b25f703b..f863e8e09 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/GLState.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/GLState.java @@ -36,6 +36,9 @@ public class GLState public int activeTextureNumber; public int texture0; public int texture1; + public int frameBufferTexture0; + public int frameBufferTexture1; + public int frameBufferDepthTexture; public boolean blend; public int blendEqRGB; public int blendEqAlpha; @@ -82,6 +85,10 @@ public class GLState GL32.glActiveTexture(this.activeTextureNumber); + this.frameBufferTexture0 = GL32.glGetFramebufferAttachmentParameteri(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0, GL32.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); + this.frameBufferTexture1 = GL32.glGetFramebufferAttachmentParameteri(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT1, GL32.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); + this.frameBufferDepthTexture = GL32.glGetFramebufferAttachmentParameteri(GL32.GL_FRAMEBUFFER, GL32.GL_DEPTH_ATTACHMENT, GL32.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME); + this.blend = GL32.glIsEnabled(GL32.GL_BLEND); this.blendEqRGB = GL32.glGetInteger(GL32.GL_BLEND_EQUATION_RGB); this.blendEqAlpha = GL32.glGetInteger(GL32.GL_BLEND_EQUATION_ALPHA); @@ -109,6 +116,9 @@ public class GLState return "GLState{" + "program=" + this.program + ", vao=" + this.vao + ", vbo=" + this.vbo + ", ebo=" + this.ebo + ", fbo=" + this.fbo[0] + ", text=" + GLEnums.getString(this.texture2D) + "@" + this.activeTextureNumber + ", text0=" + GLEnums.getString(this.texture0) + + ", FB text0=" + this.frameBufferTexture0 + + ", FB text1=" + this.frameBufferTexture1 + + ", FB depth=" + this.frameBufferDepthTexture + ", blend=" + this.blend + ", blendMode=" + GLEnums.getString(this.blendSrcColor) + "," + GLEnums.getString(this.blendDstColor) + ", depth=" + this.depth + ", depthFunc=" + GLEnums.getString(this.depthFunc) + ", stencil=" + this.stencil + ", stencilFunc=" + @@ -155,6 +165,10 @@ public class GLState GL32.glActiveTexture(this.activeTextureNumber); GL32.glBindTexture(GL32.GL_TEXTURE_2D, GL32.glIsTexture(this.texture2D) ? this.texture2D : 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0, GL32.GL_TEXTURE_2D, this.frameBufferTexture0, 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT1, GL32.GL_TEXTURE_2D, this.frameBufferTexture1, 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_DEPTH_ATTACHMENT, GL32.GL_TEXTURE_2D, this.frameBufferDepthTexture, 0); + GL32.glBindVertexArray(GL32.glIsVertexArray(this.vao) ? this.vao : 0); GL32.glBindBuffer(GL32.GL_ARRAY_BUFFER, GL32.glIsBuffer(this.vbo) ? this.vbo : 0); GL32.glBindBuffer(GL32.GL_ELEMENT_ARRAY_BUFFER, GL32.glIsBuffer(this.ebo) ? this.ebo: 0); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhColorTexture.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhColorTexture.java index 20ad508b6..164c9c2eb 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhColorTexture.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhColorTexture.java @@ -16,7 +16,8 @@ public class DhColorTexture private int height; private boolean isValid; - private final int texture; + /** AKA, the OpenGL name of this texture */ + private final int id; private static final ByteBuffer NULL_BUFFER = null; @@ -37,10 +38,10 @@ public class DhColorTexture this.width = builder.width; this.height = builder.height; - this.texture = GL43C.glGenTextures(); + this.id = GL43C.glGenTextures(); boolean isPixelFormatInteger = builder.internalFormat.getPixelFormat().isInteger(); - setupTexture(texture, builder.width, builder.height, !isPixelFormatInteger); + this.setupTexture(this.id, builder.width, builder.height, !isPixelFormatInteger); // Clean up after ourselves // This is strictly defensive to ensure that other buggy code doesn't tamper with our textures @@ -53,9 +54,9 @@ public class DhColorTexture // methods // //=========// - private void setupTexture(int texture, int width, int height, boolean allowsLinear) + private void setupTexture(int id, int width, int height, boolean allowsLinear) { - resizeTexture(texture, width, height); + this.resizeTexture(id, width, height); GL43C.glTexParameteri(GL11C.GL_TEXTURE_2D, GL11C.GL_TEXTURE_MIN_FILTER, allowsLinear ? GL11C.GL_LINEAR : GL11C.GL_NEAREST); GL43C.glTexParameteri(GL11C.GL_TEXTURE_2D, GL11C.GL_TEXTURE_MAG_FILTER, allowsLinear ? GL11C.GL_LINEAR : GL11C.GL_NEAREST); @@ -66,7 +67,7 @@ public class DhColorTexture private void resizeTexture(int texture, int width, int height) { GL43C.glBindTexture(GL43C.GL_TEXTURE_2D, texture); - GL43C.glTexImage2D(GL11C.GL_TEXTURE_2D, 0, internalFormat.getGlFormat(), width, height, 0, format.getGlFormat(), type.getGlFormat(), NULL_BUFFER); + GL43C.glTexImage2D(GL11C.GL_TEXTURE_2D, 0, this.internalFormat.getGlFormat(), width, height, 0, this.format.getGlFormat(), this.type.getGlFormat(), NULL_BUFFER); } void resize(Vector2i textureScaleOverride) { this.resize(textureScaleOverride.x, textureScaleOverride.y); } @@ -74,38 +75,38 @@ public class DhColorTexture // Package private, call CompositeRenderTargets#resizeIfNeeded instead. public void resize(int width, int height) { - requireValid(); + this.throwIfInvalid(); this.width = width; this.height = height; - resizeTexture(texture, width, height); + this.resizeTexture(this.id, width, height); } - public EDhInternalTextureFormat getInternalFormat() { return internalFormat; } + public EDhInternalTextureFormat getInternalFormat() { return this.internalFormat; } - public int getTexture() + public int getTextureId() { - requireValid(); - - return texture; + this.throwIfInvalid(); + return this.id; } - public int getWidth() { return width; } + public int getWidth() { return this.width; } - public int getHeight() { return height; } + public int getHeight() { return this.height; } public void destroy() { - requireValid(); - isValid = false; + this.throwIfInvalid(); + this.isValid = false; - GL43C.glDeleteTextures(texture); + GL43C.glDeleteTextures(this.id); } - private void requireValid() + /** @throws IllegalStateException if the texture isn't valid */ + private void throwIfInvalid() { - if (!isValid) + if (!this.isValid) { throw new IllegalStateException("Attempted to use a deleted composite render target"); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhFramebuffer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhFramebuffer.java index a42062cf4..0cf428597 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhFramebuffer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/glObject/texture/DhFramebuffer.java @@ -2,8 +2,7 @@ package com.seibel.distanthorizons.core.render.glObject.texture; import it.unimi.dsi.fastutil.ints.Int2IntArrayMap; import it.unimi.dsi.fastutil.ints.Int2IntMap; -import org.lwjgl.opengl.GL30C; -import org.lwjgl.opengl.GL43C; +import org.lwjgl.opengl.GL32; // TODO lowercase public class DhFramebuffer @@ -22,11 +21,11 @@ public class DhFramebuffer public DhFramebuffer() { - this.id = GL43C.glGenFramebuffers(); + this.id = GL32.glGenFramebuffers(); this.attachments = new Int2IntArrayMap(); - this.maxDrawBuffers = GL43C.glGetInteger(GL30C.GL_MAX_DRAW_BUFFERS); - this.maxColorAttachments = GL43C.glGetInteger(GL30C.GL_MAX_COLOR_ATTACHMENTS); + this.maxDrawBuffers = GL32.glGetInteger(GL32.GL_MAX_DRAW_BUFFERS); + this.maxColorAttachments = GL32.glGetInteger(GL32.GL_MAX_COLOR_ATTACHMENTS); this.hasDepthAttachment = false; } @@ -36,8 +35,8 @@ public class DhFramebuffer this.id = id; this.attachments = new Int2IntArrayMap(); - this.maxDrawBuffers = GL43C.glGetInteger(GL30C.GL_MAX_DRAW_BUFFERS); - this.maxColorAttachments = GL43C.glGetInteger(GL30C.GL_MAX_COLOR_ATTACHMENTS); + this.maxDrawBuffers = GL32.glGetInteger(GL32.GL_MAX_DRAW_BUFFERS); + this.maxColorAttachments = GL32.glGetInteger(GL32.GL_MAX_COLOR_ATTACHMENTS); this.hasDepthAttachment = false; } @@ -53,11 +52,11 @@ public class DhFramebuffer if (depthBufferFormat.isCombinedStencil()) { - GL43C.glFramebufferTexture2D(GL30C.GL_FRAMEBUFFER, GL30C.GL_DEPTH_STENCIL_ATTACHMENT, GL30C.GL_TEXTURE_2D, texture, 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_DEPTH_STENCIL_ATTACHMENT, GL32.GL_TEXTURE_2D, texture, 0); } else { - GL43C.glFramebufferTexture2D(GL30C.GL_FRAMEBUFFER, GL30C.GL_DEPTH_ATTACHMENT, GL30C.GL_TEXTURE_2D, texture, 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_DEPTH_ATTACHMENT, GL32.GL_TEXTURE_2D, texture, 0); } this.hasDepthAttachment = true; @@ -68,14 +67,14 @@ public class DhFramebuffer int fb = id; bind(); - GL43C.glFramebufferTexture2D(GL30C.GL_FRAMEBUFFER, GL30C.GL_COLOR_ATTACHMENT0 + index, GL30C.GL_TEXTURE_2D, texture, 0); + GL32.glFramebufferTexture2D(GL32.GL_FRAMEBUFFER, GL32.GL_COLOR_ATTACHMENT0 + index, GL32.GL_TEXTURE_2D, texture, 0); attachments.put(index, texture); } public void noDrawBuffers() { bind(); - GL43C.glDrawBuffers(new int[]{GL30C.GL_NONE}); + GL32.glDrawBuffers(new int[]{GL32.GL_NONE}); } public void drawBuffers(int[] buffers) @@ -94,17 +93,17 @@ public class DhFramebuffer throw new IllegalArgumentException("Only " + maxColorAttachments + " color attachments are supported on this GPU, but an attempt was made to write to a color attachment with index " + buffer); } - glBuffers[index++] = GL30C.GL_COLOR_ATTACHMENT0 + buffer; + glBuffers[index++] = GL32.GL_COLOR_ATTACHMENT0 + buffer; } bind(); - GL43C.glDrawBuffers(new int[]{GL30C.GL_NONE}); + GL32.glDrawBuffers(new int[]{GL32.GL_NONE}); } public void readBuffer(int buffer) { bind(); - GL43C.glReadBuffer(GL30C.GL_COLOR_ATTACHMENT0 + buffer); + GL32.glReadBuffer(GL32.GL_COLOR_ATTACHMENT0 + buffer); } public int getColorAttachment(int index) { return attachments.get(index); } @@ -117,23 +116,23 @@ public class DhFramebuffer { throw new IllegalStateException("Framebuffer does not exist!"); } - GL43C.glBindFramebuffer(GL30C.GL_FRAMEBUFFER, id); + GL32.glBindFramebuffer(GL32.GL_FRAMEBUFFER, id); } - public void bindAsReadBuffer() { GL43C.glBindFramebuffer(GL30C.GL_READ_FRAMEBUFFER, id); } + public void bindAsReadBuffer() { GL32.glBindFramebuffer(GL32.GL_READ_FRAMEBUFFER, id); } - public void bindAsDrawBuffer() { GL43C.glBindFramebuffer(GL30C.GL_DRAW_FRAMEBUFFER, id); } + public void bindAsDrawBuffer() { GL32.glBindFramebuffer(GL32.GL_DRAW_FRAMEBUFFER, id); } public void destroyInternal() { - GL43C.glDeleteFramebuffers(id); + GL32.glDeleteFramebuffers(id); this.id = -1; } public int getStatus() { bind(); - int status = GL43C.glCheckFramebufferStatus(GL30C.GL_FRAMEBUFFER); + int status = GL32.glCheckFramebufferStatus(GL32.GL_FRAMEBUFFER); return status; } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java index 7d66d66c6..840c35abc 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java @@ -212,9 +212,10 @@ public class LodRenderer } } - public void resize(int width, int height) { - colorTexture.resize(width, height); - depthTexture.resize(width, height, EDhDepthBufferFormat.DEPTH32F); + public void resize(int width, int height) + { + this.colorTexture.resize(width, height); + this.depthTexture.resize(width, height, EDhDepthBufferFormat.DEPTH32F); } @@ -292,15 +293,16 @@ public class LodRenderer } } - if (MC_RENDER.getTargetFrameBufferViewportWidth() != cachedWidth || MC_RENDER.getTargetFrameBufferViewportHeight() != cachedHeight) { + if (MC_RENDER.getTargetFrameBufferViewportWidth() != this.cachedWidth || MC_RENDER.getTargetFrameBufferViewportHeight() != this.cachedHeight) + { this.cachedWidth = MC_RENDER.getTargetFrameBufferViewportWidth(); this.cachedHeight = MC_RENDER.getTargetFrameBufferViewportHeight(); - resize(cachedWidth, cachedHeight); + this.resize(this.cachedWidth, this.cachedHeight); } this.setActiveFramebufferId(framebuffer.getId()); this.setActiveDepthTextureId(depthTexture.getTextureId()); - this.setActiveColorTextureId(colorTexture.getTexture()); + this.setActiveColorTextureId(colorTexture.getTextureId()); // Bind LOD frame buffer this.framebuffer.bind(); @@ -548,13 +550,13 @@ public class LodRenderer .build(); this.depthTexture = new DHDepthTexture(MC_RENDER.getTargetFrameBufferViewportWidth(), MC_RENDER.getTargetFrameBufferViewportHeight(), EDhDepthBufferFormat.DEPTH32F); - this.framebuffer.addDepthAttachment(depthTexture.getTextureId(), EDhDepthBufferFormat.DEPTH32F); - this.framebuffer.addColorAttachment(0, colorTexture.getTexture()); + this.framebuffer.addDepthAttachment(this.depthTexture.getTextureId(), EDhDepthBufferFormat.DEPTH32F); + this.framebuffer.addColorAttachment(0, this.colorTexture.getTextureId()); this.cachedWidth = MC_RENDER.getTargetFrameBufferViewportWidth(); this.cachedHeight = MC_RENDER.getTargetFrameBufferViewportHeight(); - if(framebuffer.getStatus() != GL32.GL_FRAMEBUFFER_COMPLETE) + if(this.framebuffer.getStatus() != GL32.GL_FRAMEBUFFER_COMPLETE) { // This generally means something wasn't bound, IE missing either the color or depth texture tickLogger.warn("FrameBuffer ["+this.framebuffer.getId()+"] isn't complete."); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java index 7ca801e3f..fd0ee2371 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java @@ -76,7 +76,8 @@ public interface IMinecraftRenderWrapper extends IBindable int getScreenHeight(); /** @return -1 if no valid framebuffer is available yet */ - int getTargetFrameBuffer(); + int getTargetFrameBuffer(); // Note: Iris is now hooking onto this for DH + Iris compat, try not to change (unless we wanna deal with some annoyances) + // Iris commit: https://github.com/IrisShaders/Iris/commit/a76a240527e93780bbcba57c09bef377419d47a7#diff-7b9ded0c79bbcdb130010373387756a28ee8d3640d522c0a5b7acd0abbfc20aeR16 int getDepthTextureId(); int getTargetFrameBufferViewportWidth(); int getTargetFrameBufferViewportHeight();