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 @@