public static void Start(StreamCreatorStage stage) { switch (stage) { case StreamCreatorStage.Global: Global.Start(); break; case StreamCreatorStage.StreamAnalyzer: StreamAnalyzer.Start(); break; case StreamCreatorStage.FindEntryPoint: FindEntryPoint.Start(); break; case StreamCreatorStage.StreamAnalysisPerShader: StreamAnalysisPerShader.Start(); break; case StreamCreatorStage.BubbleUpStreamUsages: BubbleUpStreamUsages.Start(); break; case StreamCreatorStage.ComputeShaderStreamAnalysis: ComputeShaderStreamAnalysis.Start(); break; case StreamCreatorStage.TagCleaner: TagCleaner.Start(); break; case StreamCreatorStage.GenerateStreams: GenerateStreams.Start(); break; case StreamCreatorStage.RemoveUselessAndSortMethods: RemoveUselessAndSortMethods.Start(); break; case StreamCreatorStage.PropagateStreamsParameter: PropagateStreamsParameter.Start(); break; case StreamCreatorStage.TransformStreamsAssignments: TransformStreamsAssignments.Start(); break; case StreamCreatorStage.AssignSearch: AssignSearch.Start(); break; case StreamCreatorStage.CreateOutputFromStream: CreateOutputFromStream.Start(); break; case StreamCreatorStage.CreateStreamFromInput: CreateStreamFromInput.Start(); break; case StreamCreatorStage.StreamFieldVisitor: StreamFieldVisitor.Start(); ++StreamFieldVisitorCount; break; case StreamCreatorStage.StreamFieldVisitorClone: StreamFieldVisitorClone.Start(); break; } }