private ISkiaInputComponent getSkiaInputComponent(SKPoint point) { List <ISkiaInputComponent> inputComponents = new List <ISkiaInputComponent>(); for (int i = 0; i < SkiaBehaviourEngine.SkiaObjectCount; i++) { SkiaObject skiaObject = SkiaBehaviourEngine.GetSkiaObject(i); if (skiaObject is ISkiaInputComponent) { ISkiaInputComponent inputComponent = skiaObject as ISkiaInputComponent; if (inputComponent.FirstTouchArea.IsOverlapPoint(point)) { inputComponents.Add(inputComponent); } } } if (inputComponents.Count == 0) { return(null); } ISkiaInputComponent topInputComponent = inputComponents[0]; for (int i = 0; i < inputComponents.Count; i++) { if (inputComponents[i].InputHeightLevel > topInputComponent.InputHeightLevel) { topInputComponent = inputComponents[i]; } } return(topInputComponent); }
protected override void Update() { base.Update(); //SkiaBehaviourEngine.GetSkiaInputManager().OnSkiaTouchAction += _HandleSkiaTouchAction; SkiaInputManager skiaInputManager = SkiaBehaviourEngine.GetSkiaInputManager(); skiaInputManager.OnSkiaTouchAction += _OnSkiaTouchAction; SkiaTouch[] touches = skiaInputManager.Touches; if (touches.Length > 0) { } }
public static SkiaInputManager GetSkiaInputManager(this SkiaBehaviourEngine self) { for (int i = 0; i < self.SkiaObjectCount; i++) { SkiaObject skiaObject = self.GetSkiaObject(i); if (skiaObject is SkiaInputManager) { return(skiaObject as SkiaInputManager); } } return(null); }
public SkiaController() { CanvasView = new SKCanvasView(); CanvasView.PaintSurface += canvasView_PaintSurface; ControllerContentView = CanvasView; canvasInfoProvider = new CanvasInfoProvider(); SkiaBehaviourEngine = new SkiaBehaviourEngine(canvasInfoProvider); SkiaInputManager skiaInputManager = SkiaBehaviourEngine.Instantiate <SkiaInputManager>(); exit = false; Device.StartTimer(TimeSpan.FromSeconds(1 / 60f), () => { CanvasView.InvalidateSurface(); return(!exit); }); }
public MainPage() { this.InitializeComponent(); //CanvasView = new SKXamlCanvas(); InputManager = new InputManager(TouchRect); _CanvasInfoProvider = new CanvasInfoProvider(); SkiaBehaviourEngine = new SkiaBehaviourEngine(_CanvasInfoProvider); _ControlPanel = new KeyboardControllerPanel(SkiaBehaviourEngine); SkiaInputManager skiaInputManager = SkiaBehaviourEngine.Instantiate <SkiaInputManager>(); skiaInputManager.InputManager = InputManager; TouchRect.SizeChanged += CanvasView_SizeChanged; DispatcherTimer dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Tick += DispatcherTimer_Tick; dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 16); dispatcherTimer.Start(); System.Diagnostics.Debug.WriteLine("init:" + Thread.CurrentThread.ManagedThreadId); }
public override void Start() { RectButton rectButton = SkiaBehaviourEngine.Instantiate <RectButton>(); rectButton.RectTransform.AnchorMax = new SKPoint(0, 0); rectButton.RectTransform.AnchorMin = new SKPoint(0, 0); rectButton.RectTransform.OffsetMax = new SKPoint(1000, 1000); rectButton.RectTransform.OffsetMin = new SKPoint(500, 250); ColorJoystick colorJoystick = SkiaBehaviourEngine.Instantiate <ColorJoystick>(); colorJoystick.RectTransform.AnchorMax = new SKPoint(0, 0); colorJoystick.RectTransform.AnchorMin = new SKPoint(0, 0); colorJoystick.RectTransform.OffsetMax = new SKPoint(2000, 500); colorJoystick.RectTransform.OffsetMin = new SKPoint(500, 250); /* * RectButton rectButton = SkiaBehaviourEngine.Instantiate<RectButton>(); * rectButton.RectTransform.AnchorMin = new SKPoint(0, 0); * rectButton.RectTransform.AnchorMax = new SKPoint(0, 0); * rectButton.RectTransform.OffsetMin = new SKPoint(33.49999f, 33); * rectButton.RectTransform.OffsetMax = new SKPoint(143.9f, 80);*/ RectButton rectButton2 = SkiaBehaviourEngine.Instantiate <RectButton>(); rectButton2.RectTransform.AnchorMin = new SKPoint(1, 0); rectButton2.RectTransform.AnchorMax = new SKPoint(1, 0); rectButton2.RectTransform.OffsetMin = new SKPoint(-148.9f, 27.79999f); rectButton2.RectTransform.OffsetMax = new SKPoint(-38.49998f, 74.79999f); RectButton rectButton3 = SkiaBehaviourEngine.Instantiate <RectButton>(); rectButton3.RectTransform.AnchorMin = new SKPoint(0.5f, 1); rectButton3.RectTransform.AnchorMax = new SKPoint(0.5f, 1); rectButton3.RectTransform.OffsetMin = new SKPoint(-47.8f, -102.4f); rectButton3.RectTransform.OffsetMax = new SKPoint(62.59999f, -55.40002f); }
public KeyboardControllerPanel(SkiaBehaviourEngine skiaBehaviourEngine) : base(skiaBehaviourEngine) { }
//private IInputManager inputManager; protected override void Init() { SkiaBehaviourEngine.GetSkiaInputManager().OnSkiaTouchAction += handleSkiaTouchAction; OnSkiaTouches = new List <SkiaTouch>(); }
protected override void OnDestroy() { base.OnDestroy(); SkiaBehaviourEngine.GetSkiaInputManager().OnSkiaTouchAction -= handleSkiaTouchAction; }
public ControlPanel(SkiaBehaviourEngine skiaBehaviourEngine) { SkiaBehaviourEngine = skiaBehaviourEngine; }