feat: multiple index buffers per mesh support

This commit is contained in:
MihailRis
2025-07-24 21:40:00 +03:00
parent 6debc92ae5
commit 4a6ccf4847
7 changed files with 81 additions and 43 deletions
+4 -2
View File
@@ -706,6 +706,7 @@ void BlocksRenderer::build(const Chunk* chunk, const Chunks* chunks) {
vertexCount = 0;
vertexOffset = 0;
indexCount = 0;
denseRender = settings.graphics.denseRender.get();
render(voxels, beginEnds);
}
@@ -714,7 +715,7 @@ ChunkMeshData BlocksRenderer::createMesh() {
return ChunkMeshData{
MeshData(
util::Buffer(vertexBuffer.get(), vertexCount),
util::Buffer(indexBuffer.get(), indexCount),
std::vector<util::Buffer<uint32_t>> {util::Buffer(indexBuffer.get(), indexCount)},
util::Buffer(
ChunkVertex::ATTRIBUTES, sizeof(ChunkVertex::ATTRIBUTES) / sizeof(VertexAttribute)
)
@@ -727,7 +728,8 @@ ChunkMesh BlocksRenderer::render(const Chunk *chunk, const Chunks *chunks) {
build(chunk, chunks);
return ChunkMesh{std::make_unique<Mesh<ChunkVertex>>(
vertexBuffer.get(), vertexCount, indexBuffer.get(), indexCount
vertexBuffer.get(), vertexCount,
std::vector<IndexBufferData> {IndexBufferData {indexBuffer.get(), indexCount}}
), std::move(sortingMesh)};
}