Einzelnen Beitrag anzeigen
Ungelesen 03.04.12, 14:39   #1
burnedhead
Wirklich kein Anfänger
 
Benutzerbild von burnedhead
 
Registriert seit: Mar 2011
Beiträge: 207
Bedankt: 389
burnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkteburnedhead leckt gerne myGully Deckel in der Kanalisation! | 43798710 Respekt Punkte
Standard Delphi - OpenGL will mich ärgern

Also, ich wollte mal mit OpenGL etwas anfangen und komm schon am Anfang nicht weiter, denn ich scheitere schon bei der Initialisierung.
Folgendes Tutorial habe ich mir angeschaut und den entsprechenden Header benutzt:
http://wiki.delphigl.com/index.php/Tutorial_Lektion_1

Nur sehe ich nichts als Fensterfarbe (sollte mal schwarz werden)

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DC := GetDC(Handle);
  RC:=CreateRenderingContext(DC,          //Device Contest
                             [opDoubleBuffered], //Optionen
                             32,          //ColorBits
                             24,          //ZBits
                             0,           //StencilBits
                             0,           //AccumBits
                             0,           //AuxBuffers
                             0);          //Layer
  ActivateRenderingContext(DC, RC);

  glMatrixMode(GL_PROJECTION);
     glLoadIdentity;
     gluPerspective(60, ClientWidth/ClientHeight, 1, 128);
     glMatrixMode(GL_MODELVIEW);
   end;

  glTranslatef(0, 0,-6);                  //Bewegt "Zeichenstift" -> Hier: Nach hinten (Z)
  glTranslatef(-1.5,0,0);                 //Hier: -Y


SwapBuffers(DC);


procedure TForm1.FormResize(Sender: TObject);
begin
  glViewport(0, 0, ClientWidth, ClientHeight);  //Definiert die Zeichenoberfläche in einem Kooridnatensystem -> Hier: nach Fenster
end;
PS: Hat sich erledigt. Durch Probiererei und einem Faceplam der mir selbst galt funktioniert es jetzt...

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DC := GetDC(Handle);
  RC:=CreateRenderingContext(DC,          //Device Contest
                             [opDoubleBuffered], //Optionen
                             32,          //ColorBits
                             24,          //ZBits
                             0,           //StencilBits
                             0,           //AccumBits
                             0,           //AuxBuffers
                             0);          //Layer
  ActivateRenderingContext(DC, RC);
  glEnable(GL_DEPTH_TEST);                
  glDepthFunc(GL_LESS);                   
  glClearColor(0,0,0,0);                       //Hintegrund R,G,B
  Application.OnIdle := ApplicationEventsIdle;
end;

procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
begin
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glViewPort(0, 0, ClientWidth, ClientHeight);
gluPerspective(60, ClientWidth/ClientHeight, 1, 128);

glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);


SwapBuffers(Canvas.Handle);
Done := False;

end;

procedure TForm1.FormResize(Sender: TObject);
begin
  glViewport(0, 0, ClientWidth, ClientHeight);  //Definiert die Zeichenoberfläche in einem Kooridnatensystem -> Hier: nach Fenster
end;
__________________
burnedhead ist offline   Mit Zitat antworten