- unit glMain;
 - interface
 - uses
 - Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OpenGL12,
 - AppEvnts, ExtCtrls;
 - type
 - TglForm = class(TForm)
 - ApplicationEvents1: TApplicationEvents;
 - FrameTimer: TTimer;
 - procedure FormCreate(Sender: TObject);
 - procedure FormDestroy(Sender: TObject);
 - procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
 - procedure FrameTimerTimer(Sender: TObject);
 - private
 - { Private-Deklarationen }
 - myDC : HDC;
 - myRC : HGLRC;
 - procedure RenderGL;
 - public
 - { Public-Deklarationen }
 - end;
 - var
 - glForm: TglForm;
 - Frames : Integer;
 - implementation
 - {$R *.DFM}
 - Procedure TglForm.RenderGL;
 - begin
 - glTranslatef(0.0, 0.0,-4.0);
 - glBegin(GL_QUADS);
 - glVertex3f(-0.5,-0.5, 0.0);
 - glVertex3f(-0.5, 0.5, 0.0);
 - glVertex3f( 0.5, 0.5, 0.0);
 - glVertex3f( 0.5,-0.5, 0.0);
 - glEnd;
 - end;
 - procedure TglForm.FormCreate(Sender: TObject);
 - var
 - myPalette : HPALETTE;
 - begin
 - glForm.Height := 600;
 - glForm.Width := 800;
 - if not InitOpenGL then
 - raise Exception.Create('Fehler beim Initialisieren von OpenGL!');
 - myDC := GetDC(Handle);
 - myRC:= CreateRenderingContext(myDC, [opDoubleBuffered] ,32, 0, 0, 0, 0, myPalette);
 - ActivateRenderingContext(myDC, myRC);
 - glClearColor(0.0, 0.0, 0.0, 0.0); //Hintergrundfarbe
 - glEnable(GL_DEPTH_TEST); //Tiefenpuffer aktivieren
 - end;
 - procedure TglForm.FormDestroy(Sender: TObject);
 - begin
 - DeactivateRenderingContext();
 - DestroyRenderingContext(myRC);
 - closeOpenGL();
 - end;
 - procedure TglForm.ApplicationEvents1Idle(Sender: TObject;
 - var Done: Boolean);
 - begin
 - glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 - glLoadIdentity;
 - RenderGL;
 - SwapBuffers(myDC);
 - inc(Frames);
 - Done := False; // Wichtig!!!
 - end;
 - procedure TglForm.FrameTimerTimer(Sender: TObject);
 - begin
 - glForm.Caption := 'OpenGL [Frames: ' + IntToStr(Frames) +']';
 - Frames := 0;
 - end;
 - end.
 
