Hi,
ich habe mal ein Spiel versuchsweise terminiert, danach hat folgendes geholfen:
Delphi-Quellcode:
uses math;
type
TGammaRamp =
packed record
R :
array[0..255]
of word;
G :
array[0..255]
of word;
B :
array[0..255]
of word;
end;
function SetGamma(Value : byte) : TGammaRamp;
var
I : integer;
DC : HDC;
V : integer;
begin
for I := 0
to 255
do begin
V := Round(255 * Power(I / 255, Abs(Value) / 255));
if V > 255
then
V := 255;
Result.R[I] := V
shl 8;
Result.G[I] := V
shl 8;
Result.B[I] := V
shl 8;
end;
DC := GetDC(0);
try
SetDeviceGammaRamp(
DC, Result);
finally
ReleaseDC(0,
DC);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetGamma(255);
end;
Das muss natürlich nicht bei jedem Spiel funktionieren und hängt eventuell auch noch von der Grafikkarte ab.