diff --git a/DHApi.jar b/DistantHorizons-forge-2.0.4-a-dev-1.20.1.jar similarity index 84% rename from DHApi.jar rename to DistantHorizons-forge-2.0.4-a-dev-1.20.1.jar index 56752d5b31..4577e2e7da 100644 Binary files a/DHApi.jar and b/DistantHorizons-forge-2.0.4-a-dev-1.20.1.jar differ diff --git a/build.gradle b/build.gradle index dc14f75fa0..64b4c7caf3 100644 --- a/build.gradle +++ b/build.gradle @@ -48,6 +48,13 @@ sourceSets { } } + dhCompatibility { + java { + compileClasspath += main.compileClasspath + compileClasspath += main.output + } + } + sodiumCompatibility { java { compileClasspath += main.compileClasspath @@ -72,6 +79,7 @@ loom { sourceSet sourceSets.main sourceSet sourceSets.vendored sourceSet sourceSets.sodiumCompatibility + sourceSet sourceSets.dhCompatibility } } } @@ -108,7 +116,7 @@ dependencies { forge "net.neoforged:forge:${minecraft_version}-${forge_version}" modImplementation "org.embeddedt:embeddium-${minecraft_version}:${embeddium_version}" - modCompileOnly(files("DHApi.jar")) + modCompileOnly(files("DistantHorizons-forge-2.0.4-a-dev-1.20.1.jar")) forgeRuntimeLibrary(implementation(shadow(project(path: ":glsl-relocated", configuration: "bundledJar")))) { transitive = false @@ -147,6 +155,7 @@ remapJar { jar { from sourceSets.sodiumCompatibility.output + from sourceSets.dhCompatibility.output from sourceSets.vendored.output from sourceSets.desktop.output } @@ -157,6 +166,7 @@ java { sourcesJar { from sourceSets.sodiumCompatibility.allSource + from sourceSets.dhCompatibility.allSource from sourceSets.vendored.allSource from sourceSets.desktop.allSource } diff --git a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/IDhApiOverrideable.java b/src/main/java/com/seibel/distanthorizons/api/interfaces/override/IDhApiOverrideable.java deleted file mode 100644 index b69170a941..0000000000 --- a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/IDhApiOverrideable.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.interfaces.override; - -import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable; -import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IOverrideInjector; - -/** - * Implemented by all DhApi objects that can be overridden. - * - * @author James Seibel - * @version 2022-9-5 - * @since API 1.0.0 - */ -public interface IDhApiOverrideable extends IBindable { - /** - * Higher (larger numerical) priorities override lower (smaller numerical) priorities.
- * For most developers this can be left at the default. - * - * @return The priority of this interface, the lowest legal value is {@link IOverrideInjector#MIN_NON_CORE_OVERRIDE_PRIORITY}. - */ - default int getPriority() { - return IOverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY; - } - -} diff --git a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiCullingFrustum.java b/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiCullingFrustum.java deleted file mode 100644 index 85217a86af..0000000000 --- a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiCullingFrustum.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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.interfaces.override.rendering; - -import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel; -import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable; -import com.seibel.distanthorizons.coreapi.util.math.Mat4f; - -/** - * Used to determine if a LOD should be rendered or is outside the - * user's field of view. - * - * @author James Seibel - * @version 2024-2-6 - * @since API 1.1.0 - */ -public interface IDhApiCullingFrustum extends IDhApiOverrideable { - - /** - * Called before a render pass is done. - * - * @param worldMinBlockY the lowest block position this level allows. - * @param worldMaxBlockY the highest block position this level allows. - * @param worldViewProjection the projection matrix used in this render pass. - */ - void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection); - - /** - * returns true if the LOD bounds intersect this frustum - * - * @param lodBlockPosMinX this LOD's starting block X position closest to negative infinity - * @param lodBlockPosMinZ this LOD's starting block Z position closest to negative infinity - * @param lodBlockWidth this LOD's width in blocks - * @param lodDetailLevel this LOD's detail level - * @see EDhApiDetailLevel - */ - boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel); - -} diff --git a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiShadowCullingFrustum.java b/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiShadowCullingFrustum.java deleted file mode 100644 index a526cb2ed7..0000000000 --- a/src/main/java/com/seibel/distanthorizons/api/interfaces/override/rendering/IDhApiShadowCullingFrustum.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.interfaces.override.rendering; - -/** - * The culling frustum used during Distant Horizons' shadow pass - * if another mod has enabled Distant Horizons' shadow - * pass via the API. - * - * @author James Seibel - * @version 2024-2-10 - * @see IDhApiCullingFrustum - * @since API 1.1.0 - */ -public interface IDhApiShadowCullingFrustum extends IDhApiCullingFrustum { - // should be identical to the parent culling frustum -} diff --git a/src/main/java/com/seibel/distanthorizons/coreapi/interfaces/dependencyInjection/IBindable.java b/src/main/java/com/seibel/distanthorizons/coreapi/interfaces/dependencyInjection/IBindable.java deleted file mode 100644 index bd32a2cf62..0000000000 --- a/src/main/java/com/seibel/distanthorizons/coreapi/interfaces/dependencyInjection/IBindable.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.coreapi.interfaces.dependencyInjection; - -/** - * Necessary for all singletons that can be dependency injected. - * - * @author James Seibel - * @version 2022-7-16 - */ -public interface IBindable { - /** - * Finish initializing this object.

- *

- * Generally this should just be used for getting other objects through - * dependency injection and is specifically designed to allow - * for circular references.

- *

- * If no circular dependencies are required this method - * doesn't have to be implemented. - */ - default void finishDelayedSetup() { - } - - /** - * Returns if this dependency has been setup yet.

- *

- * If this object doesn't require a delayed setup, this - * method doesn't have to be implemented and should always return true. - */ - default boolean getDelayedSetupComplete() { - return true; - } - -} diff --git a/src/main/java/net/irisshaders/iris/compat/dh/mixin/AdvancedShadowCullingFrustumMixin.java b/src/main/java/net/irisshaders/iris/compat/dh/mixin/AdvancedShadowCullingFrustumMixin.java new file mode 100644 index 0000000000..dee303bd68 --- /dev/null +++ b/src/main/java/net/irisshaders/iris/compat/dh/mixin/AdvancedShadowCullingFrustumMixin.java @@ -0,0 +1,30 @@ +package net.irisshaders.iris.compat.dh.mixin; + +import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; +import com.seibel.distanthorizons.coreapi.util.math.Mat4f; +import net.irisshaders.iris.shadows.frustum.advanced.AdvancedShadowCullingFrustum; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value = AdvancedShadowCullingFrustum.class, remap = false) +public class AdvancedShadowCullingFrustumMixin implements IDhApiShadowCullingFrustum { + @Shadow + private int worldMinYDH; + @Shadow + private int worldMaxYDH; + @Shadow + public int isVisible(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) { + throw new AssertionError(); + } + + @Override + public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { + this.worldMinYDH = worldMinBlockY; + this.worldMaxYDH = worldMaxBlockY; + } + + @Override + public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { + return this.isVisible(lodBlockPosMinX, this.worldMinYDH, lodBlockPosMinZ, lodBlockPosMinX + lodBlockWidth, this.worldMaxYDH, lodBlockPosMinZ + lodBlockWidth) != 0; + } +} diff --git a/src/main/java/net/irisshaders/iris/compat/dh/mixin/BoxCullingFrustumMixin.java b/src/main/java/net/irisshaders/iris/compat/dh/mixin/BoxCullingFrustumMixin.java new file mode 100644 index 0000000000..3caf41da79 --- /dev/null +++ b/src/main/java/net/irisshaders/iris/compat/dh/mixin/BoxCullingFrustumMixin.java @@ -0,0 +1,31 @@ +package net.irisshaders.iris.compat.dh.mixin; + +import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; +import com.seibel.distanthorizons.coreapi.util.math.Mat4f; +import net.irisshaders.iris.shadows.frustum.BoxCuller; +import net.irisshaders.iris.shadows.frustum.fallback.BoxCullingFrustum; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value = BoxCullingFrustum.class, remap = false) +public class BoxCullingFrustumMixin implements IDhApiShadowCullingFrustum { + @Shadow + @Final + protected BoxCuller boxCuller; + @Shadow + private int worldMinYDH; + @Shadow + private int worldMaxYDH; + + @Override + public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { + this.worldMinYDH = worldMinBlockY; + this.worldMaxYDH = worldMaxBlockY; + } + + @Override + public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { + return !boxCuller.isCulled(lodBlockPosMinX, this.worldMinYDH, lodBlockPosMinZ, lodBlockPosMinX + lodBlockWidth, this.worldMaxYDH, lodBlockPosMinZ + lodBlockWidth); + } +} diff --git a/src/main/java/net/irisshaders/iris/compat/dh/mixin/CullEverythingFrustumMixin.java b/src/main/java/net/irisshaders/iris/compat/dh/mixin/CullEverythingFrustumMixin.java new file mode 100644 index 0000000000..1c2de107aa --- /dev/null +++ b/src/main/java/net/irisshaders/iris/compat/dh/mixin/CullEverythingFrustumMixin.java @@ -0,0 +1,19 @@ +package net.irisshaders.iris.compat.dh.mixin; + +import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; +import com.seibel.distanthorizons.coreapi.util.math.Mat4f; +import net.irisshaders.iris.shadows.frustum.CullEverythingFrustum; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(value = CullEverythingFrustum.class, remap = false) +public class CullEverythingFrustumMixin implements IDhApiShadowCullingFrustum { + @Override + public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { + + } + + @Override + public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { + return false; + } +} diff --git a/src/main/java/net/irisshaders/iris/compat/dh/mixin/NonCullingFrustumMixin.java b/src/main/java/net/irisshaders/iris/compat/dh/mixin/NonCullingFrustumMixin.java new file mode 100644 index 0000000000..e942502a13 --- /dev/null +++ b/src/main/java/net/irisshaders/iris/compat/dh/mixin/NonCullingFrustumMixin.java @@ -0,0 +1,19 @@ +package net.irisshaders.iris.compat.dh.mixin; + +import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; +import com.seibel.distanthorizons.coreapi.util.math.Mat4f; +import net.irisshaders.iris.shadows.frustum.fallback.NonCullingFrustum; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(value = NonCullingFrustum.class, remap = false) +public class NonCullingFrustumMixin implements IDhApiShadowCullingFrustum { + @Override + public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { + + } + + @Override + public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { + return true; + } +} diff --git a/src/main/java/net/irisshaders/iris/compat/dh/mixin/OculusDHCompatMixinPlugin.java b/src/main/java/net/irisshaders/iris/compat/dh/mixin/OculusDHCompatMixinPlugin.java new file mode 100644 index 0000000000..4b32916212 --- /dev/null +++ b/src/main/java/net/irisshaders/iris/compat/dh/mixin/OculusDHCompatMixinPlugin.java @@ -0,0 +1,46 @@ +package net.irisshaders.iris.compat.dh.mixin; + +import net.minecraftforge.fml.loading.LoadingModList; +import org.objectweb.asm.tree.ClassNode; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Set; + +public class OculusDHCompatMixinPlugin implements IMixinConfigPlugin { + @Override + public void onLoad(String s) { + + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(String s, String s1) { + return LoadingModList.get().getModFileById("distanthorizons") != null; + } + + @Override + public void acceptTargets(Set set, Set set1) { + + } + + @Override + public List getMixins() { + return null; + } + + @Override + public void preApply(String s, ClassNode classNode, String s1, IMixinInfo iMixinInfo) { + + } + + @Override + public void postApply(String s, ClassNode classNode, String s1, IMixinInfo iMixinInfo) { + + } +} diff --git a/src/main/java/net/irisshaders/iris/shadows/frustum/CullEverythingFrustum.java b/src/main/java/net/irisshaders/iris/shadows/frustum/CullEverythingFrustum.java index 6e7708b5f9..34a9bcbf2f 100644 --- a/src/main/java/net/irisshaders/iris/shadows/frustum/CullEverythingFrustum.java +++ b/src/main/java/net/irisshaders/iris/shadows/frustum/CullEverythingFrustum.java @@ -1,12 +1,10 @@ package net.irisshaders.iris.shadows.frustum; -import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; -import com.seibel.distanthorizons.coreapi.util.math.Mat4f; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.world.phys.AABB; import org.joml.Matrix4f; -public class CullEverythingFrustum extends Frustum implements IDhApiShadowCullingFrustum { +public class CullEverythingFrustum extends Frustum { public CullEverythingFrustum() { super(new Matrix4f(), new Matrix4f()); } @@ -20,14 +18,4 @@ public boolean canDetermineInvisible(double minX, double minY, double minZ, doub public boolean isVisible(AABB box) { return false; } - - @Override - public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { - - } - - @Override - public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { - return false; - } } diff --git a/src/main/java/net/irisshaders/iris/shadows/frustum/advanced/AdvancedShadowCullingFrustum.java b/src/main/java/net/irisshaders/iris/shadows/frustum/advanced/AdvancedShadowCullingFrustum.java index 03b3f2ad1d..4995e9c2a3 100644 --- a/src/main/java/net/irisshaders/iris/shadows/frustum/advanced/AdvancedShadowCullingFrustum.java +++ b/src/main/java/net/irisshaders/iris/shadows/frustum/advanced/AdvancedShadowCullingFrustum.java @@ -1,7 +1,5 @@ package net.irisshaders.iris.shadows.frustum.advanced; -import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; -import com.seibel.distanthorizons.coreapi.util.math.Mat4f; import net.irisshaders.iris.shadows.frustum.BoxCuller; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.world.phys.AABB; @@ -30,7 +28,7 @@ * are not sensitive to the specific internal ordering of planes and corners, in order to avoid potential bugs at the * cost of slightly more computations.

*/ -public class AdvancedShadowCullingFrustum extends Frustum implements IDhApiShadowCullingFrustum { +public class AdvancedShadowCullingFrustum extends Frustum { private static final int MAX_CLIPPING_PLANES = 13; protected final BoxCuller boxCuller; /** @@ -383,15 +381,4 @@ public boolean checkCornerVisibilityBool(float minX, float minY, float minZ, flo return true; } - - @Override - public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { - this.worldMinYDH = worldMinBlockY; - this.worldMaxYDH = worldMaxBlockY; - } - - @Override - public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { - return this.isVisible(lodBlockPosMinX, this.worldMinYDH, lodBlockPosMinZ, lodBlockPosMinX + lodBlockWidth, this.worldMaxYDH, lodBlockPosMinZ + lodBlockWidth) != 0; - } } diff --git a/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/BoxCullingFrustum.java b/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/BoxCullingFrustum.java index 60781cd5d7..bdff5c4a03 100644 --- a/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/BoxCullingFrustum.java +++ b/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/BoxCullingFrustum.java @@ -1,13 +1,11 @@ package net.irisshaders.iris.shadows.frustum.fallback; -import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; -import com.seibel.distanthorizons.coreapi.util.math.Mat4f; import net.irisshaders.iris.shadows.frustum.BoxCuller; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.world.phys.AABB; import org.joml.Matrix4f; -public class BoxCullingFrustum extends Frustum implements IDhApiShadowCullingFrustum { +public class BoxCullingFrustum extends Frustum { private final BoxCuller boxCuller; private double x, y, z; private int worldMinYDH; @@ -37,15 +35,4 @@ public boolean canDetermineInvisible(double minX, double minY, double minZ, doub public boolean isVisible(AABB box) { return !boxCuller.isCulled(box); } - - @Override - public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { - this.worldMinYDH = worldMinBlockY; - this.worldMaxYDH = worldMaxBlockY; - } - - @Override - public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { - return !boxCuller.isCulled(lodBlockPosMinX, this.worldMinYDH, lodBlockPosMinZ, lodBlockPosMinX + lodBlockWidth, this.worldMaxYDH, lodBlockPosMinZ + lodBlockWidth); - } } diff --git a/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/NonCullingFrustum.java b/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/NonCullingFrustum.java index 2bf8ba4aa6..46c753ec9b 100644 --- a/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/NonCullingFrustum.java +++ b/src/main/java/net/irisshaders/iris/shadows/frustum/fallback/NonCullingFrustum.java @@ -1,12 +1,10 @@ package net.irisshaders.iris.shadows.frustum.fallback; -import com.seibel.distanthorizons.api.interfaces.override.rendering.IDhApiShadowCullingFrustum; -import com.seibel.distanthorizons.coreapi.util.math.Mat4f; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.world.phys.AABB; import org.joml.Matrix4f; -public class NonCullingFrustum extends Frustum implements IDhApiShadowCullingFrustum { +public class NonCullingFrustum extends Frustum { public NonCullingFrustum() { super(new Matrix4f(), new Matrix4f()); } @@ -22,14 +20,4 @@ public boolean canDetermineInvisible(double minX, double minY, double minZ, doub public boolean isVisible(AABB box) { return true; } - - @Override - public void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection) { - - } - - @Override - public boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel) { - return true; - } } diff --git a/src/main/resources/mixins.oculus.compat.dh.json b/src/main/resources/mixins.oculus.compat.dh.json new file mode 100644 index 0000000000..79ddb718ce --- /dev/null +++ b/src/main/resources/mixins.oculus.compat.dh.json @@ -0,0 +1,18 @@ +{ + "required": true, + "minVersion": "0.8", + "plugin": "net.irisshaders.iris.compat.dh.mixin.OculusDHCompatMixinPlugin", + "package": "net.irisshaders.iris.compat.dh.mixin", + "compatibilityLevel": "JAVA_8", + "client": [ + ], + "injectors": { + "defaultRequire": 1 + }, + "mixins": [ + "AdvancedShadowCullingFrustumMixin", + "BoxCullingFrustumMixin", + "CullEverythingFrustumMixin", + "NonCullingFrustumMixin" + ] +} \ No newline at end of file