Browse Source

added LargeBuffer support

Nicolas Cannasse 5 năm trước cách đây
mục cha
commit
2f04242375
2 tập tin đã thay đổi với 5 bổ sung1 xóa
  1. 4 0
      h3d/Buffer.hx
  2. 1 1
      h3d/impl/MemoryManager.hx

+ 4 - 0
h3d/Buffer.hx

@@ -29,6 +29,10 @@ enum BufferFlag {
 		Used for shader input buffer
 	**/
 	UniformBuffer;
+	/**
+		Use to allow to alloc buffers with >64K vertices (requires 32 bit indexes)
+	**/
+	LargeBuffer;
 }
 
 class Buffer {

+ 1 - 1
h3d/impl/MemoryManager.hx

@@ -131,7 +131,7 @@ class MemoryManager {
 	function allocBuffer( b : Buffer, stride : Int ) {
 		// split big buffers
 		var max = b.flags.has(Quads) ? 65532 : b.flags.has(Triangles) ? 65533 : 65534;
-		if( b.vertices > max && !b.flags.has(UniformBuffer) ) {
+		if( b.vertices > max && !b.flags.has(UniformBuffer) && !b.flags.has(LargeBuffer) ) {
 			if( max == 65534 )
 				throw "Cannot split buffer with "+b.vertices+" vertices if it's not Quads/Triangles";
 			var rem = b.vertices - max;