Force cached effect to be inside canvas

This commit is contained in:
Jaex 2017-11-14 15:27:32 +03:00
parent d3295a412a
commit 09f6edce4a

View file

@ -41,7 +41,7 @@ public virtual void OnDraw(Graphics g)
if (cachedEffect != null) if (cachedEffect != null)
{ {
g.InterpolationMode = InterpolationMode.NearestNeighbor; g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.DrawImage(cachedEffect, Rectangle); g.DrawImage(cachedEffect, RectangleInsideCanvas);
g.InterpolationMode = InterpolationMode.Bilinear; g.InterpolationMode = InterpolationMode.Bilinear;
} }
else else
@ -85,8 +85,12 @@ public override void OnResized()
private void CacheEffect() private void CacheEffect()
{ {
Dispose(); Dispose();
cachedEffect = Manager.CropImage(Rectangle);
ApplyEffect((Bitmap)cachedEffect); if (IsInsideCanvas)
{
cachedEffect = Manager.CropImage(RectangleInsideCanvas);
ApplyEffect((Bitmap)cachedEffect);
}
} }
public override void Dispose() public override void Dispose()