typeName property
String
get
typeName
The GLSL-style type name (vec3, mat4, float[4]).
Implementation
String get typeName {
final prefix = switch (type) {
ShaderScalarType.float32 => '',
ShaderScalarType.int32 => 'i',
ShaderScalarType.uint32 => 'u',
ShaderScalarType.boolean => 'b',
ShaderScalarType.float64 => 'd',
_ => '${type.name}_',
};
final base = columns > 1
? '${prefix}mat${columns == vecSize ? '$columns' : '${columns}x$vecSize'}'
: vecSize > 1
? '${prefix}vec$vecSize'
: switch (type) {
ShaderScalarType.float32 => 'float',
ShaderScalarType.int32 => 'int',
ShaderScalarType.uint32 => 'uint',
ShaderScalarType.boolean => 'bool',
ShaderScalarType.float64 => 'double',
_ => type.name,
};
return arrayElements > 0 ? '$base[$arrayElements]' : base;
}