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);
        }
Exemple #2
0
        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)
            {
            }
        }
Exemple #3
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);
 }
Exemple #4
0
        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); });
        }
Exemple #5
0
        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)
 {
 }
Exemple #8
0
 //private IInputManager inputManager;
 protected override void Init()
 {
     SkiaBehaviourEngine.GetSkiaInputManager().OnSkiaTouchAction += handleSkiaTouchAction;
     OnSkiaTouches = new List <SkiaTouch>();
 }
Exemple #9
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     SkiaBehaviourEngine.GetSkiaInputManager().OnSkiaTouchAction -= handleSkiaTouchAction;
 }
Exemple #10
0
 public ControlPanel(SkiaBehaviourEngine skiaBehaviourEngine)
 {
     SkiaBehaviourEngine = skiaBehaviourEngine;
 }