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
);
{ ������� ������ ����� }
glColor3f
( 1.0 , 0.0 , 0.0 );
glTranslatef
( 0.0 , 0.0 , 0.0 );
{ ������� �������� ����� ������ }
glRotatef
( 0.0 , 0.0 , 0.0 , 1.0 );
glBegin
(
GL_POLYGON
);
glVertex2f
( -0.8 , 0.3 );
glVertex2f
( -0.5 , 0.5 );
glVertex2f
( 0.6 , 0.6 );
glVertex2f
( 0.8 , -0.2 );
glVertex2f
( 0.2 , -0.8 );
glVertex2f
( -0.8 , -0.4 );
glEnd;
glColor3f
( 0.0 , 1.0 , 1.0 );
glRectf
( 0.9 , -0.9 , 0.6 , -0.6 );
glColor3f
( 1.0 , 0.0 , 1.0 );
glLineWidth
( 5.0 );
glBegin
(
GL_LINES
);
glVertex2f
( 0.9 , 0.0 );
glVertex2f
( -0.9 , 0.0 );
glVertex2f
( 0.0 , 0.9 );
glVertex2f
( 0.0 , -0.9 );
glEnd;
glPointSize
( 10 );
glColor3f
( 1.0 , 1.0 , 0.0 );
glBegin
(
GL_POINTS
);
glVertex2f
( 0.5 , 0 );
glVertex2f
( 0.4 , 0.3 );
glEnd;
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.