Skip to content

Commit

Permalink
Fix hard coded vertex format element IDs
Browse files Browse the repository at this point in the history
  • Loading branch information
Erdragh committed Jan 5, 2025
1 parent d2038d1 commit ddb584e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ public class IrisVertexFormats {
}
}

ENTITY_ELEMENT = VertexFormatElement.register(10, 0, VertexFormatElement.Type.SHORT, VertexFormatElement.Usage.GENERIC, 2);
ENTITY_ID_ELEMENT = VertexFormatElement.register(11, LAST_UV + 1, VertexFormatElement.Type.USHORT, VertexFormatElement.Usage.UV, 3);
MID_TEXTURE_ELEMENT = VertexFormatElement.register(12, 0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.GENERIC, 2);
TANGENT_ELEMENT = VertexFormatElement.register(13, 0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, 4);
MID_BLOCK_ELEMENT = VertexFormatElement.register(14, 0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, 3);
ENTITY_ELEMENT = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.SHORT, VertexFormatElement.Usage.GENERIC, 2);
ENTITY_ID_ELEMENT = VertexFormatElement.register(getNextVertexFormatElementId(), LAST_UV + 1, VertexFormatElement.Type.USHORT, VertexFormatElement.Usage.UV, 3);
MID_TEXTURE_ELEMENT = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.FLOAT, VertexFormatElement.Usage.GENERIC, 2);
TANGENT_ELEMENT = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, 4);
MID_BLOCK_ELEMENT = VertexFormatElement.register(getNextVertexFormatElementId(), 0, VertexFormatElement.Type.BYTE, VertexFormatElement.Usage.GENERIC, 3);

TERRAIN = VertexFormat.builder()
.add("Position", VertexFormatElement.POSITION)
Expand Down Expand Up @@ -88,4 +88,14 @@ private static void debug(VertexFormat format) {
byteIndex += element.byteSize();
}
}

private static int getNextVertexFormatElementId() {
int id = VertexFormatElement.ELEMENTS.size();
while (VertexFormatElement.byId(id) != null) {
if (++id >= VertexFormatElement.MAX_COUNT) {
throw new RuntimeException("Too many mods registering VertexFormatElements");
}
}
return id;
}
}
1 change: 1 addition & 0 deletions common/src/main/resources/iris.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ accessible class net/minecraft/client/gui/components/AbstractSelectionList$Entry
accessible field com/mojang/blaze3d/platform/GlStateManager$BooleanState enabled Z
accessible method com/mojang/blaze3d/shaders/Program getId ()I
accessible field com/mojang/blaze3d/vertex/PoseStack$Pose trustedNormals Z
accessible field com/mojang/blaze3d/vertex/VertexFormatElement ELEMENTS Ljava/util/List;
1 change: 1 addition & 0 deletions neoforge/src/main/resources/META-INF/accesstransformer.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ public net.minecraft.client.gui.components.AbstractSelectionList$Entry
public com.mojang.blaze3d.platform.GlStateManager$BooleanState enabled
public com.mojang.blaze3d.shaders.Program getId()I
public com.mojang.blaze3d.vertex.PoseStack$Pose trustedNormals
public com.mojang.blaze3d.vertex.VertexFormatElement ELEMENTS

0 comments on commit ddb584e

Please sign in to comment.