{при генерации этого примера была использована
иллюстрация к книге "OpenGL в проектах Delphi"
Краснов М.В. softgl@chat.ru (с разрешения автора)}
unit Unit1;
interface
uses
Windows, Messages, Forms, Classes, Controls, ExtCtrls, ComCtrls,
StdCtrls, Dialogs, SysUtils,
OpenGL
;
{подключение самой OpenGL - делается программистом вручную}
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);{выполняется при создании формы}
procedure FormPaint(Sender: TObject);{выполняется при перерисовке формы}
procedure FormDestroy(Sender: TObject);{выполняется при завершений работы приложения - уничтожение формы}
private
hrc :
HGLRC ;{ ссылка на контекст воспроизведения}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{+++ рисование на форме - просто закрашиваем форму +++}
procedure TForm1.FormPaint(Sender: TObject);
begin
wglMakeCurrent
(
Canvas.Handle
, hrc
);
glClearColor
(
0.5
,
0.5
,
0.7
,
1.0
);
{ цвет фона }
glClear
(
GL_COLOR_BUFFER_BIT
);
{ очистка буфера цвета }
wglMakeCurrent
(
0
,
0
);
end;
{--- рисование на форме - просто закрашиваем форму ---}
{+++ Формат пикселя +++}
procedure SetDCPixelFormat ( hdc : HDC );
var
pfd : TPixelFormatDescriptor;
nPixelFormat : Integer;
begin
FillChar (pfd, SizeOf (pfd), 0);
nPixelFormat := ChoosePixelFormat (hdc, @pfd);
SetPixelFormat (hdc, nPixelFormat, @pfd);
end;
{--- Формат пикселя ---}
{+++ создание формы +++}
procedure TForm1.FormCreate(Sender: TObject);
begin
SetDCPixelFormat( Canvas.Handle );
hrc := wglCreateContext ( Canvas.Handle );
end;
{--- создание формы ---}
{+++ завершение работы приложения +++}
procedure TForm1.FormDestroy(Sender: TObject);
begin
wglDeleteContext(hrc);
end;
{--- завершение работы приложения ---}
end.