reduce animation fragility

#2072
no idea if this works since I can't repro on my end
This commit is contained in:
Kurt 2018-08-28 16:40:27 -07:00
parent f89d9ca323
commit dfdcc28789

View file

@ -14,7 +14,8 @@ namespace PKHeX.WinForms.Controls
Elapsed += TimerElapsed; Elapsed += TimerElapsed;
} }
private Image GlowBase; private int imgWidth;
private int imgHeight;
private byte[] GlowData; private byte[] GlowData;
private readonly Image ExtraLayer; private readonly Image ExtraLayer;
private Image[] GlowCache; private Image[] GlowCache;
@ -50,9 +51,12 @@ namespace PKHeX.WinForms.Controls
public void Start(PictureBox pbox, Image baseImage, byte[] glowData, Image original) public void Start(PictureBox pbox, Image baseImage, byte[] glowData, Image original)
{ {
GlowBase = baseImage; Enabled = false;
imgWidth = baseImage.Width;
imgHeight = baseImage.Height;
GlowData = glowData; GlowData = glowData;
pb = pbox; pb = pbox;
GlowCounter = 0;
OriginalBackground = original; OriginalBackground = original;
GlowCache = new Image[GlowFps]; GlowCache = new Image[GlowFps];
GlowInterval = 1000 / GlowFps; GlowInterval = 1000 / GlowFps;
@ -85,10 +89,10 @@ namespace PKHeX.WinForms.Controls
var frameData = (byte[])GlowData.Clone(); var frameData = (byte[])GlowData.Clone();
ImageUtil.ChangeAllColorTo(frameData, frameColor); ImageUtil.ChangeAllColorTo(frameData, frameColor);
frame = ImageUtil.GetBitmap(frameData, GlowBase.Width, GlowBase.Height); frame = (Image)ImageUtil.GetBitmap(frameData, imgWidth, imgHeight).Clone();
if (ExtraLayer != null) if (ExtraLayer != null)
frame = ImageUtil.LayerImage(frame, ExtraLayer, 0, 0, 1); frame = ImageUtil.LayerImage(frame, ExtraLayer, 0, 0);
frame = ImageUtil.LayerImage(OriginalBackground, frame, 0, 0, 1); frame = ImageUtil.LayerImage(OriginalBackground, frame, 0, 0);
return GlowCache[frameIndex] = frame; return GlowCache[frameIndex] = frame;
} }