From a5e0b24a066ee9009a20eaf21694cbb9ecd5765e Mon Sep 17 00:00:00 2001 From: avolkov Date: Sat, 16 Jan 2010 21:56:46 +0000 Subject: [PATCH] Fixed concurrent fades regression; bug #1079 git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3499 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/ChangeLog | 1 + sc2/src/libs/graphics/cmap.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/sc2/ChangeLog b/sc2/ChangeLog index 6016d1a38..b5dbd06dd 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,5 @@ Changes towards version 0.7: +- Fixed concurrent screen fades regression (bug #1079) - Alex - Removed some legacy source code files related to resources - SvdB - Put SuperMelee source files in separate subdirectory - SvdB - Added additive and alpha drawing modes to graphics lib - Alex diff --git a/sc2/src/libs/graphics/cmap.c b/sc2/src/libs/graphics/cmap.c index d6c0d6576..9deca4c77 100644 --- a/sc2/src/libs/graphics/cmap.c +++ b/sc2/src/libs/graphics/cmap.c @@ -347,14 +347,20 @@ GetFadeAmount (void) } static void -FlushFadeXForms (void) +finishPendingFade (void) { - LockMutex (XFormControl.Lock); if (fadeInterval) { // end the fade immediately fadeAmount += fadeDelta; fadeInterval = 0; } +} + +static void +FlushFadeXForms (void) +{ + LockMutex (XFormControl.Lock); + finishPendingFade (); UnlockMutex (XFormControl.Lock); } @@ -388,6 +394,8 @@ FadeScreen (ScreenFadeType fadeType, SIZE TimeInterval) LockMutex (XFormControl.Lock); + finishPendingFade (); + if (TimeInterval <= 0) { // end the fade immediately fadeAmount = FadeEnd;