private void OnResized() { synchronizer.Add((_this, size) => { _this.Device.Resize(size.Width, size.Height); Changed(_this.Device); }, new Size { Height = window.Height, Width = window.Width }); }
public void Change(IGraphicComponent com) { switch (com) { case HittableGeometryComponent geo: // TODO remove this IF, remake additing to Manager base on Generic type if (geo.IsDisposed) { synchronizer.Add((_, cc) => { _.Remove(cc.EntityTag); _.isActualStateDrawed = false; }, geo); } else { geo.BuildTreeAsync() .ContinueWith(x => { synchronizer.Add((_, cc) => { var g = (HittableGeometryComponent)cc; var tr = context .GetComponentManager() .GetComponents <TransformComponent>(cc.EntityTag); var b = g.Box; if (tr.Any()) { b = b.Transform(tr.Single().MatrixWorld); } _.Add(b, g.EntityTag); _.isActualStateDrawed = false; }, x.Result); }); } break; case TransformComponent tr when TryGet(tr.EntityTag, out var found): var entity = tr.EntityTag; var box = context .GetComponentManager() .GetComponent <HittableGeometryComponent>(entity).Box; synchronizer.Add((_, cc) => { var t = (TransformComponent)cc; _.Remove(entity); var worldBox = box.Transform(t.MatrixWorld); _.Add(worldBox, entity); _.isActualStateDrawed = false; }, tr); break; } }
private void OnResized() { var size = new Size { Height = surface.Size.Height, Width = surface.Size.Width }; if (!size.IsValid) { } synchronizer.Add((_this, size) => { _this.Device.Resize(size.Width, size.Height); Changed(_this.Device); }, size); }
public void PushCommand(IInputCommand cmd) { synchronization.Add((own, input) => own.observer.PushCommand(input), cmd); }