Pārlūkot izejas kodu

Adding toBufferFlags & fromBufferFlags methods.

clementlandrin 9 mēneši atpakaļ
vecāks
revīzija
93ad49d8dc
1 mainītis faili ar 25 papildinājumiem un 8 dzēšanām
  1. 25 8
      hxd/impl/Allocator.hx

+ 25 - 8
hxd/impl/Allocator.hx

@@ -18,15 +18,32 @@ class Allocator {
 
 	// GPU
 
+	function toBufferFlags(flags : BufferFlags) : Array<h3d.Buffer.BufferFlag> {
+		return switch( flags ) {
+		case Static: null;
+		case Dynamic: [Dynamic];
+		case UniformDynamic: [UniformBuffer,Dynamic];
+		case UniformReadWrite: [UniformBuffer, ReadWriteBuffer];
+		case Uniform: [UniformBuffer];
+		}
+	}
+
+	function fromBufferFlags(flags : haxe.EnumFlags<h3d.Buffer.BufferFlag>) : BufferFlags {
+		if ( flags == Dynamic )
+			return Static;
+		if ( flags == Dynamic )
+			return Dynamic;
+		if ( flags == UniformBuffer | Dynamic )
+			return UniformDynamic;
+		if ( flags == UniformBuffer | ReadWriteBuffer )
+			return UniformReadWrite;
+		if ( flags == UniformBuffer )
+			return Uniform;
+		return Dynamic;
+	}
+
 	public function allocBuffer( vertices : Int, format, flags : BufferFlags = Dynamic ) : h3d.Buffer {
-		return new h3d.Buffer(vertices, format,
-			switch( flags ) {
-			case Static: null;
-			case Dynamic: [Dynamic];
-			case UniformDynamic: [UniformBuffer,Dynamic];
-			case UniformReadWrite: [UniformBuffer, ReadWriteBuffer];
-			case Uniform: [UniformBuffer];
-			});
+		return new h3d.Buffer(vertices, format, toBufferFlags(flags));
 	}
 
 	public function ofFloats( v : hxd.FloatBuffer, format : hxd.BufferFormat, flags : BufferFlags = Dynamic ) {