From 25a873b5fa6b5d2309220f954a2237411c1ed3af Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Sun, 12 Jun 2016 11:54:04 +0200 Subject: [PATCH] Workarounded performance issues in Bubbles-Effect --- Artemis/Artemis/App.config | 4 ++-- .../Modules/Effects/Bubbles/Bubbles.Designer.cs | 4 ++-- .../Modules/Effects/Bubbles/Bubbles.settings | 4 ++-- .../Modules/Effects/Bubbles/BubblesModel.cs | 15 +++++++-------- .../Modules/Effects/Bubbles/BubblesSettings.cs | 4 ++-- .../Modules/Effects/Bubbles/BubblesView.xaml | 4 ++-- 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/Artemis/Artemis/App.config b/Artemis/Artemis/App.config index d3ab7c400..b40177305 100644 --- a/Artemis/Artemis/App.config +++ b/Artemis/Artemis/App.config @@ -266,10 +266,10 @@ True - 100 + 25 - 16 + 4 12 diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.Designer.cs b/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.Designer.cs index d5fd2c24e..0c2d69d79 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.Designer.cs +++ b/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.Designer.cs @@ -61,7 +61,7 @@ namespace Artemis.Modules.Effects.Bubbles { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("100")] + [global::System.Configuration.DefaultSettingValueAttribute("25")] public int BubbleSize { get { return ((int)(this["BubbleSize"])); @@ -73,7 +73,7 @@ namespace Artemis.Modules.Effects.Bubbles { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("16")] + [global::System.Configuration.DefaultSettingValueAttribute("4")] public int MoveSpeed { get { return ((int)(this["MoveSpeed"])); diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.settings b/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.settings index fc496b031..82bc109bc 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.settings +++ b/Artemis/Artemis/Modules/Effects/Bubbles/Bubbles.settings @@ -12,10 +12,10 @@ True - 100 + 25 - 16 + 4 12 diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesModel.cs b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesModel.cs index 415c2cdd8..7addca167 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesModel.cs +++ b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesModel.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; -using System.Linq.Dynamic; using System.Windows; using Artemis.Managers; using Artemis.Models; @@ -18,9 +17,10 @@ namespace Artemis.Modules.Effects.Bubbles private static readonly Random _random = new Random(); - private const int SCALE = 100; + private const int SCALE = 25; private readonly List _bubbles = new List(); + private Bitmap _bitmap; public BubblesSettings Settings { get; } @@ -43,6 +43,7 @@ namespace Artemis.Modules.Effects.Bubbles public override void Enable() { Rect rect = MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(SCALE); + _bitmap = MainManager.DeviceManager.ActiveKeyboard.KeyboardBitmap(SCALE); for (int i = 0; i < Settings.BubbleCount; i++) { @@ -61,6 +62,7 @@ namespace Artemis.Modules.Effects.Bubbles public override void Dispose() { + _bitmap?.Dispose(); _bubbles.Clear(); Initialized = false; } @@ -80,17 +82,14 @@ namespace Artemis.Modules.Effects.Bubbles public override void Render(out Bitmap keyboard, out Brush mouse, out Brush headset, bool renderMice, bool renderHeadsets) { - keyboard = null; + keyboard = _bitmap; mouse = null; headset = null; - - if (!_bubbles.Any()) return; - - keyboard = MainManager.DeviceManager.ActiveKeyboard.KeyboardBitmap(SCALE); + using (Graphics g = Graphics.FromImage(keyboard)) { g.Clear(Color.Transparent); - g.SmoothingMode = SmoothingMode.HighQuality; + g.SmoothingMode = SmoothingMode.None; foreach (Bubble bubble in _bubbles) bubble.Draw(g); diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesSettings.cs b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesSettings.cs index 57aec84c2..29f7d9403 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesSettings.cs +++ b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesSettings.cs @@ -47,8 +47,8 @@ namespace Artemis.Modules.Effects.Bubbles IsRandomColors = true; BubbleColor = Color.FromArgb(255, 255, 0, 0); IsShiftColors = true; - ShiftColorSpeed = 12; - BubbleSize = 100; + ShiftColorSpeed = 4; + BubbleSize = 25; MoveSpeed = 16; BubbleCount = 14; } diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesView.xaml b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesView.xaml index 808e24da7..efe17de4f 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesView.xaml +++ b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesView.xaml @@ -107,7 +107,7 @@ @@ -117,7 +117,7 @@