From 64d8f7ee2d7c0b3d0153b694a43f65dd5bd22b91 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Mon, 11 May 2026 21:59:38 -0500 Subject: [PATCH] update blaze 3d api use --- .../render/blaze/BlazeDhMetaRenderer.java | 3 +- .../BlazeDhFarFadeRenderer.java | 3 +- .../postProcessing/BlazeDhFogRenderer.java | 41 ++++++++++------ .../postProcessing/BlazeDhSsaoRenderer.java | 43 ++++++++++------ .../BlazeVanillaFadeRenderer.java | 12 ++--- .../test/BlazeDhTestTriangleRenderer.java | 5 +- .../blaze/util/BlazeDhVertexFormatUtil.java | 17 ++++++- .../RenderPipelineBuilderWrapper.java | 44 +++++++++++++++-- .../wrappers/texture/BlazeTextureWrapper.java | 49 +++++++++++++++---- .../render/openGl/glObject/GLProxy.java | 2 + coreSubProjects | 2 +- 11 files changed, 165 insertions(+), 56 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java index d5f47624c..723acb7f9 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java @@ -10,6 +10,7 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterCo import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiTextureCreatedParam; import com.seibel.distanthorizons.common.render.blaze.apply.BlazeDhApplyRenderer; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureWrapper; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.coreapi.util.ColorUtil; @@ -86,7 +87,7 @@ public class BlazeDhMetaRenderer implements IDhMetaRenderer @Override public void applyToMcTexture(RenderParams renderParams) { - GpuTexture mcColorTexture = Minecraft.getInstance().getMainRenderTarget().getColorTexture(); + GpuTexture mcColorTexture = MinecraftRenderWrapper.INSTANCE.getRenderTarget().getColorTexture(); this.applyRenderer.render(this.dhColorTextureWrapper.texture, this.dhDepthTextureWrapper.texture, mcColorTexture); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFarFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFarFadeRenderer.java index 5839e9800..fe79b0a57 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFarFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFarFadeRenderer.java @@ -40,6 +40,7 @@ import com.seibel.distanthorizons.common.render.blaze.util.BlazeUniformUtil; import com.seibel.distanthorizons.common.render.blaze.wrappers.RenderPipelineBuilderWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureWrapper; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.render.RenderParams; @@ -151,7 +152,7 @@ public class BlazeDhFarFadeRenderer implements IDhFarFadeRenderer // textures this.dhFadeColorTextureWrapper.tryCreateOrResize(); - this.mcColorTextureViewWrapper.tryWrap(Minecraft.getInstance().getMainRenderTarget().getColorTexture()); + this.mcColorTextureViewWrapper.tryWrap(MinecraftRenderWrapper.INSTANCE.getRenderTarget().getColorTexture()); this.dhFadeDepthTextureWrapper.tryCreateOrResize(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java index a91025ae2..693d6da42 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java @@ -23,19 +23,7 @@ package com.seibel.distanthorizons.common.render.blaze.postProcessing; public class BlazeDhFogRenderer {} #else - -import com.mojang.blaze3d.buffers.GpuBuffer; -import com.mojang.blaze3d.buffers.GpuBufferSlice; -import com.mojang.blaze3d.buffers.Std140Builder; -import com.mojang.blaze3d.buffers.Std140SizeCalculator; -import com.mojang.blaze3d.pipeline.BlendFunction; -import com.mojang.blaze3d.pipeline.RenderPipeline; -import com.mojang.blaze3d.platform.DestFactor; -import com.mojang.blaze3d.platform.SourceFactor; -import com.mojang.blaze3d.systems.CommandEncoder; -import com.mojang.blaze3d.systems.GpuDevice; -import com.mojang.blaze3d.systems.RenderPass; -import com.mojang.blaze3d.systems.RenderSystem; + import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogColorMode; import com.seibel.distanthorizons.api.enums.rendering.EDhApiHeightFogDirection; import com.seibel.distanthorizons.api.enums.rendering.EDhApiHeightFogMixMode; @@ -62,6 +50,24 @@ import java.nio.ByteOrder; import java.util.OptionalDouble; import java.util.OptionalInt; +import com.mojang.blaze3d.buffers.GpuBuffer; +import com.mojang.blaze3d.buffers.GpuBufferSlice; +import com.mojang.blaze3d.buffers.Std140Builder; +import com.mojang.blaze3d.buffers.Std140SizeCalculator; +import com.mojang.blaze3d.pipeline.BlendFunction; +import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.blaze3d.systems.CommandEncoder; +import com.mojang.blaze3d.systems.GpuDevice; +import com.mojang.blaze3d.systems.RenderPass; +import com.mojang.blaze3d.systems.RenderSystem; + +#if MC_VER <= MC_26_1_2 +import com.mojang.blaze3d.platform.DestFactor; +import com.mojang.blaze3d.platform.SourceFactor; +#else +import com.mojang.blaze3d.platform.BlendFactor; +#endif + /** * Renders fog onto the LODs. */ @@ -109,11 +115,16 @@ public class BlazeDhFogRenderer implements IDhFogRenderer this.init = true; - + BlendFunction blendFunc; + #if MC_VER <= MC_26_1_2 + blendFunc = new BlendFunction(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA, SourceFactor.ONE, DestFactor.ONE_MINUS_SRC_ALPHA); + #else + blendFunc = new BlendFunction(BlendFactor.SRC_ALPHA, BlendFactor.ONE_MINUS_SRC_ALPHA, BlendFactor.ONE, BlendFactor.ONE_MINUS_SRC_ALPHA); + #endif this.applyRenderer = new BlazeDhApplyRenderer( "fog_apply_to_dh", - new BlendFunction(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA, SourceFactor.ONE, DestFactor.ONE_MINUS_SRC_ALPHA), + blendFunc, "apply/blaze/vert", "apply/blaze/frag" ); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java index b7b80ee0d..7555ce4c5 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java @@ -23,19 +23,7 @@ package com.seibel.distanthorizons.common.render.blaze.postProcessing; public class BlazeDhSsaoRenderer {} #else - -import com.mojang.blaze3d.buffers.GpuBuffer; -import com.mojang.blaze3d.buffers.GpuBufferSlice; -import com.mojang.blaze3d.buffers.Std140Builder; -import com.mojang.blaze3d.buffers.Std140SizeCalculator; -import com.mojang.blaze3d.pipeline.BlendFunction; -import com.mojang.blaze3d.pipeline.RenderPipeline; -import com.mojang.blaze3d.platform.DestFactor; -import com.mojang.blaze3d.platform.SourceFactor; -import com.mojang.blaze3d.systems.CommandEncoder; -import com.mojang.blaze3d.systems.GpuDevice; -import com.mojang.blaze3d.systems.RenderPass; -import com.mojang.blaze3d.systems.RenderSystem; + import com.seibel.distanthorizons.common.render.blaze.BlazeDhMetaRenderer; import com.seibel.distanthorizons.common.render.blaze.apply.BlazeDhApplyRenderer; import com.seibel.distanthorizons.common.render.blaze.wrappers.RenderPipelineBuilderWrapper; @@ -56,6 +44,25 @@ import java.nio.ByteOrder; import java.util.OptionalDouble; import java.util.OptionalInt; +import com.mojang.blaze3d.buffers.GpuBuffer; +import com.mojang.blaze3d.buffers.GpuBufferSlice; +import com.mojang.blaze3d.buffers.Std140Builder; +import com.mojang.blaze3d.buffers.Std140SizeCalculator; +import com.mojang.blaze3d.pipeline.BlendFunction; +import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.blaze3d.platform.BlendFactor; +import com.mojang.blaze3d.systems.CommandEncoder; +import com.mojang.blaze3d.systems.GpuDevice; +import com.mojang.blaze3d.systems.RenderPass; +import com.mojang.blaze3d.systems.RenderSystem; + +#if MC_VER <= MC_26_1_2 +import com.mojang.blaze3d.platform.DestFactor; +import com.mojang.blaze3d.platform.SourceFactor; +#else +import com.mojang.blaze3d.platform.BlendFactor; +#endif + /** Renders SSAO to the DH LODs. */ public class BlazeDhSsaoRenderer implements IDhSsaoRenderer { @@ -101,9 +108,17 @@ public class BlazeDhSsaoRenderer implements IDhSsaoRenderer this.init = true; + + BlendFunction blendFunc; + #if MC_VER <= MC_26_1_2 + blendFunc = new BlendFunction(SourceFactor.ZERO, DestFactor.SRC_ALPHA, SourceFactor.ZERO, DestFactor.ONE); + #else + blendFunc = new BlendFunction(BlendFactor.ZERO, BlendFactor.SRC_ALPHA, BlendFactor.ZERO, BlendFactor.ONE); + #endif + this.applyRenderer = new BlazeDhApplyRenderer( "ssao_apply_to_dh", - new BlendFunction(SourceFactor.ZERO, DestFactor.SRC_ALPHA, SourceFactor.ZERO, DestFactor.ONE), + blendFunc, "apply/blaze/vert", "ssao/blaze/apply", /*uniforms*/ new String[] { "applyFragUniformBlock" } ); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java index 73b3d4aa7..b8118add6 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java @@ -43,6 +43,7 @@ import com.seibel.distanthorizons.common.render.blaze.util.BlazeUniformUtil; import com.seibel.distanthorizons.common.render.blaze.wrappers.RenderPipelineBuilderWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureWrapper; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; @@ -164,8 +165,8 @@ public class BlazeVanillaFadeRenderer implements IDhVanillaFadeRenderer this.fadeColorTextureWrapper.tryCreateOrResize(); this.fadeDepthTextureWrapper.tryCreateOrResize(); - this.mcDepthTextureWrapper.tryWrap(Minecraft.getInstance().getMainRenderTarget().getDepthTexture()); - this.mcColorTextureWrapper.tryWrap(Minecraft.getInstance().getMainRenderTarget().getColorTexture()); + this.mcDepthTextureWrapper.tryWrap(MinecraftRenderWrapper.INSTANCE.getRenderTarget().getDepthTexture()); + this.mcColorTextureWrapper.tryWrap(MinecraftRenderWrapper.INSTANCE.getRenderTarget().getColorTexture()); { @@ -198,11 +199,8 @@ public class BlazeVanillaFadeRenderer implements IDhVanillaFadeRenderer Mat4f inverseMcMvmProjMatrix = inverseMcModelViewProjectionMatrix; - Mat4f dhProjectionMatrix = RenderUtil.createLodProjectionMatrix(renderParams.mcProjectionMatrix); - Mat4f dhModelViewMatrix = RenderUtil.createLodModelViewMatrix(renderParams.mcModelViewMatrix); - - Mat4f inverseDhModelViewProjectionMatrix = new Mat4f(dhProjectionMatrix); - inverseDhModelViewProjectionMatrix.multiply(dhModelViewMatrix); + Mat4f inverseDhModelViewProjectionMatrix = new Mat4f(renderParams.dhProjectionMatrix); + inverseDhModelViewProjectionMatrix.multiply(renderParams.dhModelViewMatrix); inverseDhModelViewProjectionMatrix.invert(); Mat4f inverseDhMvmProjMatrix = inverseDhModelViewProjectionMatrix; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java index 4d86c4def..dfc440ca8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java @@ -37,6 +37,7 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.seibel.distanthorizons.common.render.blaze.util.BlazeDhVertexFormatUtil; import com.seibel.distanthorizons.common.render.blaze.wrappers.RenderPipelineBuilderWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.texture.BlazeTextureViewWrapper; +import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.render.RenderParams; @@ -164,8 +165,8 @@ public class BlazeDhTestTriangleRenderer implements IDhTestTriangleRenderer { this.tryInit(); - this.mcColorTextureViewWrapper.tryWrap(Minecraft.getInstance().getMainRenderTarget().getColorTexture()); - this.mcDepthTextureViewWrapper.tryWrap(Minecraft.getInstance().getMainRenderTarget().getDepthTexture()); + this.mcColorTextureViewWrapper.tryWrap(MinecraftRenderWrapper.INSTANCE.getRenderTarget().getColorTexture()); + this.mcDepthTextureViewWrapper.tryWrap(MinecraftRenderWrapper.INSTANCE.getRenderTarget().getDepthTexture()); try (RenderPass renderPass = COMMAND_ENCODER.createRenderPass( this::getRenderPassName, diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/BlazeDhVertexFormatUtil.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/BlazeDhVertexFormatUtil.java index d36a5305d..146a46c03 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/BlazeDhVertexFormatUtil.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/BlazeDhVertexFormatUtil.java @@ -5,6 +5,7 @@ public class BlazeDhVertexFormatUtil {} #else +import com.mojang.blaze3d.GpuFormat; import com.mojang.blaze3d.vertex.VertexFormatElement; import com.seibel.distanthorizons.api.enums.config.EDhApiRenderApi; import com.seibel.distanthorizons.core.config.Config; @@ -70,7 +71,7 @@ public class BlazeDhVertexFormatUtil IRIS_NORMAL = VertexFormatElement.register(/*id*/29, /*index*/0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, /*count*/ 1); FLOAT_XYZ_POS = VertexFormatElement.register(/*id*/30, /*index*/0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.POSITION, /*count*/ 3); - #else + #elif MC_VER <= MC_26_1_2 SCREEN_POS = VertexFormatElement.register(/*id*/22, /*index*/0, VertexFormatElement.Type.FLOAT, false, /*count*/ 2); RGBA_FLOAT_COLOR = VertexFormatElement.register(/*id*/23, /*index*/0, VertexFormatElement.Type.FLOAT, false, /*count*/ 4); @@ -83,6 +84,20 @@ public class BlazeDhVertexFormatUtil IRIS_NORMAL = VertexFormatElement.register(/*id*/29, /*index*/0, VertexFormatElement.Type.BYTE, false, /*count*/ 1); FLOAT_XYZ_POS = VertexFormatElement.register(/*id*/30, /*index*/0, VertexFormatElement.Type.FLOAT, false, /*count*/ 3); + #else + + SCREEN_POS = VertexFormatElement.register(/*id*/22, /*index*/0, GpuFormat.RG32_FLOAT); // 2 floats + RGBA_FLOAT_COLOR = VertexFormatElement.register(/*id*/23, /*index*/0, GpuFormat.RGBA32_FLOAT); // 4 floats + + SHORT_XYZ_POS = VertexFormatElement.register(/*id*/24, /*index*/0, GpuFormat.RGB16_UINT); // 3 ushorts + BYTE_PAD = VertexFormatElement.register(/*id*/25, /*index*/0, GpuFormat.R8_UINT); // 1 byte + + META = VertexFormatElement.register(/*id*/26, /*index*/0, GpuFormat.R16_UINT); // 1 ushort + RGBA_UBYTE_COLOR = VertexFormatElement.register(/*id*/27, /*index*/0, GpuFormat.RGBA8_UNORM); // 4 ubytes + IRIS_MATERIAL = VertexFormatElement.register(/*id*/28, /*index*/0, GpuFormat.R8_UINT); // 1 byte + IRIS_NORMAL = VertexFormatElement.register(/*id*/29, /*index*/0, GpuFormat.R8_UINT); // 1 byte + + FLOAT_XYZ_POS = VertexFormatElement.register(/*id*/30, /*index*/0, GpuFormat.RGB32_FLOAT); // 3 floats #endif } catch (Exception e) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPipelineBuilderWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPipelineBuilderWrapper.java index 0885bc195..97f76f84f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPipelineBuilderWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/RenderPipelineBuilderWrapper.java @@ -6,8 +6,8 @@ public class RenderPipelineBuilderWrapper {} #else -import com.mojang.blaze3d.pipeline.BlendFunction; -import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.blaze3d.GpuFormat; +import com.mojang.blaze3d.pipeline.*; import com.mojang.blaze3d.platform.PolygonMode; import com.mojang.blaze3d.shaders.UniformType; import com.mojang.blaze3d.vertex.VertexFormat; @@ -16,13 +16,12 @@ import net.minecraft.resources.Identifier; #if MC_VER <= MC_1_21_11 import com.mojang.blaze3d.platform.DepthTestFunction; #else -import com.mojang.blaze3d.pipeline.ColorTargetState; -import com.mojang.blaze3d.pipeline.DepthStencilState; import com.mojang.blaze3d.platform.CompareOp; #endif import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.Optional; public class RenderPipelineBuilderWrapper @@ -130,15 +129,27 @@ public class RenderPipelineBuilderWrapper return this; } + private final ArrayList samplerNames = new ArrayList<>(); public RenderPipelineBuilderWrapper withSampler(String name) throws IllegalArgumentException { + #if MC_VER <= MC_26_1_2 this.blazePipelineBuilder.withSampler(name); + #else + samplerNames.add(name); + #endif + return this; } + private final ArrayList uniformBufferNames = new ArrayList<>(); public RenderPipelineBuilderWrapper withUniformBuffer(String name) throws IllegalArgumentException { + #if MC_VER <= MC_26_1_2 this.blazePipelineBuilder.withUniform(name, UniformType.UNIFORM_BUFFER); + #else + uniformBufferNames.add(name); + #endif + return this; } @@ -282,6 +293,31 @@ public class RenderPipelineBuilderWrapper this.blazePipelineBuilder.withVertexFormat(vertexFormat, blazeVertexMode); } + + // uniform buffers + { + #if MC_VER <= MC_26_1_2 + // handled before this point + #else + + BindGroupLayout.Builder bindGroupBuilder = BindGroupLayout.builder(); + + for (String name : this.samplerNames) + { + bindGroupBuilder.withSampler(name); + } + + for (String name : this.uniformBufferNames) + { + bindGroupBuilder.withUniform(name, UniformType.UNIFORM_BUFFER); + } + + BindGroupLayout bindGroup = bindGroupBuilder.build(); + this.blazePipelineBuilder.withBindGroupLayout(bindGroup); + #endif + } + + return this.blazePipelineBuilder.build(); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/texture/BlazeTextureWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/texture/BlazeTextureWrapper.java index 30b09744f..1908a4a04 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/texture/BlazeTextureWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/wrappers/texture/BlazeTextureWrapper.java @@ -5,11 +5,6 @@ public class BlazeTextureWrapper {} #else -import com.mojang.blaze3d.buffers.GpuBuffer; -import com.mojang.blaze3d.systems.CommandEncoder; -import com.mojang.blaze3d.systems.GpuDevice; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.textures.*; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; @@ -18,6 +13,17 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRen import java.util.OptionalDouble; +import com.mojang.blaze3d.systems.CommandEncoder; +import com.mojang.blaze3d.systems.GpuDevice; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.textures.*; + +#if MC_VER <= MC_26_1_2 + +#else +import com.mojang.blaze3d.GpuFormat; +#endif + public class BlazeTextureWrapper { public static final DhLogger LOGGER = new DhLoggerBuilder().build(); @@ -29,7 +35,11 @@ public class BlazeTextureWrapper public final String name; + #if MC_VER <= MC_26_1_2 public final TextureFormat textureFormat; + #else + public final GpuFormat textureFormat; + #endif public GpuTexture texture = null; public GpuTextureView textureView = null; @@ -45,10 +55,27 @@ public class BlazeTextureWrapper //==============// //region - public static BlazeTextureWrapper createDepth(String name) { return new BlazeTextureWrapper(name, TextureFormat.DEPTH32); } - public static BlazeTextureWrapper createColor(String name) { return new BlazeTextureWrapper(name, TextureFormat.RGBA8); } + public static BlazeTextureWrapper createDepth(String name) + { + #if MC_VER <= MC_26_1_2 + return new BlazeTextureWrapper(name, TextureFormat.DEPTH32); + #else + return new BlazeTextureWrapper(name, GpuFormat.D32_FLOAT); + #endif + } + public static BlazeTextureWrapper createColor(String name) + { + #if MC_VER <= MC_26_1_2 + return new BlazeTextureWrapper(name, TextureFormat.RGBA8); + #else + return new BlazeTextureWrapper(name, GpuFormat.RGBA8_UNORM); + #endif + } - private BlazeTextureWrapper(String name, TextureFormat textureFormat) + private BlazeTextureWrapper( + String name, + #if MC_VER <= MC_26_1_2 TextureFormat #else GpuFormat #endif textureFormat + ) { this.name = name; this.textureFormat = textureFormat; @@ -116,11 +143,13 @@ public class BlazeTextureWrapper | GpuTexture.USAGE_TEXTURE_BINDING | GpuTexture.USAGE_COPY_SRC | GpuTexture.USAGE_RENDER_ATTACHMENT; - this.texture = GPU_DEVICE.createTexture(this.name, + + this.texture = GPU_DEVICE.createTexture( + this.name, usage, this.textureFormat, viewWidth, viewHeight, - /*depthOrLayers*/ 1, /*mipLevels*/ 1 + /*depthOrLayers*/ 1, /*mipLevels*/ 1 ); this.textureView = GPU_DEVICE.createTextureView(this.texture); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/glObject/GLProxy.java b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/glObject/GLProxy.java index 49c577f8e..aad3e218f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/glObject/GLProxy.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/glObject/GLProxy.java @@ -126,6 +126,8 @@ public class GLProxy private GLProxy() throws IllegalStateException { + // TODO vulkan complain if created when MC is running on vulkan + // this must be created on minecraft's render context to work correctly if (GLFW.glfwGetCurrentContext() == 0L) { diff --git a/coreSubProjects b/coreSubProjects index b674f4960..269f2c30f 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit b674f49600184a94d4b83888e5a50df4b8f065b7 +Subproject commit 269f2c30fd3dd2a7afa6fee29bdbf25ce0b84f1d