diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhGenericObjectRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhGenericObjectRenderer.java index 8c50398b3..c57ec2fbf 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhGenericObjectRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhGenericObjectRenderer.java @@ -291,7 +291,11 @@ public class BlazeDhGenericObjectRenderer implements IDhGenericRenderer throw new IllegalArgumentException("Box group must be of type ["+ RenderableBoxGroup.class.getSimpleName()+"], type received: ["+(iBoxGroup != null ? iBoxGroup.getClass() : "NULL")+"]."); } RenderableBoxGroup boxGroup = (RenderableBoxGroup) iBoxGroup; - + if (boxGroup.size() != 0) + { + // trigger a box change to make sure the initial data is uploaded + boxGroup.triggerBoxChange(); + } long id = boxGroup.getId(); if (this.boxGroupById.containsKey(id)) @@ -495,7 +499,7 @@ public class BlazeDhGenericObjectRenderer implements IDhGenericRenderer BlazeDhMetaRenderer.INSTANCE.dhDepthTextureWrapper.textureView, /*optionalDepthValueAsDouble*/ OptionalDouble.empty())) { - this.renderBoxGroupInstanced(renderPass, renderEventParam, boxGroup, camPos, profiler); + this.renderBoxGroupInstanced(renderPass, renderEventParam, boxGroup, profiler); } profiler.pop(); // resource path @@ -534,7 +538,7 @@ public class BlazeDhGenericObjectRenderer implements IDhGenericRenderer private void renderBoxGroupInstanced( RenderPass renderPass, RenderParams renderEventParam, - RenderableBoxGroup boxGroup, Vec3d camPos, + RenderableBoxGroup boxGroup, IProfilerWrapper profiler) { // update instance data // @@ -568,7 +572,7 @@ public class BlazeDhGenericObjectRenderer implements IDhGenericRenderer renderPass.drawIndexed( /*indexStart*/ 0, /*firstIndex*/0, - /*indexCount*/container.uploadedBoxCount * 36, + /*indexCount*/container.uploadedBoxCount * 36, // 36 = 6 faces * 6 verticies per face /*instanceCount*/1); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/objects/BlazeGenericObjectVertexContainer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/objects/BlazeGenericObjectVertexContainer.java index 853a0faf6..0eb4754eb 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/objects/BlazeGenericObjectVertexContainer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/objects/BlazeGenericObjectVertexContainer.java @@ -88,11 +88,6 @@ public class BlazeGenericObjectVertexContainer implements IDhGenericObjectVertex public void updateVertexData(List uploadBoxList) { int boxCount = uploadBoxList.size(); - if (boxCount == 0) - { - return; // TODO done just to fix a buffer empty crash - } - // recreate the data arrays if their size is different if (this.uploadedBoxCount != boxCount) @@ -196,8 +191,8 @@ public class BlazeGenericObjectVertexContainer implements IDhGenericObjectVertex // minimum of 1 box to prevent trying to create a buffer of size 0 int boxCount = Math.max(this.uploadedBoxCount, 1); - int faceCount = boxCount * 6; - int vertexCount = faceCount * 6; + int faceCount = boxCount * 6; // 6 faces on a cube + int vertexCount = faceCount * 6; // 6 vertices per cube int byteSize = vertexCount * 3 * Float.BYTES; // x,y,z byteSize += vertexCount * 4; // r,g,b,a @@ -209,8 +204,8 @@ public class BlazeGenericObjectVertexContainer implements IDhGenericObjectVertex // minimum of 1 box to prevent trying to create a buffer of size 0 int boxCount = Math.max(this.uploadedBoxCount, 1); - int quadCount = boxCount * 36; - int byteSize = quadCount * GLEnums.getTypeSize(GL32.GL_UNSIGNED_INT) * 6; + int quadCount = boxCount * 6 * 6; // 6 faces with 6 vertices each + int byteSize = quadCount * GLEnums.getTypeSize(GL32.GL_UNSIGNED_INT); return byteSize; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/generic/GlGenericObjectRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/generic/GlGenericObjectRenderer.java index 7e38e00e7..e5abfd190 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/generic/GlGenericObjectRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/openGl/generic/GlGenericObjectRenderer.java @@ -361,6 +361,11 @@ public class GlGenericObjectRenderer implements IDhGenericRenderer throw new IllegalArgumentException("Box group must be of type ["+ RenderableBoxGroup.class.getSimpleName()+"], type received: ["+(iBoxGroup != null ? iBoxGroup.getClass() : "NULL")+"]."); } RenderableBoxGroup boxGroup = (RenderableBoxGroup) iBoxGroup; + if (boxGroup.size() != 0) + { + // trigger a box change to make sure the initial data is uploaded + boxGroup.triggerBoxChange(); + } long id = boxGroup.getId(); diff --git a/coreSubProjects b/coreSubProjects index 8a39610b8..082b364f5 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 8a39610b8c7025c54a469ef21a4f36f4b64f8d9f +Subproject commit 082b364f52f793182a73c7f6db90c473d9868dd0