diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiColorDepthTextureCreatedEvent.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiColorDepthTextureCreatedEvent.java
new file mode 100644
index 000000000..c67cd547d
--- /dev/null
+++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiColorDepthTextureCreatedEvent.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the Distant Horizons mod
+ * licensed under the GNU LGPL v3 License.
+ *
+ * Copyright (C) 2020-2023 James Seibel
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package com.seibel.distanthorizons.api.methods.events.abstractEvents;
+
+import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
+import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
+
+/**
+ * Called whenever Distant Horizons (re)creates
+ * the color and depth textures it renders to.
+ *
+ * @author James Seibel
+ * @version 2024-3-2
+ * @since API 1.1.0
+ */
+public abstract class DhApiColorDepthTextureCreatedEvent implements IDhApiEvent
+{
+ /** Fired before Distant Horizons creates. */
+ public abstract void onResize(DhApiEventParam event);
+
+
+ //=========================//
+ // internal DH API methods //
+ //=========================//
+
+ @Override
+ public final void fireEvent(DhApiEventParam event) { this.onResize(event); }
+
+
+ //==================//
+ // parameter object //
+ //==================//
+
+ public static class EventParam
+ {
+ /** Measured in pixels */
+ public final int previousWidth;
+ /** Measured in pixels */
+ public final int previousHeight;
+
+ /** Measured in pixels */
+ public final int newWidth;
+ /** Measured in pixels */
+ public final int newHeight;
+
+
+ public EventParam(
+ int previousWidth, int previousHeight,
+ int newWidth, int newHeight)
+ {
+ this.previousWidth = previousWidth;
+ this.previousHeight = previousHeight;
+
+ this.newWidth = newWidth;
+ this.newHeight = newHeight;
+
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiScreenResizeEvent.java b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiScreenResizeEvent.java
index 64407bb5c..2fdad3b66 100644
--- a/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiScreenResizeEvent.java
+++ b/api/src/main/java/com/seibel/distanthorizons/api/methods/events/abstractEvents/DhApiScreenResizeEvent.java
@@ -23,13 +23,13 @@ import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
/**
- * Called before Distant Horizons starts rendering a buffer.
- * This event cannot be cancelled, use {@link DhApiBeforeRenderEvent} if you want to cancel rendering.
+ * TODO remove
*
* @author James Seibel
* @version 2023-1-23
* @since API 1.1.0
*/
+@Deprecated // TODO remove before stable release and write a merge request for Iris
public abstract class DhApiScreenResizeEvent implements IDhApiEvent
{
/** Fired immediately before Distant Horizons handles the screen resize. */
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 bd3e4eea1..40986bd19 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
@@ -19,7 +19,6 @@
package com.seibel.distanthorizons.core.render.renderer;
-import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass;
import com.seibel.distanthorizons.api.enums.rendering.EFogDrawMode;
import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiFramebuffer;
import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShaderProgram;
@@ -41,7 +40,6 @@ import com.seibel.distanthorizons.core.render.glObject.buffer.GLVertexBuffer;
import com.seibel.distanthorizons.core.render.glObject.buffer.QuadElementBuffer;
import com.seibel.distanthorizons.core.render.glObject.texture.*;
import com.seibel.distanthorizons.core.render.renderer.shaders.*;
-import com.seibel.distanthorizons.core.util.RenderUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IProfilerWrapper;
@@ -57,8 +55,6 @@ import com.seibel.distanthorizons.coreapi.util.math.Mat4f;
import com.seibel.distanthorizons.coreapi.util.math.Vec3d;
import com.seibel.distanthorizons.coreapi.util.math.Vec3f;
import org.apache.logging.log4j.LogManager;
-import org.joml.Matrix4f;
-import org.joml.Matrix4fc;
import org.lwjgl.opengl.GL32;
import java.awt.*;
@@ -749,6 +745,14 @@ public class LodRenderer
this.cachedHeight = MC_RENDER.getTargetFrameBufferViewportHeight();
+ // TODO add on texture (re)created event
+ // https://discord.com/channels/881614130614767666/1211290858134052894/1211431000580554752
+ ApiEventInjector.INSTANCE.fireAllEvents(DhApiColorDepthTextureCreatedEvent.class,
+ new DhApiColorDepthTextureCreatedEvent.EventParam(
+ oldWidth, oldHeight,
+ this.cachedWidth, this.cachedHeight
+ ));
+
ApiEventInjector.INSTANCE.fireAllEvents(DhApiScreenResizeEvent.class,
new DhApiScreenResizeEvent.EventParam(
oldWidth, oldHeight,