AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Probleme beim initialisieren von OpenGl (Lazarus)
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim initialisieren von OpenGl (Lazarus)

Ein Thema von Dunkelbunt27 · begonnen am 17. Aug 2010 · letzter Beitrag vom 18. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 17:22
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: http://wiki.delphigl.com/index.php/Tutorial_Quickstart, doch leider bin ich schon am Anfang auf erste Probleme gestoßen:

Zitat:
Zuerst einmal solltet Ihr die DGLOpenGL.pas in die uses-Klausel des interface-Teils der Unit1 schreiben.
Ich habe genau das versucht, doch es kommt dauernd eine Fehlermeldung, dass ein ";" erwartet wurde aber ein "." (bei .pas) gefunden wurde. Also hab ich bei uses nur DGLOpenGL eingegeben. Das sah etwa so aus:
Delphi-Quellcode:
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, DGLOpenGL;
Darauf folgt die Fehlermeldung:
"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:
/lib
Verzeichnis legen. Da das Tutorial für Delphi geschrieben wurde, finde ich in meinem Lazarus Ordner kein /lib Ordner =(
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

Ich hoffe auf schnelle Hilfe,
Viele Grüße Dunkelbunt.

Geändert von Dunkelbunt27 (17. Aug 2010 um 17:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 17:32
Für Lazarus Probleme gibts ja auch das http://www.lazarusforum.de/

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:
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;
Im OnPaint Event kannst du rendern.

Mittels OpenGLControl1.doOnPaint; startest du das Rendern neu.

So viel fürs erste.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#3

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 17:37
Was für ein dummer Fehler =)
Danke erstmal für den Tipp mit dem selben Verzeichnis.
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:
Außerdem müssen im const Teil die beiden Konstanten Near- bzw. FarClipping definiert werden. Diese geben die Entfernung für die Clippingebenen (Szenenbegrenzung) an und spielen beim Tiefentest eine gewisse Rolle.

NearClipping = 1;
FarClipping = 1000;
Wo finde ich den const Teil?
(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
 GLuint64 = {$IFDEF DELPHI6_AND_DOWN} Int64 {$ELSE} UInt64 {$ENDIF}; blau markiert.
Der Error lautet:
Zitat:
dglOpenGL.pas(436,54) Error: Identifier not found "UInt64"
Leider melden sich schon wieder 2 Error(s)
Zitat:
Unit1.pas(21,12) Error: Identifier not found "HDC"
Zitat:
Unit1.pas(23,17) Error: Identifier not found "HPALETTE"

Ich bitte dringend um Hilfe.

Geändert von Dunkelbunt27 (17. Aug 2010 um 18:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 18:31
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:
Var Form1:TForm1;

Const
  NearClipping = 1;
  FarClipping = 1000;
danach deine Const Deklarationen.

Dein Problem 3 kann ich nicht nachvollziehen, aber evtl liegts daran dass deine Lazarus Version zu alt ist, lade mal die von : http://www.hu.freepascal.org/lazarus/

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:
Ich bitte dringend um Hilfe.
Das Bringt dir man gar nichts, du bist dabei dich in OpenGL ein zu arbeiten, richte dich darauf ein das, dies bis zu einem Jahr dauert ...
Angehängte Dateien
Dateityp: zip OpenGL_Basic.zip (4,3 KB, 28x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#5

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 18:44
Danke,
auch für die klaren Worte
Zitat:
OK, deine Versuche sind Sch***
Ich werde jetz genau das tun =) langsam anfangen OpenGl zu lernen.
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:
Das Package JPEGForLazarus kann nicht geöffnet werden. Es war zur Installation vermerkt.
Der Fehler lässt sich wegklicken, jedoch frage ich mich was es damit auf sich hat.

Geändert von Dunkelbunt27 (17. Aug 2010 um 19:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 17. Aug 2010, 21:23
*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
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01

Geändert von Corpsman (17. Aug 2010 um 21:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#7

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 18. Aug 2010, 18:21
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:
"Ein benötigtes Package wurde nicht gefunden. Bitte überprüfen sie den Package Graphen."
Leider gibt es nur die Auswahlmöglichkeiten Abbrechen und Abbruch

EDIT 2:

Ich habe herausgefunden, dass das Package JPEGForLazarus fehlt.
In einem englischen Forum http://www.mail-archive.com/lazarus@.../msg02584.html habe ich herausgefunden, dass neuere Versionen als 0.9.24 das Package nich mehr besitzen .. es wird empfolen downzugraden. Was schlägst du vor?

Ich hoffe jemand kann helfen.

Geändert von Dunkelbunt27 (18. Aug 2010 um 18:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 18. Aug 2010, 18:53
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...
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#9

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 18. Aug 2010, 19:04
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 =)

Vielen Dank und ein extra Dankeschön an Corpsman für seine Hilfe
LG Dunkelbunt

Geändert von Dunkelbunt27 (18. Aug 2010 um 19:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Probleme beim initialisieren von OpenGl (Lazarus)

  Alt 18. Aug 2010, 19:23
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

http://nehe.gamedev.net/lesson.asp?index=01

oder

http://wiki.delphigl.com/index.php/Tutorial
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz