document openGL interfaces not used on Blaze3D

Also add API logic to determine if DH is handling the rendering natively or using an interpretation layer
This commit is contained in:
James Seibel
2026-05-19 21:52:11 -05:00
parent c81dc83bb1
commit 9db045d614
8 changed files with 120 additions and 16 deletions
@@ -19,9 +19,21 @@
package com.seibel.distanthorizons.api.interfaces.override.rendering;
import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi;
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
/**
* <b>Note: </b><br>
* This is only used if Distant Horizons'
* {@link IDhApiRenderProxy#getRenderingApi()} returns {@link EDhApiRenderApi#OPEN_GL}
* and {@link IDhApiRenderProxy#isNativeRenderer()} returns true.
* ie this is only used when DH is doing native OpenGL rendering,
* if DH is using Blaze3D this interface will be ignored.
*
* @see IDhApiRenderProxy#getRenderingApi()
* @see IDhApiRenderProxy#isNativeRenderer()
*
* @author James Seibel
* @version 2024-1-24
* @since API 2.0.0
@@ -19,7 +19,9 @@
package com.seibel.distanthorizons.api.interfaces.override.rendering;
import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi;
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderableBoxGroup;
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
import com.seibel.distanthorizons.api.objects.math.DhApiVec3d;
@@ -27,7 +29,16 @@ import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBox;
import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBoxGroupShading;
/**
* <b>Note: </b><br>
* This is only used if Distant Horizons'
* {@link IDhApiRenderProxy#getRenderingApi()} returns {@link EDhApiRenderApi#OPEN_GL}
* and {@link IDhApiRenderProxy#isNativeRenderer()} returns true.
* ie this is only used when DH is doing native OpenGL rendering,
* if DH is using Blaze3D this interface will be ignored.
*
* @see IDhApiShaderProgram
* @see IDhApiRenderProxy#getRenderingApi()
* @see IDhApiRenderProxy#isNativeRenderer()
*
* @author James Seibel
* @version 2024-7-11
@@ -19,12 +19,23 @@
package com.seibel.distanthorizons.api.interfaces.override.rendering;
import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi;
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
import com.seibel.distanthorizons.api.objects.math.DhApiVec3f;
/**
* <b>Note: </b><br>
* This is only used if Distant Horizons'
* {@link IDhApiRenderProxy#getRenderingApi()} returns {@link EDhApiRenderApi#OPEN_GL}
* and {@link IDhApiRenderProxy#isNativeRenderer()} returns true.
* ie this is only used when DH is doing native OpenGL rendering,
* if DH is using Blaze3D this interface will be ignored.
*
* @see IDhApiGenericObjectShaderProgram
* @see IDhApiRenderProxy#getRenderingApi()
* @see IDhApiRenderProxy#isNativeRenderer()
*
* @author James Seibel
* @version 2024-1-24
@@ -19,6 +19,8 @@
package com.seibel.distanthorizons.api.interfaces.render;
import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi;
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDhInitEvent;
import com.seibel.distanthorizons.api.objects.DhApiResult;
@@ -44,6 +46,34 @@ public interface IDhApiRenderProxy
*/
DhApiResult<Boolean> clearRenderDataCache();
/**
* Returns which specific {@link EDhApiRenderApi}
* Distant Horizons will use for rendering. <br>
* Will not return {@link EDhApiRenderApi#AUTO}.<br>
*
* @throws IllegalStateException if no renderer has been bound yet,
* wait till after {@link DhApiAfterDhInitEvent} has been fired
*
* @see DhApiAfterDhInitEvent
* @since API 7.0.0
*/
EDhApiRenderApi getRenderingApi() throws IllegalStateException;
/**
* Returns true if the current renderer
* is calling the base rendering API's method calls. <br>
* ie GL.drawArrays() for OpenGL. <Br><br>
*
* If DH is using a rendering interpretation layer like Blaze3D (Mojang's rendering API)
* this will return false.
*
* @throws IllegalStateException if no renderer has been bound yet,
* wait till after {@link DhApiAfterDhInitEvent} has been fired
*
* @see DhApiAfterDhInitEvent
* @since API 7.0.0
*/
boolean isNativeRenderer() throws IllegalStateException;
//=======================//