unit foforras;
{$IFDEF FPC}
{$MODE Delphi}
{$ENDIF}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dglOpenGL, ExtCtrls, StdCtrls, Math;
type
Tfoablak = class(TForm)
timer: TTimer;
procedure Create(Sender: TObject);
procedure Destory(Sender: TObject);
procedure gltimer(Sender: TObject);
procedure SetupGL;
procedure Render;
private
{ Private }
public
{ Public }
end;
var
foablak : Tfoablak;
DC : HDC;
RC : HGLRC;
NearClipping : integer;
FarClipping : integer;
StartTime, TimeCount, FrameCount : Cardinal;
Frames, DrawTime : Cardinal;
implementation
{$IFNDEF FPC}
{$R *.dfm}
{$ELSE}
{$R *.lfm}
{$ENDIF}
procedure Tfoablak.Create(Sender: TObject);
begin
DC := GetDC(Handle);
if not InitOpenGL then Application.Terminate;
RC := CreateRenderingContext( DC,
[opDoubleBuffered],
32,
24,
0,0,0,
0);
ActivateRenderingContext(DC, RC);
SetupGL;
InitOpenGL;
end;
procedure Tfoablak.SetupGL;
begin
glClearColor(0, 0, 0, 0); //hattér színe: RGBx, X = ?
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
end;
procedure Tfoablak.Destory(Sender: TObject);
begin
DeactivateRenderingContext;
DestroyRenderingContext(RC);
ReleaseDC(Handle, DC);
end;
procedure Tfoablak.Render;
begin
NearClipping := 1;
FarClipping := 1000;
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glTranslatef(0, 0, -500); //+-415x +-210y a max -500nál, eddig látható
SwapBuffers(DC);
end;
procedure Tfoablak.gltimer(Sender: TObject);
begin
inc(FrameCount);
Render;
If FrameCount = 20 then
begin
FrameCount := 0;
end;
end;
end.
How can i create crossplatform OpenGL Appliction in Lazarus?
I must use Windows Library because i use HDC and HGLRC.
I would like to use dglOpenGL library because this is newer version. (OpenGL Shading Language 4.20)
Hogyan tudok platformfüggetlen alkalmazást csinálni?
Muszáj használnom a Windows könyvtárat a HDC és HGLRC miatt.
Szeretném a dpgOpenGL könyvtárat használni mert ez újabb. (OpenGL Shading Language 4.20)