mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Queue processing if it is requested while already processing
This commit is contained in:
parent
7f90c61a9d
commit
8e671348ae
1 changed files with 20 additions and 4 deletions
|
@ -35,11 +35,21 @@ public abstract class BaseEffectShape : BaseShape
|
||||||
|
|
||||||
public abstract string OverlayText { get; }
|
public abstract string OverlayText { get; }
|
||||||
|
|
||||||
private bool isEffectCaching;
|
private bool isEffectCaching, cachePending;
|
||||||
private Image cachedEffect;
|
private Image cachedEffect;
|
||||||
|
|
||||||
public abstract void ApplyEffect(Bitmap bmp);
|
public abstract void ApplyEffect(Bitmap bmp);
|
||||||
|
|
||||||
|
public override void OnUpdate()
|
||||||
|
{
|
||||||
|
base.OnUpdate();
|
||||||
|
|
||||||
|
if (cachePending)
|
||||||
|
{
|
||||||
|
CacheEffect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void OnDraw(Graphics g)
|
public virtual void OnDraw(Graphics g)
|
||||||
{
|
{
|
||||||
if (isEffectCaching)
|
if (isEffectCaching)
|
||||||
|
@ -130,7 +140,9 @@ private void CacheEffect()
|
||||||
{
|
{
|
||||||
if (!isEffectCaching)
|
if (!isEffectCaching)
|
||||||
{
|
{
|
||||||
ClearCache(true);
|
cachePending = false;
|
||||||
|
|
||||||
|
ClearCache();
|
||||||
|
|
||||||
if (IsInsideCanvas)
|
if (IsInsideCanvas)
|
||||||
{
|
{
|
||||||
|
@ -146,11 +158,15 @@ private void CacheEffect()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cachePending = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClearCache(bool forceClear = false)
|
private void ClearCache()
|
||||||
{
|
{
|
||||||
if ((forceClear || !isEffectCaching) && cachedEffect != null)
|
if (!isEffectCaching && cachedEffect != null)
|
||||||
{
|
{
|
||||||
cachedEffect.Dispose();
|
cachedEffect.Dispose();
|
||||||
cachedEffect = null;
|
cachedEffect = null;
|
||||||
|
|
Loading…
Reference in a new issue