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);
}
}