OpenGL

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску

OpenGL - открытая библиотека для написания приложений, использующих компьютерную графику. Для использования OpenGL нужно скачать модуль OpenGL.pas.

Пример программы, выводящей зеленый квадрат:

{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}
{$apptype windows}

uses System, System.Drawing, System.Windows.Forms, OpenGL;

type Form1 = class(Form)

_hdc : HDC;

constructor Create;
begin
  _hdc := GetDC(self.Handle.ToInt32());
  OpenGLInit(self.Handle);
end;

protected procedure OnPaint(e: System.Windows.Forms.PaintEventArgs); override;
begin
  glClearColor(single(0.0), single(0.0), single(0.0), single(0.0));
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glColor3f(single(0.0), single(1.0), single(0.0));
  glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
  glBegin(GL_POLYGON);
    glVertex2f(single(-0.5), single(-0.5));
    glVertex2f(single(-0.5), single(0.5));
    glVertex2f(single(0.5), single(0.5));
    glVertex2f(single(0.5), single(-0.5));
  glEnd();
  glFlush();
  SwapBuffers(_hdc);
end;

procedure Form_Closed(sender : object; e : EventArgs);
begin
  OpenGLUninit(self.Handle);
end;

procedure Form_Resize(sender: object; e : EventArgs);
begin
  glViewport(0, 0, Width, Height);
end;
end;

var f : Form1;
begin
  f := new Form1();
  f.Resize += f.Form_Resize;
  f.Closed += f.Form_Closed;
  Application.Run(f);
end.