protected override void Update() { SketchInputManager sketchInputManager = SketchEngine.FindObjectByType <SketchInputManager>(); if (OnSketchPointer == null) { foreach (var sketchPointer in sketchInputManager.SketchPointers) { if (StartRegion.IsOverlapPoint(sketchPointer.Point) && sketchPointer.HitLayer == Level) { if (sketchPointer.State == Input.PointerState.Pressed) { OnSketchPointer = sketchPointer; _StartPos = OnSketchPointer.Point; Pressed = true; } } } } else { if (OnSketchPointer.State == Input.PointerState.Pressed) { Delta = OnSketchPointer.Point - _StartPos; } else { Pressed = false; OnSketchPointer = null; } } }
protected override void Start() { if (SkiaManager == null) { SkiaManager = SketchEngine.FindObjectByType <SkiaManager>(); } SkiaManager.InvalidCanvas(); }
protected override void OnJoystickUp() { //throw new NotImplementedException(); if (SkiaManager == null) { SkiaManager = SketchEngine.FindObjectByType <SkiaManager>(); } SkiaManager.InvalidCanvas(); }
protected override void OnDeltaChanged() { base.OnDeltaChanged(); if (SkiaManager == null) { SkiaManager = SketchEngine.FindObjectByType <SkiaManager>(); } SkiaManager.InvalidCanvas(); }
public Task _RunTask() { Task task = Task.Run(() => { SketchEngine.Start(); }); return(task); }
public void PaintSurface(SkiaManager skiaManager, SKCanvas canvas) { var sketchInputManager = SketchEngine.FindObjectByType <SketchInputManager>(); foreach (var pointer in sketchInputManager.SketchPointers) { //Vector2 pos = Vector2.Transform(pointer.Point, skiaManager.SketchSpaceToCanvasSpaceMatrix); SKPoint pos = skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(new SKPoint(pointer.Point.X, pointer.Point.Y)); canvas.DrawText(pointer.ToString(), pos, _BoardFontPaint); } }
public Sketch() { SketchEngine = new SketchEngine(); UpdateTheadLock = new object(); DesiredFrameRate = 60; SkiaManager = SketchEngine.Instantiate <SkiaManager>(); SketchInfo = SketchEngine.Instantiate <SketchInfo>(); SketchInfo.Init(this); Width = 1000; Height = 200; }
protected override void OnInstantiated() { base.OnInstantiated(); var sketchInfo = SketchEngine.FindObjectByType <SketchInfo>(); RectTransform = new RectTransform(sketchInfo); SketchInputManager = SketchEngine.FindObjectByType <SketchInputManager>(); SketchInputManager.PointerMoved += SketchInputManager_PointerMoved; SketchInputManager.PointerReleased += SketchInputManager_PointerReleased; SketchInputManager.PointerPressed += SketchInputManager_PointerPressed; }
public void PaintSurface(SkiaManager skiaManager, SKCanvas canvas) { var sketchInfo = SketchEngine.FindObjectByType <SketchInfo>(); SKPoint leftDown = new SKPoint(0, 0); SKPoint leftUp = new SKPoint(0, sketchInfo.Sketch.Height); SKPoint rightUp = new SKPoint(sketchInfo.Sketch.Width, sketchInfo.Sketch.Height); SKPoint rightDown = new SKPoint(sketchInfo.Sketch.Width, 0); canvas.DrawLine(skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(leftDown), skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(leftUp), _BorderPaint); canvas.DrawLine(skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(leftUp), skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(rightUp), _BorderPaint); canvas.DrawLine(skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(rightUp), skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(rightDown), _BorderPaint); canvas.DrawLine(skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(rightDown), skiaManager.SketchSpaceToCanvasSpaceMatrix.MapPoint(leftDown), _BorderPaint); }
private void InputManager_PointerEntered(object sender, IPointer e) { SketchPointer sketchPointer = new SketchPointer(this, e); lock (_SketchPointersReadyToEnterLock) { _SketchPointersReadyToEnter.Add(sketchPointer); } PointerInfoCache cache = new PointerInfoCache(sketchPointer, -1, PointerInfoCacheEvent.Entered); lock (_PointerInfoCachesLock) { _PointerInfoCaches.Enqueue(cache); } SketchEngine.RegisterForNextUpdate(this); }
private void InputManager_PointerExited(object sender, IPointer e) { SketchPointer sketchPointer = null; lock (_SketchPointersListLock) { sketchPointer = SketchPointersList.Find((obj) => { if (obj.Pointer == e) { return(true); } return(false); }); } if (sketchPointer == null) { lock (_SketchPointersReadyToEnterLock) { sketchPointer = _SketchPointersReadyToEnter.Find((obj) => { if (obj.Pointer == e) { return(true); } return(false); }); } } if (sketchPointer != null) { lock (_SketchPointersReadyToExitLock) { _SketchPointersReadyToExit.Add(sketchPointer); } var cache = new PointerInfoCache(sketchPointer, sketchPointer.LatestPointerInfoCache.HitLayer, PointerInfoCacheEvent.Exited); lock (_PointerInfoCachesLock) { _PointerInfoCaches.Enqueue(cache); } } SketchEngine.RegisterForNextUpdate(this); }
private void InputManager_PointerPressed(object sender, IPointer e) { SketchPointer sketchPointer = null; lock (_SketchPointersListLock) { sketchPointer = SketchPointersList.Find((obj) => { if (obj.Pointer == e) { return(true); } return(false); }); } if (sketchPointer == null) { lock (_SketchPointersReadyToEnterLock) { sketchPointer = _SketchPointersReadyToEnter.Find((obj) => { if (obj.Pointer == e) { return(true); } return(false); }); } } if (sketchPointer != null) { var cache = new PointerInfoCache(sketchPointer, 0, PointerInfoCacheEvent.Pressed); //throw new NotImplementedException("Do Remember implement Hit test and get layer"); lock (_PointerInfoCachesLock) { _PointerInfoCaches.Enqueue(cache); } } SketchEngine.RegisterForNextUpdate(this); }
public Task _UpdataTask() { Task task = Task.Run(() => { TimeSpan frameTimer = TimeSpan.Zero; DateTime lastFrameDateTime = DateTime.Now; TimeSpan frameRateTimeSpan = new TimeSpan(0, 0, 0, 0, (int)(1 / DesiredFrameRate * 1000)); while (true) { DateTime startUpdateDateTime = DateTime.Now; lock (UpdateTheadLock) { SketchEngine.Update((float)frameTimer.TotalSeconds); } var updateTimeSpan = DateTime.Now - startUpdateDateTime; var sleepTimespan = frameRateTimeSpan - updateTimeSpan; if (sleepTimespan > TimeSpan.FromMilliseconds(0)) { System.Threading.Thread.Sleep((int)sleepTimespan.TotalMilliseconds); } } }); return(task); }
public void InvalidCanvas() { SketchEngine.RegisterForNextUpdate(this); }
public void Init(Action invalidateViewFunc, SKMatrix sketchSpaceToCanvasSpaceMatrix) { SketchEngine.RegisterForNextUpdate(this); InvalidateView = invalidateViewFunc; SketchSpaceToCanvasSpaceMatrix = sketchSpaceToCanvasSpaceMatrix; }
protected override void Start() { base.Start(); SkiaManager = SketchEngine.FindObjectByType <SkiaManager>(); }
public void Start() { SketchEngine.Update(0); //RunSketchTask = _UpdataTask(); RunSketchTask = _RunTask(); }