Fun with fading

Hey everyone, check this out (replace testwin.c in the test directory)

Also, now that I’ve figured out how to do a clut fade to an arbitrary RGB
value, I need to know how to emulate a gamma fade on direct color displays.

The problem is, if you’re writing directly to the screen, the only way I
know of to emulate the fade is to copy the contents of the screen and fade
each pixel. Unfortunately, if you draw to the screen, it will show up
bright as day, where in a real gamma fade it would still be faded until
you ramped back up the gamma value.

Any ideas?

See ya!
-Sam Lantinga (slouken at devolution.com)—
begin 664 testwin.c
M"B\J($)R:6YG(‘5P(&$@=VEN9&]W(&%N9"!P;&%Y(’=I=&@@:70@B*"B-I
M;F-L=61E(#QS=&1L:6(N:#X
(VEN8VQU9&4@/’-T9&EO+F@^"@HC:69D968@
M0D5.0TA-05)+7U-$3HC:6YC;'5D92<WES+W1I;64N:#X*(V5N9&EF"@HC
M9&5F:6YE($Y/5$E#12A80EP<FEN=&8H(B5S(BP at 6"D["@HC:6YC;'5D92B M4T1,+F at B"B-I;F-L=61E(")31$Q?<VQE97N:"(“G-T871I8R!31$Q?4W5R
M9F%C92J<V-R965N.PH*=F]I9"!$<F%W4&EC="AC:&%R("IB;7!F:6QE+"!I M;G0@<W!E961Y*0I["@E31$Q?4W5R9F%C92J<&EC='5R93L*“5-$3%]296-T
M(&1E<W0[”@EI;G0@:2P at 8V5N=&5R960[”@EI;G0@;F-O;&]R<SL*“5-$3%]#
M;VQO<BJ8V]L;W)S+"J8VUA<#L*”@DOB!,;V%D('1H92!I;6%G92!I;G1O
M(&$@<W5R9F%C92J+PH):68@*"!B;7!F:6QE(#T]($Y53$P@*2!["@D)8FUP M9FEL92](")S86UP;&4N8FUP(CL)"2\J(%-A;7!L92!I;6%G92J+PH)?0H) M<&EC='5R92](%-$3%],;V%D0DU0
&)M<&9I;&4I.PH):68@"!P:6-T=7)E
M(#T]($Y53$P@2!["@D)9G!R:6YT9BAS=&1E<G(L(")#;W5L9&XG="!L;V%D
M("5S.BE<UQN(BP at 8FUP9FEL92P*"0D)"0D)"5-$3%]'971%<G)O<B at I*3L* M"0ER971U<FX["@E]"F9O<BH(&D],#L@:3QP:6-T=7)E+3YW
G!I8W1U<F4M
M/F@[("LK:2I(&EF("@@*"A5:6YT."J
2AP:6-T=7)E+3YP:7AE;’,I5MI
M72]/2R-34@2!F<’)I;G1F’-T9&5R<BP@(BXB
3L*"@DOB!3970@=&AE
M(&1I<W!L87D at 8V]L;W)S(“TM(&]N(&$@:&EC;VQO<B!D:7-P;&%Y('1H:7,@
M:7, at 82!N;RUO<”J+PH):68@*"!P:6-T=7)E+3YF;W)M870M/G!A;&5T=&4@ M*2!["@D);F-O;&]R<R](’!I8W1U<F4M/F9O<FUA="T^<&%L971T92T^;F-O
M;&]R<SL
"0EC;VQO<G,@(#T@%-$3%]#;VQO<BJ*6UA;&QO8RAN8V]L;W)S M*G-I>F5O9BA31$Q?0V]L;W(I*3L*"0EC;6%P("@(#T@%-$3%]#;VQO<BJ M*6UA;&QO8RAN8V]L;W)S*G-I>F5O9BA31$Q?0V]L;W(I*3L*"0EM96UC<'DH M8V]L;W)S+"!P:6-T=7)E+3YF;W)M870M/G!A;&5T=&4M/F-O;&]R<RP*"0D) M"0D);F-O;&]R<RIS:7IE;V8H4T1,7T-O;&]R*2D["@E](&5L<V4@>PH)"6EN M="@(“@("!R+"!G+"!B.PH*"0DO*B!!;&QO8V%T92R-38 at 8V]L;W(@<&%L
M971T92J+PH)"6YC;VQO<G,@/2R-38[”@D)8V]L;W)S("]("A31$Q?0V]L M;W(@*BEM86QL;V,H;F-O;&]R<RIS:7IE;V8H4T1,7T-O;&]R*2D["@D)8VUA M<"@("]("A31$Q?0V]L;W(@*BEM86QL;V,H;F-O;&]R<RIS:7IE;V8H4T1, M7T-O;&]R*2D["@H)"2\J(%-E="!A(#,L,RPR(&-O;&]R(&-U8F4@*B\*"0EF M;W(@*"!R/3[(’(.#L@RMR("D@>PH)"0EF;W(@"!G/3[(&<\.#L@*RMG M("D@>PH)"0D)9F]R("@@8CTP.R!B/#0[("LK8BI(‘L*"0D)“0EI(#T@"AR
M/#PU
7PH9SP,BE\8BD[”@D)"0D)8V]L;W)S6VE=+G(@/2!R/#PU.PH)"0D)
M"6-O;&]R<UMI72YG(#T at 9SP-3L*"0D)"0EC;VQO<G-;:5TN8B](&(\/#8[ M"@D)"0E]"@D)"7T*"0E]"@E]"DY/5$E#12 at B=&5S='=I;CH@<V5T=&EN9R!C M;VQO<G-<;B(I.PH):68@*"A(%-$3%]3971#;VQO<G,H8V]L;W)S+"P+"!N M8V]L;W)S*2I(‘L*"0EF<’)I;G1F*’-T9&5R<BP*(E=A<FYI;F<Z($-O=6QD
M;B=T(’-E="!A;&P@;V8@=&AE(&-O;&]R<RP at 8G5T(%-$3"!W:6QL(&UA<"!T
M:&4@:6UA9V5<;B((B@("@("@("AC;VQO<FUA<"!F861I;F<@=VEL;"!S M=69F97(@+2!T<GD@=&AE("UW87)P(&]P=&EO;BE<;B(*"0DI.PH)?0H)"@DO M*B!$:7-P;&%Y('1H92!P:6-T=7)E("HO"@E31$Q?4V5T0VQI<'!I;F<H<&EC M='5R92P@,"P@,"P@<V-R965N+3YH+"!S8W)E96XM/G<I.PH):68@*"!S<&5E M9'D@*2!["@D)4T1,7U-U<F9A8V4@*F1I<W!L87EF;70["@H)"61I<W!L87EF M;70@/2!31$Q?1&ES<&QA>49O<FUA="AP:6-T=7)E*3L*"0EI9BH(&1I<W!L
M87EF;70@/3T at 3E5,3"I('L*"0D)4T1,7T9R9653=7)F86-E*'!I8W1U<F4I M.PH)"0EF<')I;G1F*'-T9&5R<BP*"0D)"2)#;W5L9&XG="!C;VYV97)T(&EM M86=E.BE<UQN(BP at 4T1,7T=E=$5R<F]R
"DI.PH)“0EG;W1O(&1O;F4[”@D)
M?0H)“7!I8W1U<F4@/2!D:7-P;&%Y9FUT.PH)?2!E;’-E('L*“0E31$Q?36%P
M4W5R9F%C92AP:6-T=7)E+”!S8W)E96XM/F9O<FUA=“D[”@E]”@EP<FEN=&8H
M(BAI;6%G92!S=7)F86-E(&QO8V%T960@:6X@)7,@;65M;W)Y5QN(BP@"@D)
M"2AP:6-T=7)E+3YF;&%G<R931$Q?2%=355)&04-%2_(")V:61E;R(@.BB
M<WES=&5M(BD"@EC96YT97)E9"]("AS8W)E96XM/G<@+2!P:6-T=7)E+3YW M*2\R.PH):68@*"!C96YT97)E9"(#@*2!["@D)8V5N=&5R960@/2P.PH)
M?0H)9&5S=“YY(#T@*’-C<F5E;BT^:”M('!I8W1U<F4M/F at I+S(["@ED97-T M+G<@/2!P:6-T=7)E+3YW.PH)9&5S="YH(#T@<&EC='5R92T^:#L*3D]424-% M*")T97-T=VEN.B!M;W9I;F<@:6UA9V5<;B(I.PH)9F]R("@@:3TP.R!I/#UC M96YT97)E9#L@*RMI("D@>PH)"61E<W0N>"
:68@
"!31$Q?0FQI
M=%-U<F9A8V4H<&EC=‘5R92P at 3E5,3"P@<V-R965N+"F9&5S="D@/"P("D@
M>PH)"0EF<’)I;G1F
’-T9&5R<BP@(D)L:70 at 9F%I;&5D.BE<UQN(BP at 4T1, M7T=E=$5R<F]R*"DI.PH)"0EB<F5A:SL*"0E]"@D)+RH at 5F%L:60@<VEN8V4@ M8VQI<'!I;F<@=V%S('1U<FYE9"!O;BJ+PH)“5-$3%]5<&1A=&5296-T<R at Q
M+“F<&EC='5R92T^8VQI<'!E9"D["@E]"@HC:69D968 at 4T-2145.4TA/5H)
M:68@"!31$Q?4V%V94)-4"AS8W)E96XL(")S8W)E96XN8FUP(BD@/"P("D* M"0EP<FEN=&8H(D-O=6QD;B=T('-A=F4@<V-R965N.BE<UQN(BP at 4T1,7T=E
M=$5R<F]R
"DI.PHC96YD:68*“B-I9FYD968 at 0D5.0TA-05)+7U-$3H)+RH@ M3&5T(&ET('-I="!T:&5R92!F;W(@82!W:&EL92J+PH)<VQE97H-2D["B-E M;F1I9 at H)+RH at 1F%D92!T:&4 at 8V]L;W)M87@B*3D]424-%”)T97-T=VEN
M.B!F861I;F<@;W5T+BXN7&XB3L"6UE;6-P>2AC;6%P+”!C;VQO<G,L(&YC
M;VQO<G,J<VEZ96]F*%-$3%]#;VQO<BDI.PI[”@EI;G0@;6%X<W1E<#L*“5-$
M3%]#;VQO<B!F:6YA;#L*“5-$3%]#;VQO<B!P86QC;VQO<G-;,C4V73L*“7-T
M<G5C=”![”@D)4VEN=#$V(’(L(&<L(&([”@E](&-D:7-T6S(U-ET"@H);6%X
M<W1E<"](#,R+3$["@EF:6YA;"YR(#T@,'A&1CL*"69I;F%L+F<@/2P>#P M.PH)9FEN86PN8B
S+"!C;VQO<G,L
M(#(U-BIS:7IE;V8H4T1,7T-O;&]R2D["@EF;W(@"!I/3[(&D\,C4V.RK
MVD@2"@D)8V1I<W1;:5TN<BS6VE=+F<["@D)8V1I
M<W1;:5TN8B](&9I;F%L+F(M<&%L8V]L;W)S6VE=+F(["@E]"@EF;W(@*"!I M/3[(&D/6UA>’-T97O,CL@*RMI("D@>PDO*B!H86QF=V%Y(&9A9&4@*B\* M"0EI;G0 at 8SL*"0EF;W(@*"!C/3[(&,;F-O;&]R<SL@RMC("D@>PH)“0EC
M;VQO<G-;8UTN<B]('!A;&-O;&]R<UMC72YR*R at H8V1I<W1;8UTN<BII*2DO M;6%X<W1E<#L*"0D)8V]L;W)S6V-=+F<@/2!P86QC;VQO<G-;8UTN9RLH*&-D M:7-T6V-=+F<J:2DI+VUA>'-T97[”@D)"6-O;&]R<UMC72YB(#T@<&%L8V]L
M;W)S6V-=+F(K
"AC9&ES=%MC72YB
FDI
2]M87AS=&5P.PH)“7T*“0E31$Q?
M4V5T0V]L;W)S*&-O;&]R<RP@,“P@;F-O;&]R<RD[”@D)4VQE97H,2D["@E] M"@EF:6YA;"YR(#T@,'@P,#L*"69I;F%L+F<@/2P>#P.PH)9FEN86PN8B]
M(#!X,#["@EM96UC<'DH<&%L8V]L;W)S+"!C;VQO<G,L(#(U-BIS:7IE;V8H M4T1,7T-O;&]R*2D["@EF;W(@*"!I/3[(&D,C4V.RK*VD@*2!["@D)8V1I M<W1;:5TN<B](&9I;F%L+G(M<&%L8V]L;W)S6VE=+G([”@D)8V1I<W1;:5TN
M9R](&9I;F%L+F<M<&%L8V]L;W)S6VE=+F<["@D)8V1I<W1;:5TN8B](&9I
M;F%L+F(M<&%L8V]L;W)S6VE=+F([”@E]"@EM87AS=&5P("](#(["@EF;W(@
M*"!I/3[(&D\/6UA>'-T97[(“LK:2I('L)"2\J(&9I;FES:"!F861E(&]U M="J+PH)“6EN=”!C.PH)“69O<BH(&,],#L at 8SQN8V]L;W)S.RKV,@2![
M"@D)"6-O;&]R<UMC72YR(#T@<&%L8V]L;W)S6V-=+G(K
&-D:7-T6V-=+G(J
M:2DI.PH)“0EC;VQO<G-;8UTN9R]('!A;&-O;&]R<UMC72YG*RAC9&ES=%MC M72YG*FDI*3L*"0D)8V]L;W)S6V-=+F(@/2!P86QC;VQO<G-;8UTN8BLH8V1I M<W1;8UTN8BII*2D["@D)?0H)"5-$3%]3971#;VQO<G,H8V]L;W)S+"P+”!N
M8V]L;W)S
3L*“0E3;&5E<”@Q3L"7T*“69O<BH(&D],#L@:3QN8V]L;W)S M.RKVD@2!["@D)8V]L;W)S6VE=+G(@/2!F:6YA;"YR.PH)"6-O;&]R<UMI
M72YG(#T at 9FEN86PN9SL
"0EC;VQO<G-;:5TN8B](&9I;F%L+F(["@E]"@E3 M1$Q?4V5T0V]L;W)S*&-O;&]R<RP@,"P@;F-O;&]R<RD["DY/5$E#12 at B=&5S M='=I;CH at 9F%D:6YG(&EN+BXN7&XB*3L*"6UE;6-P>2AP86QC;VQO<G,L(&-O M;&]R<RP@,C4V*G-I>F5O9BA31$Q?0V]L;W(I*3L*"69O<BH(&D],#L@:3PR
M-38[("LK:2I('L*"0EC9&ES=%MI72YR(#T at 8VUA<%MI72YR+7!A;&-O;&]R M<UMI72YR.PH)"6-D:7-T6VE=+F<@/2!C;6%P6VE=+F<M<&%L8V]L;W)S6VE= M+F<["@D)8V1I<W1;:5TN8B](&-M87!;:5TN8BUP86QC;VQO<G-;:5TN8CL

M"7T*“69O<BH(&D],#L@:3P];6%X<W1E<#L@*RMI("D@>PDO*BS,B!S=&5P
M(&9A9&4@:6X@B*"0EI;G0 at 8SL"0EF;W(@"!C/3[(&,\;F-O;&]R<SL@ M*RMC("D@>PH)"0EC;VQO<G-;8UTN<B](’!A;&-O;&]R<UMC72YRR at H8V1I
M<W1;8UTN<BII2DO;6%X<W1E<#L"0D)8V]L;W)S6V-=+F<@/2!P86QC;VQO
M<G-;8UTN9RLH*&-D:7-T6V-=+F<J:2DI+VUA>’-T97["@D)"6-O;&]R<UMC M72YB(#T@<&%L8V]L;W)S6V-=+F(K*"AC9&ES=%MC72YB*FDI*2]M87AS=&5P M.PH)"7T*"0E31$Q?4V5T0V]L;W)S*&-O;&]R<RP@,"P@;F-O;&]R<RD["@D) M4VQE97H,2D[”@E]“DY/5$E#12 at B=&5S=’=I;CH at 9F%D:6YG(&]V97)<;B(I
M.PI]”@D9&]N93H"2\J($9R964@=&AE(’!I8W1U<F4 at 86YD(’)E='5R;BJ M+PH)4T1,7T9R9653=7)F86-E*'!I8W1U<F4I.PH)9G)E92AC;VQO<G,I.R!F M<F5E*&-M87I.PH)<F5T=7)N.PI]”@IM86EN*&EN=”!A<F=C+”!C:&%R(“IA
M<F=V6UTI"GL*“5-$3%]0:7AE;$9O<FUA=”!F;W)M870[”@E31$Q?4F5C="J M*G-I>F5S.PH):6YT('<L(&@L(&D["@DO*B!/<'1I;VYS("HO"@EI;G0@<W!E M961Y.PH)56EN=#@@9&5S:7)E9%]B<'["@E5:6YT,S(@=FED96]?9FQA9W,[
M"@EI;G0 at 9G5L;’-C<F5E;CL*(VEF9&5F($)%3D-(34%22U]31$P*“7-T<G5C
M=”!T:6UE=F%L(‘1H96XL(&YO=SL*"6=E=‘1I;65O9F1A>2 at F=&AE;BP at 3E5,
M3"D[“B-E;F1I9 at H)+RH at 4V5T(&1E9F%U;‘0@;W!T:6]N<R!A;F0 at 8VAE8VL@
M8V]M;6%N9"UL:6YE(“HO”@ES<&5E9’D@/2P.PH)9&5S:7)E9%]B<'@/2P M.PH)=FED96]?9FQA9W,@/2P.PH)9G5L;’-C<F5E;B](#[”@EW:&EL92H M(&%R9V,@/BQ(“D@>PH)“6EF(”@@<W1R8VUP*&%R9W9;,5TL(”(M<W!E961Y
M(BD@/3T@,"I('L*"0D)<W!E961Y(#T@,3L*"0D)87)G=BK/2Q.PH)"0EA M<F=C("T](#$["@D)?2!E;'-E"@D):68@*"!S=')C;7H87)G=ELQ72P@(BUB
M<’B*2]/2P("D@>PH)"0EI9BH(&%R9W9;,ET@2!["@D)"0ED97-I<F5D
M7V)P<"]("A5:6YT."EA=&]I*&%R9W9;,ETI.PH)"0D)87)G=BK/2R.PH) M"0D)87)G8RM/2R.PH)"0E](&5L<V4@>PH)"0D)9G!R:6YT9BAS=&1E<G(L M"@D)"0DB5&AE("UB<'@;W!T:6]N(’)E<75I<F5S(&%N(&%R9W5M96YT7&XB
M
3L*"0D)“65X:70H,2D[”@D)"7T*"0E](&5L<V4*"0EI9BH('-T<F-M<"AA M<F=V6S%=+"B+7=A<GB*2]/2P("D@>PH)"0EV:61E;U]F;&%G<R!\/2!3 M1$Q?2%=004Q%5%1%.PH)"0EA<F=V("L](#$["@D)"6%R9V, at +3T@,3L*"0E] M(&5L<V4*"0EI9BH(’-T<F-M<"AA<F=V6S%=+“B+6AW(BD@/3T@,"I(‘L*
M"0D)=FED96]?9FQA9W,@?#T at 4T1,7TA74U521D%#13L*"0D)87)G=BK/2Q
M.PH)"0EA<F=C(“T](#$[”@D)?2!E;’-E”@D):68@"!S=’)C;7H87)G=ELQ M72P@(BUF=6QL<V-R965N(BD@/3T@,"I('L"0D)9G5L;’-C<F5E;B](#$[ M"@D)"6%R9W8@*ST@,3L*"0D)87)G8RM/2Q.PH)"7T at 96QS90H)"0EB<F5A M:SL*"7T*"@EI9BH(%-$3%]);FET*"D@/"P("D@>PH)"69P<FEN=&8H<W1D M97)R+H)"0DB0V]U;&1N)W0@:6YI=&EA;&EZ92!31$PZ(“5S7&XB+”!31$Q?
M1V5T17)R;W(H2D["@D)97AI="@Q3L*"7T*"6%T97AI=“A31$Q?475I=“D[
M"0D)+RH at 0VQE86X@=7@;VX at 97AI="J+PH*“2\J(%-E=”!F=6QL<V-R965N
M(&1I<W!L87D_(“HO”@EI9BH(&9U;&QS8W)E96X@*2!["@D)4T1,7U=-7T9U M;&Q38W)E96XH,2D["@E]"@H)+RH at 4V5T('1H92!B97-T('9I9&5O(&UO9&4@ M870 at -C0P>#0X,"J+PH)4T1,7T=E=%!I>&5L1F]R;6%T*“9F;W)M870I.PH)
M<’)I;G1F*”)$:7-P;&%Y(&ES(&EN(“5D(&)I=”!M;V1E(2H)60 at 8GET97,@ M<&5R('!I>&5L*5QN(BP*"0D)"69O<FUA="Y":71S4&5R4&EX96PL(&9O<FUA M="Y">71E<U!E<E!I>&5L*3L*"6EF("@@9F]R;6%T+D)I='-097)0:7AE;"^
M(#@@2!["@D)<’)I;G1F”()4F5D(’-H:69T(#T@)61<=”@P>"4N.’@I("A,
M;W-T(&)I=’,@/2E9"E<;B(L"@D)"0EF;W)M870N4G-H:69T+"!F;W)M870N M4FUA<VLL(&9O<FUA="Y2;&]S<RD["@D)<')I;G1F*"()1W)E96X@<VAI9G0@ M/2E9%QT*#!X)2XX>"D@$QO<W0 at 8FET<R]("5D*5QN(BP*"0D)"69O<FUA M="Y'<VAI9G0L(&9O<FUA="Y';6%S:RP at 9F]R;6%T+D=L;W-S*3L*"0EP<FEN M=&8H(@E";'5E('-H:69T(#T@)61<="@P>"4N.'@I("A,;W-T(&)I=',@/2E
M9"E<;B(L"@D)“0EF;W)M870N0G-H:69T+”!F;W)M870N0FUA<VLL(&9O<FUA
M=“Y”;&]S<RD["@E]"@EI9BH(&1E<VER961?8G!P("D@>PH)"69O<FUA="Y" M:71S4&5R4&EX96P@/2!D97-I<F5D7V)P<#L*"7T*"7-I>F5S(#T at 4T1,7TQI M<W1-;V1E<R at F9F]R;6%T*3L*"6EF("@@<VEZ97,@/3T at 3E5,3"I('L
"0EF
M<’)I;G1F*’-T9&5R<BP*"0DB3F@=FED96@;6]D97, at 879A:6QA8FQE(&%T
M("5D(&)I=’,@<&5R(’!I>&5L(5QN(BP*"0D)“0D)“69O<FUA=“Y”:71S4&5R
M4&EX96PI.PH)“65X:70H,2D[”@E](&5L<V4*“6EF(”@@<VEZ97,@/3T@%-$
M3%]296-T("HJ
2TQ(“D@>PH)“7<@/2V-#[”@D):”](#0X,#L*"7T at 96QS M92@>PH)“2\J(%!I8VL@<VUA;&QE<W0@<VEZ92^/2V-#!X-#@P(“HO”@D)
M9F]R(”@@:3TP.R!S:7IE<UMI72A/2!.54Q,.RKVD@2"@D)"6EF("@@M*'-I>F5S6VE=+3YW(#XB8@’-I>F5S6VE=+3YH(#X](#0X,"D@
M
0H)“0D)8G)E86L[”@D)?0H)“6EF(”@@<VEZ97-;:5T@/3T at 3E5,3"I('L* M"0D)+2UI.PH)"0EF<')I;G1F*'-T9&5R<BP*"0D)(DQA<F=E<W0@;6]D92H
M)61X)61X)60I(&ES(&QE<W,@=&AA;BV-#!X-#@P(5QN(BP*"0D)"7-I>F5S M6VE=+3YW+"!S:7IE<UMI72T^:"P at 9F]R;6%T+D)I='-097)0:7AE;"D["@D) M"65X:70H,2D["@D)?0H)"7<@/2!S:7IE<UMI72T^=SL*"0EH(#T@<VEZ97-; M:5TM/F@["@E]"@DO*B!);FET:6%L:7IE('1H92!D:7-P;&%Y("HO"@ES8W)E M96X@/2!31$Q?4V5T5FED96]-;V1E*'<L(&@L(&9O<FUA="Y":71S4&5R4&EX M96PL('9I9&5O7V9L86=S*3L*"6EF("@@<V-R965N(#T]($Y53$P@*2!["@D) M9G!R:6YT9BAS=&1E<G(L(")#;W5L9&XG="!S970@)61X)61X)60@=FED96\@ M;6]D93H@)7-<;B(L"@D)"0EW+"!H+"!F;W)M870N0FET<U!E<E!I>&5L+"!3 M1$Q?1V5T17)R;W(H*2D["@D)97AI="@Q*3L*"7T*"7!R:6YT9B at B4V5T("5D M>"5D>"5D(&UO9&5<;B(L('<L(&@L(&9O<FUA="Y":71S4&5R4&EX96PI.PH) M<')I;G1F*"(H=FED96\@<W5R9F%C92!L;V-A=&5D(&EN("5S(&UE;6]R>2E< M;B(L"@D)"2AS8W)E96XM/F9L86=S)E-$3%](5U-54D9!0T4I(#\@(G9I9&5O M(BZ(”)S>7-T96TB3L@DOB!(87,@=&AE(&1I<W!L87D at 9F]R;6%T(&-H
M86YG960_(“HO”@E31$Q?1V5T4&EX96Q&;W)M870H)F9O<FUA=“D[”@EP<FEN
M=&8H(D1I<W!L87D@:7,@:6X@)60 at 8FET(&UO9&4A("@E9"!B>71E<R!P97(@
M<&EX96PI7&XB+H)"0D)9F]R;6%T+D)I='-097)0:7AE;"P at 9F]R;6%T+D)Y M=&5S4&5R4&EX96PI.PH):68@*"!F;W)M870N0FET<U!E<E!I>&5L(#X at ."I
M('L
"0EP<FEN=&8H(@E2960@<VAI9G0@/2E9%QT*#!X)2XX>"D@*$QO<W0@ M8FET<R]("5D5QN(BP"0D)"69O<FUA="Y2<VAI9G0L(&9O<FUA="Y2;6%S
M:RP at 9F]R;6%T+E)L;W-S3L"0EP<FEN=&8H(@E’<F5E;B!S:&EF=“]("5D M7'0H,'@E+CAX*2H3&]S=”!B:71S(#T@)60I7&XB+H)"0D)9F]R;6%T+D=S M:&EF="P at 9F]R;6%T+D=M87-K+"!F;W)M870N1VQO<W,I.PH)"7!R:6YT9B at B M"4)L=64@<VAI9G0@/2E9%QT*#!X)2XX>"D@$QO<W0 at 8FET<R]("5D*5QN M(BP*"0D)"69O<FUA="Y"<VAI9G0L(&9O<FUA="Y";6%S:RP at 9F]R;6%T+D)L M;W-S*3L*"7T*"@DO*B!3970@=&AE('=I;F1O=R!M86YA9V5R('1I=&QE(&)A M<BJ+PH)4T1,7U=-7U-E=$-A<‘1I;VXH(E-$3"!T97-T(’=I;F1O=R(L(")T
M97-T=VEN(BD["@H)+RH at 1&@86QL(‘1H92!D<F%W:6YG(’=O<FL@B*"41R
M87=0:6-T
&%R9W9;,5TL(’-P965D>2D["@HC:69D968 at 0D5.0TA-05)+7U-$
M3H)9V5T=&EM96]F9&%Y*"9N;W<L($Y53$PI.PH)<')I;G1F*")4:6UE.BE
M9"!M:6QL:7-E8V]N9’-<;B(L("AN;W<N='9?<V5C+71H96XN='9?<V5C
2HQ
M,#P*RAN;W<N='9?=7-E8RUT:&5N+G1V7W5S96,I+S$P,#I.PHC96QS90H)
=<VQE97H,2D["B-E;F1I9 at H)97AI="@P*3L*?0HI
end

Hey everyone, check this out (replace testwin.c in the test directory)

Will when I get SDL-0.6c work/It gets incorporated into SDL-3.7 which
will work on my machine. :slight_smile:

Also, now that I’ve figured out how to do a clut fade to an arbitrary RGB
value, I need to know how to emulate a gamma fade on direct color displays.

Cool!

The problem is, if you’re writing directly to the screen, the only way I
know of to emulate the fade is to copy the contents of the screen and fade
each pixel. Unfortunately, if you draw to the screen, it will show up
bright as day, where in a real gamma fade it would still be faded until
you ramped back up the gamma value.

Yeah, tricky… Are you sure that PC graphics cards don’t do Gamma?
Doesn’t Quake or one of those sort of games have gamma correction; or is
that applied before writting to the screen?

njhOn Sun, 12 Apr 1998, Sam Lantinga wrote:

Will when I get SDL-0.6c work/It gets incorporated into SDL-3.7 which
will work on my machine. :slight_smile:

What’s wrong with it now?

Yeah, tricky… Are you sure that PC graphics cards don’t do Gamma?
Doesn’t Quake or one of those sort of games have gamma correction; or is
that applied before writting to the screen?

It’s applied before writing to the screen. Some PC cards do gamma
correction, but you can’t rely on it. There’s a windows API
SetGammaRamp(), and the documentation basically says, “this might work”

See ya!
-Sam Lantinga (slouken at devolution.com)–
Author of Simple DirectMedia Layer -
http://www.devolution.com/~slouken/SDL/

What’s wrong with it now?

Well, a working tarball would be nice :slight_smile:

[njh at crayfish nl]$ tar xzf SDL-0.6d.tar.gz
tar: Skipping to next file header

gzip: stdin: invalid compressed data–crc error
tar: Archive SDL-0.6d.tar.gz EOF not on block boundary
[njh at crayfish nl]$

…correction, but you can’t rely on it. There’s a windows API
SetGammaRamp(), and the documentation basically says, “this might work”

Sigh, I guess you’ll just have to return -17 (Gamma not available) from
the set gamma operations… :slight_smile:

njhOn Mon, 13 Apr 1998, Sam Lantinga wrote: