public override void Parse(WordReader reader, uint wordCount)
        {
            var end = reader.Position + wordCount - 1;

            MergeBlock       = Spv.IdRef.Parse(reader, end - reader.Position);
            SelectionControl = Spv.SelectionControl.Parse(reader, end - reader.Position);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Read instruction operands from the bytecode source.
 /// </summary>
 /// <param name="reader">Bytecode source.</param>
 /// <param name="end">Index of a next word right after this instruction.</param>
 public override void ParseOperands(WordReader reader, uint end)
 {
     MergeBlock       = Spv.IdRef.Parse(reader, end - reader.Position);
     SelectionControl = Spv.SelectionControl.Parse(reader, end - reader.Position);
 }
Ejemplo n.º 3
0
 private void SetUp(OpSelectionMerge op, SpirvInstructionTreeBuilder treeBuilder)
 {
     MergeBlock       = (Label)treeBuilder.GetNode(op.MergeBlock);
     SelectionControl = op.SelectionControl;
     SetUpDecorations(op, treeBuilder);
 }
Ejemplo n.º 4
0
 public static SelectionMerge ThenSelectionMerge(this INodeWithNext node, Label mergeBlock, Spv.SelectionControl selectionControl, string debugName = null)
 {
     return(node.Then(new SelectionMerge(mergeBlock, selectionControl, debugName)));
 }
Ejemplo n.º 5
0
 public SelectionMerge(Label mergeBlock, Spv.SelectionControl selectionControl, string debugName = null)
 {
     this.MergeBlock       = mergeBlock;
     this.SelectionControl = selectionControl;
     DebugName             = debugName;
 }