public void ParseVector(OpTypeVector instruction) { var componentType = ResolveType(instruction.ComponentType); var instructionComponentCount = instruction.ComponentCount; var vector = SpirvTypeBase.ResolveVector(componentType, instructionComponentCount); AddType(instruction, vector); }
protected virtual TypeDesc GenerateVector(OpTypeVector type, TypeDesc element) { var length = (int)type.ComponentCount; if (!element.IsArray()) { if (element.ElementType == "float") { switch (length) { case 2: return(new TypeDesc("Vector2", length * element.ElementSize)); case 3: return(new TypeDesc("Vector3", length * element.ElementSize)); case 4: return(new TypeDesc("Vector4", length * element.ElementSize)); } } } return(new TypeDesc(element.ElementType, length * element.ArraySize)); }
protected virtual TypeDesc GenerateVector(OpTypeVector type) { return(GenerateVector(type, ResolveType(type.ComponentType))); }
partial void SetUp(OpTypeVector instruction, SpirvInstructionTreeBuilder treeBuilder);