From f37ae287df8e1618c59acafd5b082534ec3a79f0 Mon Sep 17 00:00:00 2001 From: hYdos Date: Tue, 3 Mar 2020 20:46:52 +1000 Subject: [PATCH] SOMTHING --- .../ginger/engine/vulkan/model/VKModelData.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelData.java b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelData.java index 64e283f..02c86a9 100644 --- a/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelData.java +++ b/src/main/java/com/github/hydos/ginger/engine/vulkan/model/VKModelData.java @@ -22,8 +22,8 @@ public class VKModelData public void loadModel() { this.mesh = ModelLoader.getCubeMesh(); - createIndexBuffer(); createVertexBuffer(); + createIndexBuffer(); } public int findMemoryType(int typeFilter, int properties) { @@ -159,7 +159,7 @@ public class VKModelData try(MemoryStack stack = stackPush()) { - long bufferSize = 3 * mesh.getVertices().length; + long bufferSize = ((3 + 3 + 2) * Float.BYTES) * mesh.getVertices().length; LongBuffer pBuffer = stack.mallocLong(1); LongBuffer pBufferMemory = stack.mallocLong(1); @@ -195,7 +195,16 @@ public class VKModelData VK12.vkFreeMemory(VKRegister.device, stagingBufferMemory, null); } } + + private void memcpyIndices(ByteBuffer buffer, int[] indices) { + for(int index : indices) { + buffer.putInt(index); + } + + buffer.rewind(); + } + private void createIndexBuffer() { try(MemoryStack stack = stackPush()) { @@ -217,13 +226,13 @@ public class VKModelData VK12.vkMapMemory(VKRegister.device, stagingBufferMemory, 0, bufferSize, 0, data); { - memcpy(data.getByteBuffer(0, (int) bufferSize), mesh.getIndices()); + memcpyIndices(data.getByteBuffer(0, (int) bufferSize), mesh.getIndices()); } VK12.vkUnmapMemory(VKRegister.device, stagingBufferMemory); createBuffer(bufferSize, VK12.VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK12.VK_BUFFER_USAGE_INDEX_BUFFER_BIT, - VK12.VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, + VK12.VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, pBuffer, pBufferMemory);