示例#1
0
        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));
        }
示例#3
0
 partial void SetUp(OpTypeMatrix instruction, SpirvInstructionTreeBuilder treeBuilder);
 protected virtual TypeDesc GenerateMatrix(OpTypeMatrix type)
 {
     return(GenerateMatrix(type, ResolveType(type.ColumnType)));
 }