2025-01-22 16:18:30 +01:00

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;
}
}
}