Maelstrom: Back to using the gamma ramp so we get color fading rather than gamma correction.

From b228b5bd9513775ed4273a2a6c4eb8ce7e644cd7 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 22 Oct 2011 03:06:53 -0400
Subject: [PATCH] Back to using the gamma ramp so we get color fading rather
 than gamma correction.

---
 screenlib/SDL_FrameBuf.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/screenlib/SDL_FrameBuf.cpp b/screenlib/SDL_FrameBuf.cpp
index dfb23a9a..e10b2443 100644
--- a/screenlib/SDL_FrameBuf.cpp
+++ b/screenlib/SDL_FrameBuf.cpp
@@ -133,16 +133,23 @@ void
 FrameBuf:: Fade(void)
 {
 	const int max = 32;
+	Uint16 ramp[256];   
 
 	for ( int j = 1; j <= max; j++ ) {
 		int v = faded ? j : max - j + 1;
-		SDL_SetWindowBrightness(window, (float)v / max);
+		for ( int i = 0; i < 256; i++ ) {
+			ramp[i] = (i * v / max) << 8;
+		}
+		SDL_SetWindowGammaRamp(window, ramp, ramp, ramp);
 		SDL_Delay(10);
 	}
 	faded = !faded;
 
         if ( faded ) {
-		SDL_SetWindowBrightness(window, 0.0f);
+		for ( int i = 0; i < 256; i++ ) {
+			ramp[i] = 0;
+		}
+		SDL_SetWindowGammaRamp(window, ramp, ramp, ramp);
 	}
 }