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; }
|
||||
|
||||
private bool isEffectCaching;
|
||||
private bool isEffectCaching, cachePending;
|
||||
private Image cachedEffect;
|
||||
|
||||
public abstract void ApplyEffect(Bitmap bmp);
|
||||
|
||||
public override void OnUpdate()
|
||||
{
|
||||
base.OnUpdate();
|
||||
|
||||
if (cachePending)
|
||||
{
|
||||
CacheEffect();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnDraw(Graphics g)
|
||||
{
|
||||
if (isEffectCaching)
|
||||
|
@ -130,7 +140,9 @@ private void CacheEffect()
|
|||
{
|
||||
if (!isEffectCaching)
|
||||
{
|
||||
ClearCache(true);
|
||||
cachePending = false;
|
||||
|
||||
ClearCache();
|
||||
|
||||
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 = null;
|
||||
|
|
Loading…
Reference in a new issue