public override bool Initialize(BasicGameHost host) { host.InputScheduler.Add(new ScheduledDelegate(delegate { OpenTK.Input.MouseState state = OpenTK.Input.Mouse.GetCursorState(); Point point = host.Window.PointToClient(new Point(state.X, state.Y)); //todo: reimplement if necessary //Vector2 pos = Vector2.Multiply(point, Vector2.Divide(host.DrawSize, this.Size)); Vector2 pos = new Vector2(point.X, point.Y); var tkState = new TkMouseState(state, pos); if (!host.IsActive) { tkState.ButtonStates.ForEach(s => s.State = false); tkState.Wheel = tkState.LastState?.Wheel ?? 0; } PendingStates.Enqueue(new InputState { Mouse = tkState }); }, 0, 0)); return(true); }
public override bool Initialize(GameHost host) { host.InputThread.Scheduler.Add(scheduled = new ScheduledDelegate(delegate { OpenTK.Input.MouseState state = OpenTK.Input.Mouse.GetCursorState(); Point point = host.Window.PointToClient(new Point(state.X, state.Y)); //todo: reimplement if necessary //Vector2 pos = Vector2.Multiply(point, Vector2.Divide(host.DrawSize, this.Size)); Vector2 pos = new Vector2(point.X, point.Y); var tkState = new TkMouseState(state, pos, host.IsActive); PendingStates.Enqueue(new InputState { Mouse = tkState }); FrameStatistics.Increment(StatisticsCounterType.MouseEvents); }, 0, 0)); return(true); }