für die erhaltenen Ratschläge möchte ich mich bedanken.
Ich habe mich an das Beispiel von Mathias gehalten um etwas probieren zu können. Leider funktioniert das bei mir nicht.
Andere Beispiele aus verschieden Tutorials zeigen ebenfalls nur ein leeres Fenster mit einem schwarzen Balken unten links.
Ich habe den Header benutzt den Mathias vorgeschlagen hat.
Zuerst habe ich in meinem Project ein neues Form eingefügt. Danach den Header (dglOpenGl.pas) in den Projektordner kopiert.
Schließlich ein OpenGlControl auf das Form gezogen und den Code vom Mathias in meine Unit kopiert.
Code: Alles auswählen
unit Unit5;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, OpenGLContext, Forms, Controls, Graphics,
Dialogs,ExtCtrls,DGLOpenGL;
type
{ TAnimation }
TAnimation = class(TForm)
OpenGLControl1: TOpenGLControl;
procedure FormCreate(Sender: TObject);
procedure OpenGLControl1Paint(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Animation: TAnimation;
implementation
{$R *.lfm}
{ TAnimation }
procedure TAnimation.FormCreate(Sender: TObject);
begin
InitOpenGL;
OpenGLControl1.MakeCurrent;
ReadExtensions;
ReadImplementationProperties;
end;
procedure TAnimation.OpenGLControl1Paint(Sender: TObject);
begin
glClearColor(0.8, 0.5, 0.3, 1.0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glColor3f(1, 0, 0);
glVertex3f(1, 1, 0);
glColor3f(0, 1, 0);
glVertex3f(-1, 0, 0);
glColor3f(0, 0, 1);
glVertex3f(1, 0, 0);
glEnd();
OpenGLControl1.SwapBuffers;
end;
end.
Danke für Eure Geduld mit mir !
Hannes