99import net .vulkanmod .interfaces .ShaderMixed ;
1010import net .vulkanmod .vulkan .Renderer ;
1111import net .vulkanmod .vulkan .VRenderSystem ;
12- import net .vulkanmod .vulkan .memory .AutoIndexBuffer ;
13- import net .vulkanmod .vulkan .memory .IndexBuffer ;
14- import net .vulkanmod .vulkan .memory .MemoryTypes ;
15- import net .vulkanmod .vulkan .memory .VertexBuffer ;
12+ import net .vulkanmod .vulkan .memory .*;
1613import net .vulkanmod .vulkan .shader .GraphicsPipeline ;
1714import net .vulkanmod .vulkan .shader .Pipeline ;
1815import net .vulkanmod .vulkan .texture .VTextureSelector ;
2219
2320@ Environment (EnvType .CLIENT )
2421public class VBO {
22+ private final MemoryType memoryType ;
2523 private VertexBuffer vertexBuffer ;
2624 private IndexBuffer indexBuffer ;
2725
@@ -31,7 +29,9 @@ public class VBO {
3129
3230 private boolean autoIndexed = false ;
3331
34- public VBO () {}
32+ public VBO (com .mojang .blaze3d .vertex .VertexBuffer .Usage usage ) {
33+ this .memoryType = usage == com .mojang .blaze3d .vertex .VertexBuffer .Usage .STATIC ? MemoryTypes .GPU_MEM : MemoryTypes .HOST_MEM ;
34+ }
3535
3636 public void upload (MeshData meshData ) {
3737 MeshData .DrawState parameters = meshData .drawState ();
@@ -51,7 +51,7 @@ private void uploadVertexBuffer(MeshData.DrawState parameters, ByteBuffer data)
5151 if (this .vertexBuffer != null )
5252 this .vertexBuffer .freeBuffer ();
5353
54- this .vertexBuffer = new VertexBuffer (data .remaining (), MemoryTypes . GPU_MEM );
54+ this .vertexBuffer = new VertexBuffer (data .remaining (), this . memoryType );
5555 this .vertexBuffer .copyToVertexBuffer (parameters .format ().getVertexSize (), parameters .vertexCount (), data );
5656 }
5757 }
0 commit comments