void CreateCommands() { var commands = new LinkedList <Command>(); foreach (var renderable in renderMapper) { var technique = renderable.Technique; var model = renderable.Model; RenderCommand renderCommand; if (technique.Mapping.Key.Supports(VertexShaderFlags.InstanceWorld)) { renderCommand = new InstancingRenderCommand(Services, technique, model, renderable.Entities); } else { renderCommand = new TechniqueRenderCommand(Services, technique, model, renderable.Entities); } commands.AddLast(renderCommand); } var sv = new StateViewer(Services, commands); var resultCommands = sv.Analyze(); if (resultCommands == null) { LogEvent.Engine.Error("Nothing to render!"); } else { Messenger.Send(new CommandUpdateMessage(resultCommands)); } IsEnabled = false; }
public IEnumerable <Command> Result() { StateViewer sv = new StateViewer(services, commands); return(sv.Analyze()); }