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/Managers/LoopManager.cs b/Artemis/Artemis/Managers/LoopManager.cs index 348c4bb26..6cb6d12c3 100644 --- a/Artemis/Artemis/Managers/LoopManager.cs +++ b/Artemis/Artemis/Managers/LoopManager.cs @@ -144,17 +144,20 @@ namespace Artemis.Managers return; // Fill the bitmap's background with black to avoid trailing colors on some keyboards - var fixedBmp = new Bitmap(bitmap.Width, bitmap.Height); - using (var g = Graphics.FromImage(fixedBmp)) + // Bitmaps needs to be disposd! + using (var fixedBmp = new Bitmap(bitmap.Width, bitmap.Height)) { - g.Clear(Color.Black); - g.DrawImage(bitmap, 0, 0); + using (var g = Graphics.FromImage(fixedBmp)) + { + g.Clear(Color.Black); + g.DrawImage(bitmap, 0, 0); + } + + bitmap = fixedBmp; + + // Update the keyboard + _deviceManager.ActiveKeyboard?.DrawBitmap(bitmap); } - - bitmap = fixedBmp; - - // Update the keyboard - _deviceManager.ActiveKeyboard?.DrawBitmap(bitmap); } } } 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 @@