public void Execute(SceneSnapshot snapshot) { IEntityManager emanager = snapshot.State.GetEntityManager(); Standard.Engine.Core.InputSnapshot input = snapshot.Snapshot; using (var _cl = factory.CreateCommandList()) { _cl.Begin(); var state = new RenderState() { factory = factory, gd = gd, window = window, Commands = _cl, Ticks = (float)snapshot.FrameRateTime.TotalMilliseconds }; var renderables = new List <IRenderableComponent>(); _cl.SetFramebuffer(gd.SwapchainFramebuffer); _cl.SetFullViewports(); _cl.ClearColorTarget(0, RgbaFloat.Black); _cl.ClearDepthStencil(1f); foreach (var entity in emanager.GetEntities().OrderBy(x => x.GetOrderIndex <VeldridRenderSystem>())) { entity.GetComponents <IRenderableComponent>() .DoFirst(x => { x.Update(state); renderables.Add(x); }); } foreach (var renderable in renderables) { renderable.Render(state); } _cl.End(); gd.SubmitCommands(_cl); gd.SwapBuffers(); } }
public SceneSnapshot(IContextState state, Standard.Engine.Core.InputSnapshot isnapshot, TimeSpan time) { State = state; Snapshot = isnapshot; FrameRateTime = time; }