- unit MainUnit;
- interface
- uses
- Windows, Forms, dglOpenGL, glBitmap, Classes, ExtCtrls, SysUtils, SimpleOpenGL;
- type
- TMainForm = class(TForm)
- FrameTimer: TTimer;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure Render(Sender: TOBject);
- procedure FormResize(Sender: TObject);
- end;
- var
- MainForm: TMainForm;
- // OpenGL Ini
- DC : HDC;
- RC : HGLRC;
- // Test
- Textur1: TglBitmap2D;
- implementation
- {$R *.dfm}
- ////////////
- // CREATE //
- ////////////
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- DC:= GetDC(Handle);
- RC:= CreateRenderingContext( DC,[opDoubleBuffered],32,24,0,0,0,0);
- ActivateRenderingContext(DC, RC);
- glEnable(GL_DEPTH_TEST); // Tiefentest
- glEnable(GL_CULL_FACE); // nur vorderseite zeichnen (gegen urzeigersinn)
- glEnable(GL_TEXTURE_2D);
- glClearColor(0.2, 1, 1, 1);
- // Lade Textur
- Textur1 := TglBitmap2D.Create; // Klasse erstellen
- Textur1.LoadFromFile('Ferby.tga'); // Datei laden
- Textur1.AddAlphaFromColorKey(0, 0, 0); // fixen Alpha setzen
- Textur1.GenTexture; // Wenn alles Fertig ist dann Textur Erzeugen
- Render(NIL);
- end;
- ////////////
- // RENDER //
- ////////////
- procedure TMainForm.Render(Sender: TOBject);
- begin
- // Lösche Altes Bild
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity;
- glViewport(0,0,ClientWidth,ClientHeight);
- glOrtho(0,800,600,0,0,128);
- // Ferby Schriftzug
- Textur1.Bind;
- glSimpleQuad(50,50,700,500,0);
- SwapBuffers(DC);
- end;
- ////////////
- // RESIZE //
- ////////////
- procedure TMainForm.FormResize(Sender: TObject);
- begin
- glViewport(0, 0, ClientWidth, ClientHeight);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity;
- gluPerspective(50, ClientWidth/ClientHeight, 1, 1000);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity;
- end; /////////////
- // DESTROY //
- /////////////
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- DeactivateRenderingContext;
- DestroyRenderingContext(RC);
- ReleaseDC(Handle, DC);
- end;
- end.