From 6e390ab3a7319f8bde407a8de5640aef5cf020e4 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Mon, 6 Jun 2016 16:01:22 +0200 Subject: [PATCH] Fixed high CPU usage after editing a profile while it's active --- Artemis/Artemis/Managers/ProfileManager.cs | 18 ++++++++---------- .../ProfilePreview/ProfilePreviewModel.cs | 6 +++--- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Artemis/Artemis/Managers/ProfileManager.cs b/Artemis/Artemis/Managers/ProfileManager.cs index 06196cc0d..0168e8dc6 100644 --- a/Artemis/Artemis/Managers/ProfileManager.cs +++ b/Artemis/Artemis/Managers/ProfileManager.cs @@ -54,16 +54,14 @@ namespace Artemis.Managers if (_effectManager.ActiveEffect != ProfilePreviewModel) return; - if (_prePreviewEffect != null) - { - _logger.Debug("Change back effect after profile preview"); - _effectManager.ChangeEffect(_prePreviewEffect); - } - else - { - _logger.Debug("Clear effect after profile preview"); - _effectManager.ClearEffect(); - } + _logger.Debug("Clear effect after profile preview"); + _effectManager.ClearEffect(); + + if (_prePreviewEffect == null || _prePreviewEffect is GameModel) + return; + + _logger.Debug("Change back effect after profile preview"); + _effectManager.ChangeEffect(_prePreviewEffect); } else { diff --git a/Artemis/Artemis/Modules/Effects/ProfilePreview/ProfilePreviewModel.cs b/Artemis/Artemis/Modules/Effects/ProfilePreview/ProfilePreviewModel.cs index 5253a333e..7544c8d3c 100644 --- a/Artemis/Artemis/Modules/Effects/ProfilePreview/ProfilePreviewModel.cs +++ b/Artemis/Artemis/Modules/Effects/ProfilePreview/ProfilePreviewModel.cs @@ -48,11 +48,11 @@ namespace Artemis.Modules.Effects.ProfilePreview var renderLayers = GetRenderLayers(renderMice, renderHeadsets); // Render the keyboard layer-by-layer - keyboard = Profile.GenerateBitmap(renderLayers, DataModel, MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(4), true, true); + keyboard = Profile?.GenerateBitmap(renderLayers, DataModel, MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(4), true, true); // Render the first enabled mouse (will default to null if renderMice was false) - mouse = Profile.GenerateBrush(renderLayers.FirstOrDefault(l => l.LayerType == LayerType.Mouse), DataModel); + mouse = Profile?.GenerateBrush(renderLayers.LastOrDefault(l => l.LayerType == LayerType.Mouse), DataModel); // Render the first enabled headset (will default to null if renderHeadsets was false) - headset = Profile.GenerateBrush(renderLayers.FirstOrDefault(l => l.LayerType == LayerType.Headset), DataModel); + headset = Profile?.GenerateBrush(renderLayers.LastOrDefault(l => l.LayerType == LayerType.Headset), DataModel); } }