Ver Fonte

Add MAT4_DATA buffer format

borisrp há 3 meses atrás
pai
commit
f77953dba7
2 ficheiros alterados com 10 adições e 0 exclusões
  1. 9 0
      hxd/BufferFormat.hx
  2. 1 0
      hxsl/SharedShader.hx

+ 9 - 0
hxd/BufferFormat.hx

@@ -35,6 +35,7 @@ enum abstract InputFormat(Int) {
 	public var DVec2 = 2;
 	public var DVec3 = 3;
 	public var DVec4 = 4;
+	public var DMat4 = 16;
 	public var DBytes4 = 9;
 
 	inline function new(v) {
@@ -55,6 +56,7 @@ enum abstract InputFormat(Int) {
 		case DVec2: "DVec2";
 		case DVec3: "DVec3";
 		case DVec4: "DVec4";
+		case DMat4: "DMat4";
 		case DBytes4: "DBytes4";
 		}
 	}
@@ -68,6 +70,7 @@ enum abstract InputFormat(Int) {
 		case TVec(2, VFloat): DVec2;
 		case TVec(3, VFloat): DVec3;
 		case TVec(4, VFloat): DVec4;
+		case TMat4 : DMat4;
 		case TBytes(4): DBytes4;
 		case TFloat: DFloat;
 		default: throw "Unsupported buffer type " + t;
@@ -320,6 +323,7 @@ class BufferFormat {
 	public static var POS3D_NORMAL_UV(get,null) : BufferFormat;
 	public static var POS3D_NORMAL_UV_RGBA(get,null) : BufferFormat;
 	public static var VEC4_DATA(get,null) : BufferFormat;
+	public static var MAT4_DATA(get,null) : BufferFormat;
 
 	public static var INDEX16(get,null) : BufferFormat;
 	public static var INDEX32(get,null) : BufferFormat;
@@ -358,6 +362,11 @@ class BufferFormat {
 		return VEC4_DATA;
 	}
 
+	static function get_MAT4_DATA() {
+		if( MAT4_DATA == null ) MAT4_DATA = hxd.BufferFormat.make([{ name : "data", type : DMat4 }]);
+		return MAT4_DATA;
+	}
+
 	static function get_INDEX16() {
 		if( INDEX16 == null ) {
 			INDEX16 = hxd.BufferFormat.make([{ name : "index", type : DFloat, precision: F16 }]);

+ 1 - 0
hxsl/SharedShader.hx

@@ -89,6 +89,7 @@ class SharedShader {
 				case DVec2: TVec(2,VFloat);
 				case DVec3: TVec(3,VFloat);
 				case DVec4: TVec(4,VFloat);
+				case DMat4: TMat4;
 				case DFloat: TFloat;
 				case DBytes4: TBytes(4);
 				}