home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / DELPHIX.ZIP / Samples / Graphic / GammaControl / Main.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1998-10-06  |  2.0 KB  |  91 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   DirectX, StdCtrls, DXDraws;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     DXDraw: TDXDraw;
  12.     Button1: TButton;
  13.     Button2: TButton;
  14.     DXImageList: TDXImageList;
  15.     procedure DXDrawInitializeSurface(Sender: TObject);
  16.     procedure Button1Click(Sender: TObject);
  17.     procedure Button2Click(Sender: TObject);
  18.     procedure DXDrawRestoreSurface(Sender: TObject);
  19.   private
  20.     { Private ÉΘî╛ }
  21.     FDefaultGammaRamp: TDDGammaRamp;
  22.   public
  23.     { Public ÉΘî╛ }
  24.   end;
  25.  
  26. var
  27.   Form1: TForm1;
  28.  
  29. implementation
  30.  
  31. {$R *.DFM}
  32.  
  33. uses DirectX;
  34.  
  35. procedure TForm1.DXDrawInitializeSurface(Sender: TObject);
  36. begin
  37.   if DXDraw.Primary.GammaControl=nil then
  38.   begin
  39.     try
  40.       raise Exception.Create('Gamma control not supported');
  41.     except
  42.       on E: Exception do
  43.       begin
  44.         Application.HandleException(E);
  45.         Application.Terminate;
  46.         Exit;
  47.       end;
  48.     end;
  49.   end;
  50.  
  51.   DXDraw.Primary.GammaControl.GetGammaRamp(0, FDefaultGammaRamp);
  52. end;
  53.  
  54. procedure TForm1.DXDrawRestoreSurface(Sender: TObject);
  55. begin
  56.   DXImageList.Items[0].StretchDraw(DXDraw.Surface, DXDraw.Surface.ClientRect, 0);
  57.  
  58.   with DXDraw.Surface.Canvas do
  59.   begin
  60.     try
  61.       TextOut(0, 0, Format('%dx%d %d bit color',
  62.         [DXDraw.Display.Width, DXDraw.Display.Height, DXDraw.Display.BitCount]));
  63.     finally
  64.       Release;
  65.     end;
  66.   end;
  67.   DXDraw.Flip;
  68. end;
  69.  
  70. procedure TForm1.Button1Click(Sender: TObject);
  71. begin
  72.   DXDraw.Primary.GammaControl.SetGammaRamp(0, FDefaultGammaRamp);
  73. end;
  74.  
  75. procedure TForm1.Button2Click(Sender: TObject);
  76. var
  77.   GammaRamp: TDDGammaRamp;
  78.   i: Integer;
  79. begin
  80.   for i:=0 to 255 do
  81.   begin
  82.     GammaRamp.Red[i] := 65535-FDefaultGammaRamp.Red[i];
  83.     GammaRamp.Green[i] := 65535-FDefaultGammaRamp.Green[i];
  84.     GammaRamp.Blue[i] := 65535-FDefaultGammaRamp.Blue[i];
  85.   end;
  86.  
  87.   DXDraw.Primary.GammaControl.SetGammaRamp(0, GammaRamp);
  88. end;
  89.  
  90. end.
  91.