95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.graphics4; | ||
|  | 
 | ||
|  | enum abstract VertexData(Int) { | ||
|  | 	var Float32_1X = 0; | ||
|  | 	var Float32_2X = 1; | ||
|  | 	var Float32_3X = 2; | ||
|  | 	var Float32_4X = 3; | ||
|  | 	var Float32_4X4 = 4; | ||
|  | 	var Int8_1X = 5; | ||
|  | 	var UInt8_1X = 6; | ||
|  | 	var Int8_1X_Normalized = 7; | ||
|  | 	var UInt8_1X_Normalized = 8; | ||
|  | 	var Int8_2X = 9; | ||
|  | 	var UInt8_2X = 10; | ||
|  | 	var Int8_2X_Normalized = 11; | ||
|  | 	var UInt8_2X_Normalized = 12; | ||
|  | 	var Int8_4X = 13; | ||
|  | 	var UInt8_4X = 14; | ||
|  | 	var Int8_4X_Normalized = 15; | ||
|  | 	var UInt8_4X_Normalized = 16; | ||
|  | 	var Int16_1X = 17; | ||
|  | 	var UInt16_1X = 18; | ||
|  | 	var Int16_1X_Normalized = 19; | ||
|  | 	var UInt16_1X_Normalized = 20; | ||
|  | 	var Int16_2X = 21; | ||
|  | 	var UInt16_2X = 22; | ||
|  | 	var Int16_2X_Normalized = 23; | ||
|  | 	var UInt16_2X_Normalized = 24; | ||
|  | 	var Int16_4X = 25; | ||
|  | 	var UInt16_4X = 26; | ||
|  | 	var Int16_4X_Normalized = 27; | ||
|  | 	var UInt16_4X_Normalized = 28; | ||
|  | 	var Int32_1X = 29; | ||
|  | 	var UInt32_1X = 30; | ||
|  | 	var Int32_2X = 31; | ||
|  | 	var UInt32_2X = 32; | ||
|  | 	var Int32_3X = 33; | ||
|  | 	var UInt32_3X = 34; | ||
|  | 	var Int32_4X = 35; | ||
|  | 	var UInt32_4X = 36; | ||
|  | 	// deprecated | ||
|  | 	var Float1 = Float32_1X; | ||
|  | 	var Float2 = Float32_2X; | ||
|  | 	var Float3 = Float32_3X; | ||
|  | 	var Float4 = Float32_4X; | ||
|  | 	var Float4x4 = Float32_4X4; | ||
|  | 	var Short2Norm = Int16_2X_Normalized; | ||
|  | 	var Short4Norm = Int16_4X_Normalized; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Return the element size of the given vertex data type in bytes. | ||
|  | 	**/ | ||
|  | 	public static inline function getStride(vertexData: VertexData): Int { | ||
|  | 		return switch (vertexData) { | ||
|  | 			case Float32_1X: 4 * 1; | ||
|  | 			case Float32_2X: 4 * 2; | ||
|  | 			case Float32_3X: 4 * 3; | ||
|  | 			case Float32_4X: 4 * 4; | ||
|  | 			case Float32_4X4: 4 * 4 * 4; | ||
|  | 			case Int8_1X: 1; | ||
|  | 			case UInt8_1X: 1; | ||
|  | 			case Int8_1X_Normalized: 1; | ||
|  | 			case UInt8_1X_Normalized: 1; | ||
|  | 			case Int8_2X: 1 * 2; | ||
|  | 			case UInt8_2X: 1 * 2; | ||
|  | 			case Int8_2X_Normalized: 1 * 2; | ||
|  | 			case UInt8_2X_Normalized: 1 * 2; | ||
|  | 			case Int8_4X: 1 * 4; | ||
|  | 			case UInt8_4X: 1 * 4; | ||
|  | 			case Int8_4X_Normalized: 1 * 4; | ||
|  | 			case UInt8_4X_Normalized: 1 * 4; | ||
|  | 			case Int16_1X: 2 * 1; | ||
|  | 			case UInt16_1X: 2 * 1; | ||
|  | 			case Int16_1X_Normalized: 2 * 1; | ||
|  | 			case UInt16_1X_Normalized: 2 * 1; | ||
|  | 			case Int16_2X: 2 * 2; | ||
|  | 			case UInt16_2X: 2 * 2; | ||
|  | 			case Int16_2X_Normalized: 2 * 2; | ||
|  | 			case UInt16_2X_Normalized: 2 * 2; | ||
|  | 			case Int16_4X: 2 * 4; | ||
|  | 			case UInt16_4X: 2 * 4; | ||
|  | 			case Int16_4X_Normalized: 2 * 4; | ||
|  | 			case UInt16_4X_Normalized: 2 * 4; | ||
|  | 			case Int32_1X: 4 * 1; | ||
|  | 			case UInt32_1X: 4 * 1; | ||
|  | 			case Int32_2X: 4 * 2; | ||
|  | 			case UInt32_2X: 4 * 2; | ||
|  | 			case Int32_3X: 4 * 3; | ||
|  | 			case UInt32_3X: 4 * 3; | ||
|  | 			case Int32_4X: 4 * 4; | ||
|  | 			case UInt32_4X: 4 * 4; | ||
|  | 		} | ||
|  | 	} | ||
|  | } |