From b751858b169c5fcf4f71efb2d157938c64b77642 Mon Sep 17 00:00:00 2001 From: Jonas Kulla Date: Fri, 22 Aug 2014 23:53:11 +0200 Subject: [PATCH] Graphics: Fadein/out should interpolate from current brightness --- src/graphics.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/graphics.cpp b/src/graphics.cpp index 913f879..68368e8 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -727,9 +727,12 @@ void Graphics::fadeout(int duration) { FBO::unbind(); + float curr = p->brightness; + float diff = 255.0 - curr; + for (int i = duration-1; i > -1; --i) { - setBrightness((255.0 / duration) * i); + setBrightness(diff + (curr / duration) * i); if (p->frozen) { @@ -754,9 +757,12 @@ void Graphics::fadein(int duration) { FBO::unbind(); - for (int i = 0; i < duration; ++i) + float curr = p->brightness; + float diff = 255.0 - curr; + + for (int i = 1; i <= duration; ++i) { - setBrightness((255.0 / duration) * i); + setBrightness(curr + (diff / duration) * i); if (p->frozen) {