public void ParseMatrix(OpTypeMatrix instruction) { var columnType = ResolveType(instruction.ColumnType); var columnCount = instruction.ColumnCount; var vector = SpirvTypeBase.ResolveMatrix((TypeVector)columnType, columnCount); AddType(instruction, vector); }
protected virtual TypeDesc GenerateMatrix(OpTypeMatrix type, TypeDesc element) { var length = (int)type.ColumnCount; if (!element.IsArray()) { if (element.ElementType == "Vector4" && length == 4) { return(new TypeDesc("Matrix4x4", element.ElementSize * length)); } } return(new TypeDesc(element.ElementType, length * element.ElementSize)); }
partial void SetUp(OpTypeMatrix instruction, SpirvInstructionTreeBuilder treeBuilder);
protected virtual TypeDesc GenerateMatrix(OpTypeMatrix type) { return(GenerateMatrix(type, ResolveType(type.ColumnType))); }