![]() |
Probleme beim initialisieren von OpenGl (Lazarus)
Liebes Delphi-PRAXIS Mitglieder,
Ich möchte versuchen mir Wissen über OpenGl anzueignen. Ich benutze Lazarus und möchte dort OpenGl initialisieren. Ich habe versucht diesen Thread zu benutzen: ![]() Zitat:
Delphi-Quellcode:
Darauf folgt die Fehlermeldung:
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, DGLOpenGL; "Unit DGLOpenGL nicht gefunden" Das war erstmal das erste und Hauptproblem. Ich hoffe es ist leicht zu lösen. Ich vermute es liegt daran, dass ich die DGLOpenGL.pas Datei im falschen Verzeichnis habe. Das Tutorial sagt ich soll sie ins Zitat:
Vielleicht kann mir nocheinmal jemand gegliederte Tipps zur initialisierung ans Herz legen, denn ich bin etwas verwirrt. Wenn es fertige Units gibt die bereits auf OpenGl geschrieben sind würde ich mich auch mit diesen anfreunden. So wie es aussieht brauche ich das ausführlichste Tutorial der Welt xD EDIT: Wenn mir jemand das Gegenstück von Lazarus zu dem /lib Ordner in Delphi nennen könnte würde mir das vielleicht helfen, da ich im Fall das es nicht anderst geht auch auf fertige Engins wie Andorra 2D zurückgreifen würde. Bei allen Tutorials habe ich jedoch nur gelesen, dass ich den src Ordner von Andorra 2D in den /lib Ordner von Delphi kopieren muss :wall: Ich hoffe auf schnelle Hilfe, Viele Grüße Dunkelbunt. |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Für Lazarus Probleme gibts ja auch das
![]() Aber bei solchen Kleinigkeiten kann man auch so helfen ;). Kopiere die dglOpenGL.pas in das Verzeichniss, in welchem du deine Unit1 gespeichert hast (Solltest du unter Linux arbeiten, wäre die Großkleinschreibung auch noch zu beachten). Dann würde ich dir das Paket "OpenGLControl" von Lazarus (zumindest in meiner SVN Version gibts das) empfehlen, dieses macht einiges einfacher. Ist die Komponente installiert, dann kannst du sie einfach wie ein TPanel auf dein Formular setzen. dann nur noch folgende Dinge Setzen :
Delphi-Quellcode:
Im OnPaint Event kannst du rendern.
Var
allowcnt: Integer = 0; Procedure TForm1.OpenGLControl1MakeCurrent(Sender: TObject; Var Allow: boolean); Begin If allowcnt > 2 Then Begin allow := false; exit; End; inc(allowcnt); // Sollen Dialoge beim Starten ausgeführt werden ist hier der Richtige Zeitpunkt If allowcnt = 1 Then Begin // Init dglOpenGL.pas , Teil 2 ReadExtensions; // Anstatt der Extentions kann auch nur der Core geladen werden. ReadOpenGLCore; ReadImplementationProperties; End; .. End; Procedure TForm1.FormCreate(Sender: TObject); Begin // Init dglOpenGL.pas , Teil 1 If Not InitOpenGl Then Begin showmessage('Error, could not init dglOpenGL.pas'); Halt; End; Mittels OpenGLControl1.doOnPaint; startest du das Rendern neu. So viel fürs erste. |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Was für ein dummer Fehler =)
Danke erstmal für den Tipp mit dem selben Verzeichnis. :dp: Ich versuche jetz das Tutorial ersteinmal weiter zu verfolgen und melde mich dann sobalt der nächste Fehler auftritt. LG Dunkelbunt Edit: Frage 2) Zitat:
(und allgemein, welches ist das beste Tutorial zur Initialisierung?) Problem 3) Beim starten der nach Tutorial gefertigten Anwendung kommt ein Error in der dglOpenGL Unit: Es wird
Delphi-Quellcode:
blau markiert.
GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF};
Der Error lautet: Zitat:
Zitat:
Zitat:
Ich bitte dringend um Hilfe. |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Liste der Anhänge anzeigen (Anzahl: 1)
OK, deine Versuche sind Sch***
ich denke dass es an Lazarus liegt, und das das Tutorial einfach nicht dafür gemacht ist. Hier mein "Angebot" Ich habe eine "Basis" Version, von der aus ich immer eine neue OpenGL Anwendung erzeuge ( siehe Anhang). Diese Version compiliert unter Windows , als auch Linux. Du must lediglich die dglOpenGL.pas in das Verzeichniss kopieren, und eben OpenGLControll installiert haben... Zu frage 2 Schreibe einfach da wo
Delphi-Quellcode:
danach deine Const Deklarationen.
Var Form1:TForm1;
Const NearClipping = 1; FarClipping = 1000; Dein Problem 3 kann ich nicht nachvollziehen, aber evtl liegts daran dass deine Lazarus Version zu alt ist, lade mal die von : ![]() und dort die "Lazarus + fpc 2.4.3 win32 Lazarus-0.9.29-27113-fpc-2.4.3-20100817-win32.exe" nachdem du windows user zu sein scheinst... Zitat:
|
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Danke,
auch für die klaren Worte Zitat:
Vielen Dank für eure Hilfe. EDIT: Ich habe mir OpenGlControl runtergeladen. Es handelte sich dabei um ein .zip Archiv mit lauter .aps, .clw ... Dateien. Es gibt keine exe, deshalb wundere ich mich, da du sagtest ich soll es installieren. Hier nun meine Frage: Ist es das richtige? Wenn nicht bitte poste einen Link und falls es eine besondere Installation erfordert eine kurze "Anleitung". Danke EDIT2: Ich hab versucht deine Unit zu öffnen und Lazarus verwies auf ein nicht installiertes TOpenGLControl. (siehe oben) Außerdem kommt der Fehler beim Start: Zitat:
|
AW: Probleme beim initialisieren von OpenGl (Lazarus)
*g*
OK hier nun mein Versuch einer "Schritt für Schritt Anleitung" 1. Du hast hoffentlich den Daily Snapshot runtergeladen den ich in Post #4 angedeutet habe, und auch Installiert. 2. Du hast erfolgreich diesen Snapshot auf deinem System installiert und diese Version ist die Einzige Lazarus version auf deinem System. 3. Du kannst damit "normale" Anwendungen Compilieren und Ausführen, ohne dass Fehler auftreten. So dann können wir Loslegen. Da ich davon Ausgehe, dass du die Deutsche Version installiert hast, erkläre ich es für diese : Als nächstes must du den Speicherort von Lazarus rauskriegen durchsuche deine Festplatte nach der Datei "startlazarus.exe" und merke dir den Pfad, im folgenden Bezeichne ich diesen als <lazdir> 4. Wir installieren das OpenGLControl - Starte Lazarus - Klicke Package -> "Package-Datei (.lpk) öffen" - öffne die Datei <lazdir>\components\OpenGL\lazopenGLcontext.lpk - Klicke auf Installieren und bestätige, das Kompilieren dauert locker 1-2 mins. 5. Wenn du Alles richtig gemacht hast hat sich Lazarus anschließend neu gestartet und es gibt nun eine Karteikarte "OpenGL" 6. Lade mein Projekt aus Post #4 - entferne den Eintrag "opengl_graphikengine" aus der Uses liste. 7. Bereinige das Projekt von meinen Linux Rückständen : - Klicke Projekt -> Projektinstpektor - entferne die Einträge : uvectormath, ugraphic, opengl_graphikengine 8. Compiliere das Projekt und erfreue dich am "roten Strich" gezeichnet im OpenGLControl mittels OpenGL befehlen. so ich hoffe das war Detailiert genug, andernfalls warte ich auf deine Fehlerbeschreibung ;) |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Danke für deine Antwort,
(Dieser Post wird noch weiter editiert je nach Fortschritt) Die Punkte 1-3 kannst du abhaken, alles passt soweit. Bei jedem start von Lazarus möchte er deine Unit öffnen (OpenGlSample nenne ich sie mal) und sagt das das Package TOpenGlControl fehlt. Wir sind ja dabei dieses zu installieren. EDIT 1: Zu Punkt 4: Nach dem ich installieren klicke und bestätige kommt folgende Fehlermeldung: Zitat:
EDIT 2: Ich habe herausgefunden, dass das Package JPEGForLazarus fehlt. In einem englischen Forum ![]() Ich hoffe jemand kann helfen. |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Also die sache mit dem JPEGForLazarus ist natürlich merkwürdig.
Ich denke aber dass das Hauptproblem darin liegt, dass du Lazarus nicht Sauber gelöscht und wieder neu installiert hast. Probier mal das : Starte Lazarus klicke alle Fehlermeldungen weg, und dann starte ein neues Projekt ( Projekt -> neues Projekt -> Anwendung -> OK ) Dann solltest du ein leeres Projekt haben. Das du auch Kompilieren kannst. Dann beende Lazarus und starte Lazarus neu. Es sollte Fehlerfrei gehen. Kommt der Fehler immer noch, dann Package -> Install / Uninstall Package ( der unterste Eintrag, hab gerad kein Deutsches Lazarus mehr da ) In der Linken Liste das JPEGForLazarus paket suchen und doppelklicken, so dass es weg ist. Speichern und IDE neu bauen. Danach mit 4. von meinem Vorherigen Post weitermachen. Im Zweifel schreib mir mal in ner PN deine ICQ Nummer, dann kriegen wir das auch schneller hin... |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
PN gesendet und jetz versuche ich Lazarus komplett zu löschen und neu zu installieren.
ENDLICH EDIT 1: Nach neuinstalltion ist jetzt auch die Fehlermelung mit JPEGForLazarus verschwunden (das Package ist aber trotzdem auch ion der Package Liste unauffindbar o.O). Habe jetz OpenGlContext installiert und befolge nun deine weiteren Schritte. EDIT 2: Alle deine Punkte erfolgreich ausgeführt =) Jetz sitz hier ein ganz neuer freudiger Anfänger dem zum lernen von OpenGl nichts mehr im Wege steht =) Dank kräftiger Hilfe versteht sich =) Achja, nochwas: "WOOOW ein Roter Strich!" Wer auch in diesen Genuss kommen will dem empfehle ich diesen Thread genau zu studieren und hoffentlich wie ich endlich OpenGl benutzen zu können =) :wink: Vielen Dank und ein extra Dankeschön an Corpsman für seine Hilfe :dp: LG Dunkelbunt |
AW: Probleme beim initialisieren von OpenGl (Lazarus)
Bedenke :
Wenn du es erfolgreich geschafft hast, siehst du ein Fenster mit einer schwarzen Fläche (das ist das OpenGLControl) und einer Roten Linie ( gezeichnet via OpenGL Befehlen im 2D-Modus ) Du hast damit lediglich die Grundlage zur Erstellung einer OpenGL Anwendung. Zur Einarbeitung in OpenGL benötigst du mindestens ![]() oder ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz