Пример #1
0
            public new static BuiltIn Parse(WordReader reader, uint wordCount)
            {
                var end = reader.Position + wordCount;
                var res = new BuiltIn();

                res.BuiltInValue = Spv.BuiltIn.Parse(reader, end - reader.Position);
                return(res);
            }
Пример #2
0
        public static Decoration Parse(WordReader reader, uint wordCount)
        {
            var id = (Enumerant)reader.ReadWord();

            switch (id)
            {
            case Enumerant.SpecId:
                return(SpecId.Parse(reader, wordCount - 1));

            case Enumerant.ArrayStride:
                return(ArrayStride.Parse(reader, wordCount - 1));

            case Enumerant.MatrixStride:
                return(MatrixStride.Parse(reader, wordCount - 1));

            case Enumerant.BuiltIn:
                return(BuiltIn.Parse(reader, wordCount - 1));

            case Enumerant.Stream:
                return(Stream.Parse(reader, wordCount - 1));

            case Enumerant.Location:
                return(Location.Parse(reader, wordCount - 1));

            case Enumerant.Component:
                return(Component.Parse(reader, wordCount - 1));

            case Enumerant.Index:
                return(Index.Parse(reader, wordCount - 1));

            case Enumerant.Binding:
                return(Binding.Parse(reader, wordCount - 1));

            case Enumerant.DescriptorSet:
                return(DescriptorSet.Parse(reader, wordCount - 1));

            case Enumerant.Offset:
                return(Offset.Parse(reader, wordCount - 1));

            case Enumerant.XfbBuffer:
                return(XfbBuffer.Parse(reader, wordCount - 1));

            case Enumerant.XfbStride:
                return(XfbStride.Parse(reader, wordCount - 1));

            case Enumerant.FuncParamAttr:
                return(FuncParamAttr.Parse(reader, wordCount - 1));

            case Enumerant.FPRoundingMode:
                return(FPRoundingMode.Parse(reader, wordCount - 1));

            case Enumerant.FPFastMathMode:
                return(FPFastMathMode.Parse(reader, wordCount - 1));

            case Enumerant.LinkageAttributes:
                return(LinkageAttributes.Parse(reader, wordCount - 1));

            case Enumerant.InputAttachmentIndex:
                return(InputAttachmentIndex.Parse(reader, wordCount - 1));

            case Enumerant.Alignment:
                return(Alignment.Parse(reader, wordCount - 1));

            case Enumerant.SecondaryViewportRelativeNV:
                return(SecondaryViewportRelativeNV.Parse(reader, wordCount - 1));

            case Enumerant.HlslCounterBufferGOOGLE:
                return(HlslCounterBufferGOOGLE.Parse(reader, wordCount - 1));

            case Enumerant.HlslSemanticGOOGLE:
                return(HlslSemanticGOOGLE.Parse(reader, wordCount - 1));

            default:
                return(new Decoration(id));
            }
        }