From 2e3a331d1345e88b6406d79328d489be1dc263a3 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Thu, 6 Aug 2020 16:28:47 -0700 Subject: [PATCH] disable mouse polling when window is inactive --- KavTest/Engines/InputEngine.cs | 16 +++++++++++++--- KavTest/KavTestGame.cs | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/KavTest/Engines/InputEngine.cs b/KavTest/Engines/InputEngine.cs index e9430ab..398555a 100644 --- a/KavTest/Engines/InputEngine.cs +++ b/KavTest/Engines/InputEngine.cs @@ -13,6 +13,13 @@ namespace KavTest.Engines )] public class InputEngine : Engine { + private Game Game { get; } + + public InputEngine(Game game) + { + Game = game; + } + public override void Update(double dt) { var keyboardState = Keyboard.GetState(); @@ -38,10 +45,13 @@ namespace KavTest.Engines SendMessage(new MoveCameraMessage(new Vector3(5, 0, 0))); } - if (SomeComponent()) + if (Game.IsActive) { - var cameraEntity = ReadEntity(); - SendMessage(new RotateCameraMessage(cameraEntity, -mouseState.X, -mouseState.Y)); + if (SomeComponent()) + { + var cameraEntity = ReadEntity(); + SendMessage(new RotateCameraMessage(cameraEntity, -mouseState.X, -mouseState.Y)); + } } } } diff --git a/KavTest/KavTestGame.cs b/KavTest/KavTestGame.cs index f9b9107..d6fbb55 100644 --- a/KavTest/KavTestGame.cs +++ b/KavTest/KavTestGame.cs @@ -50,7 +50,7 @@ namespace KavTest Smuggler.Importer.ImportGLB(GraphicsDevice, File.OpenRead("Content/rustysphere.glb")) ); - WorldBuilder.AddEngine(new InputEngine()); + WorldBuilder.AddEngine(new InputEngine(this)); WorldBuilder.AddEngine(new AngularVelocityEngine()); WorldBuilder.AddEngine(new MotionEngine()); WorldBuilder.AddEngine(new CameraEngine());