From a2c96ba7ff1ca04dde83e15c9ac45cff4c88a28e Mon Sep 17 00:00:00 2001 From: James Seibel Date: Mon, 9 Mar 2026 11:51:38 -0500 Subject: [PATCH] move vertex format --- .../blaze/BlazeDebugWireframeRenderer.java | 54 ++++++------------- .../render/blaze/McGenericObjectRenderer.java | 2 +- .../common/render/blaze/McLodRenderer.java | 1 + .../render/blaze/apply/DhApplyRenderer.java | 2 +- .../render/blaze/apply/McCopyRenderer.java | 6 +-- .../postProcessing/McFarFadeRenderer.java | 1 + .../blaze/postProcessing/McFogRenderer.java | 2 +- .../blaze/postProcessing/McSsaoRenderer.java | 2 +- .../postProcessing/McVanillaFadeRenderer.java | 1 + .../render/blaze/test/DhTestRenderer.java | 2 +- .../DhBlazeVertexFormat.java | 5 +- 11 files changed, 28 insertions(+), 50 deletions(-) rename common/src/main/java/com/seibel/distanthorizons/common/render/blaze/{helpers => util}/DhBlazeVertexFormat.java (82%) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDebugWireframeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDebugWireframeRenderer.java index be7c9a761..e10be3549 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDebugWireframeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDebugWireframeRenderer.java @@ -32,8 +32,8 @@ import com.mojang.blaze3d.systems.GpuDevice; import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.VertexFormat; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.helpers.UniformHandler; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; @@ -120,6 +120,7 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer private GpuBuffer uniformBuffer; + //=============// // constructor // //=============// @@ -145,10 +146,6 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer } private void createPipelines() { - GpuDevice gpuDevice = RenderSystem.getDevice(); - CommandEncoder commandEncoder = gpuDevice.createCommandEncoder(); - - RenderPipeline.Builder pipelineBuilder = RenderPipeline.builder(); { pipelineBuilder.withCull(false); @@ -157,7 +154,7 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer pipelineBuilder.withColorWrite(true); pipelineBuilder.withoutBlend(); pipelineBuilder.withPolygonMode(PolygonMode.WIREFRAME); - pipelineBuilder.withLocation(Identifier.parse("distanthorizons:debug_renderer")); + pipelineBuilder.withLocation(Identifier.parse("distanthorizons:debug_wireframe_renderer")); pipelineBuilder.withVertexShader(Identifier.fromNamespaceAndPath("distanthorizons", "debug/blaze/vert")); pipelineBuilder.withFragmentShader(Identifier.fromNamespaceAndPath("distanthorizons", "debug/blaze/frag")); @@ -177,29 +174,23 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer boxVerticesBuffer.rewind(); MemoryUtil.memFree(boxVerticesBuffer); - - GpuDevice gpuDevice = RenderSystem.getDevice(); - CommandEncoder commandEncoder = gpuDevice.createCommandEncoder(); - // upload vertex data { - Supplier labelSupplier = () -> "distantHorizons:McDebugRenderer"; - int usage = 8 | 32; // is this just using OpenGL VBO flags?, if so I can't find it, supposedly GlDevice on Mojang's side + int usage = GpuBuffer.USAGE_COPY_DST + | GpuBuffer.USAGE_VERTEX; int size = BOX_VERTICES.length * Float.BYTES; - this.boxVertexBuffer = gpuDevice.createBuffer(labelSupplier, usage, size); + this.boxVertexBuffer = GPU_DEVICE.createBuffer(() -> "distantHorizons:McDebugWireframeBox", usage, size); { - int offset = 0; int length = BOX_VERTICES.length * Float.BYTES; - GpuBufferSlice bufferSlice = new GpuBufferSlice(this.boxVertexBuffer, offset, length); + GpuBufferSlice bufferSlice = new GpuBufferSlice(this.boxVertexBuffer, /*offset*/ 0, length); ByteBuffer byteBuffer = ByteBuffer.allocateDirect(BOX_VERTICES.length * Float.BYTES); - // Fill buffer with vertices. byteBuffer.order(ByteOrder.nativeOrder()); byteBuffer.asFloatBuffer().put(BOX_VERTICES); byteBuffer.rewind(); - commandEncoder.writeToBuffer(bufferSlice, byteBuffer); + COMMAND_ENCODER.writeToBuffer(bufferSlice, byteBuffer); } } @@ -211,15 +202,15 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer buffer.rewind(); - // TODO - // GpuBuffer.USAGE_UNIFORM = 128 - // GpuBuffer.USAGE_INDEX = 64 - int usage = 8 | 32 | 64 | 128; // is this just using OpenGL VBO flags?, if so I can't find it, supposedly GlDevice on Mojang's side - this.boxIndexBuffer = gpuDevice.createBuffer(() -> "DH Debug Index Buffer", usage, buffer.capacity()); + int usage = GpuBuffer.USAGE_COPY_DST + | GpuBuffer.USAGE_VERTEX + | GpuBuffer.USAGE_INDEX + | GpuBuffer.USAGE_UNIFORM; + this.boxIndexBuffer = GPU_DEVICE.createBuffer(() -> "DH Debug Index Buffer", usage, buffer.capacity()); int offset = 0; GpuBufferSlice bufferSlice = new GpuBufferSlice(this.boxIndexBuffer, offset, buffer.capacity()); - commandEncoder.writeToBuffer(bufferSlice, buffer); + COMMAND_ENCODER.writeToBuffer(bufferSlice, buffer); } } @@ -266,15 +257,6 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer - - //===========// - // rendering // - //===========// - //#region - - // validation // - - // uniforms { int uniformBufferSize = new Std140SizeCalculator() @@ -329,13 +311,13 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer this::getName, McLodRenderer.INSTANCE.dhColorTextureWrapper.textureView, /*optionalClearColorAsInt*/ OptionalInt.empty(), - McLodRenderer.INSTANCE.dhDepthTextureWrapper.textureView, /*optionalDepthValueAsDouble*/ OptionalDouble.empty())) + McLodRenderer.INSTANCE.dhDepthTextureWrapper.textureView, + /*optionalDepthValueAsDouble*/ OptionalDouble.empty())) { // Bind instance data // renderPass.setUniform("uniformBlock", this.uniformBuffer); - // set pipeline - renderPass.setPipeline(this.pipeline); // TODO + renderPass.setPipeline(this.pipeline); renderPass.setIndexBuffer(this.boxIndexBuffer, VertexFormat.IndexType.INT); renderPass.setVertexBuffer(0, this.boxVertexBuffer); @@ -346,8 +328,6 @@ public class BlazeDebugWireframeRenderer implements IMcDebugRenderer /*indexCount*/BOX_OUTLINE_INDICES.length, /*instanceCount*/1); } - //#endregion - } private String getName() { return "distantHorizons:McDebugRenderer"; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McGenericObjectRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McGenericObjectRenderer.java index 7e6396767..dcf94e174 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McGenericObjectRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McGenericObjectRenderer.java @@ -42,8 +42,8 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeG import com.seibel.distanthorizons.api.objects.math.DhApiVec3d; import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBox; import com.seibel.distanthorizons.api.objects.render.DhApiRenderableBoxGroupShading; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.helpers.BlazeGenericObjectVertexContainer; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.helpers.UniformHandler; import com.seibel.distanthorizons.common.wrappers.misc.LightMapWrapper; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McLodRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McLodRenderer.java index e4576027f..38afa7c0b 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McLodRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/McLodRenderer.java @@ -18,6 +18,7 @@ import com.mojang.blaze3d.textures.*; import com.mojang.blaze3d.vertex.VertexFormat; import com.seibel.distanthorizons.common.render.blaze.apply.DhApplyRenderer; import com.seibel.distanthorizons.common.render.blaze.helpers.*; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.VertexBufferWrapper; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/DhApplyRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/DhApplyRenderer.java index 539d1f8f6..2469d2509 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/DhApplyRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/DhApplyRenderer.java @@ -31,7 +31,7 @@ import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.*; import com.mojang.blaze3d.vertex.VertexFormat; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; import com.seibel.distanthorizons.core.logging.DhLogger; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/McCopyRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/McCopyRenderer.java index 83468db27..9c4019d44 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/McCopyRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/apply/McCopyRenderer.java @@ -29,7 +29,7 @@ import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.*; import com.mojang.blaze3d.vertex.VertexFormat; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; @@ -79,10 +79,6 @@ public class McCopyRenderer - GpuDevice gpuDevice = RenderSystem.getDevice(); - CommandEncoder commandEncoder = gpuDevice.createCommandEncoder(); - - this.vertexFormat = VertexFormat.builder() .add("vPosition", DhBlazeVertexFormat.SCREEN_POS) .build(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFarFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFarFadeRenderer.java index a4b04e60d..ffd434296 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFarFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFarFadeRenderer.java @@ -36,6 +36,7 @@ import com.seibel.distanthorizons.common.render.blaze.McLodRenderer; import com.seibel.distanthorizons.common.render.blaze.apply.McCopyRenderer; import com.seibel.distanthorizons.common.render.blaze.helpers.*; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFogRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFogRenderer.java index 997616da2..71be2fd8f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFogRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McFogRenderer.java @@ -41,7 +41,7 @@ import com.seibel.distanthorizons.api.enums.rendering.EDhApiHeightFogMixMode; import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; import com.seibel.distanthorizons.common.render.blaze.McLodRenderer; import com.seibel.distanthorizons.common.render.blaze.apply.DhApplyRenderer; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; import com.seibel.distanthorizons.common.render.blaze.helpers.UniformHandler; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McSsaoRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McSsaoRenderer.java index 925640e1a..2634525f4 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McSsaoRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McSsaoRenderer.java @@ -38,7 +38,7 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; import com.seibel.distanthorizons.common.render.blaze.McLodRenderer; import com.seibel.distanthorizons.common.render.blaze.apply.DhApplyRenderer; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; import com.seibel.distanthorizons.common.render.blaze.helpers.UniformHandler; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McVanillaFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McVanillaFadeRenderer.java index 6e26d1c54..13674e0e8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McVanillaFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/McVanillaFadeRenderer.java @@ -36,6 +36,7 @@ import com.seibel.distanthorizons.common.render.blaze.McLodRenderer; import com.seibel.distanthorizons.common.render.blaze.apply.McCopyRenderer; import com.seibel.distanthorizons.common.render.blaze.helpers.*; import com.seibel.distanthorizons.common.render.blaze.util.BlazePostProcessUtil; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureViewWrapper; import com.seibel.distanthorizons.common.render.blaze.wrappers.BlazeTextureWrapper; import com.seibel.distanthorizons.core.config.Config; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/DhTestRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/DhTestRenderer.java index 3a4f0d7b3..bf0cfad07 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/DhTestRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/DhTestRenderer.java @@ -30,7 +30,7 @@ import com.mojang.blaze3d.systems.RenderPass; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.*; import com.mojang.blaze3d.vertex.VertexFormat; -import com.seibel.distanthorizons.common.render.blaze.helpers.DhBlazeVertexFormat; +import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormat; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.render.IMcTestRenderer; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/helpers/DhBlazeVertexFormat.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/DhBlazeVertexFormat.java similarity index 82% rename from common/src/main/java/com/seibel/distanthorizons/common/render/blaze/helpers/DhBlazeVertexFormat.java rename to common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/DhBlazeVertexFormat.java index 4582885d1..7989e4654 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/helpers/DhBlazeVertexFormat.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/util/DhBlazeVertexFormat.java @@ -1,4 +1,4 @@ -package com.seibel.distanthorizons.common.render.blaze.helpers; +package com.seibel.distanthorizons.common.render.blaze.util; import com.mojang.blaze3d.vertex.VertexFormatElement; import com.seibel.distanthorizons.core.dataObjects.render.bufferBuilding.LodQuadBuilder; @@ -20,8 +20,7 @@ public class DhBlazeVertexFormat public static final VertexFormatElement IRIS_NORMAL = VertexFormatElement.register(/*id*/14, /*index*/0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, /*count*/ 1); public static final VertexFormatElement FLOAT_XYZ_POS = VertexFormatElement.register(/*id*/15, /*index*/0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.POSITION, /*count*/ 3); - public static final VertexFormatElement VEC3 = VertexFormatElement.register(/*id*/16, /*index*/0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.GENERIC, /*count*/ 3); - public static final VertexFormatElement IVEC3 = VertexFormatElement.register(/*id*/17, /*index*/0, VertexFormatElement.Type.INT, VertexFormatElement.Usage.GENERIC, /*count*/ 3); + }