Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Mär 29, 2024 09:07

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Di Jul 22, 2014 17:17 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich habe noch etwas probiert, ich habe im Ordner C:\lazarus\fpc\2.6.2\units\i386-win32\opengl die gl.ppu und gl.o durch die dglOpenGL.* ersetzt.
Habe aber vorher in der dglOpenGL.pas die Zeile unit dglOpenGL durch GL ersetzt und kompiliert. Ansonsten gab es schon beim Kompilieren des Context-Test schon einen Fehler.

Interessanterweisse, ist die dglOpenGL über 10x grösser als der original Header.


Das Ganze leider ohne Erfolg, das SigSev kommt immer noch. :oops:

Das sieht jetzt so aus:


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Di Jul 22, 2014 19:24 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
mathias hat geschrieben:
Ich habe noch etwas probiert, ich habe im Ordner C:\lazarus\fpc\2.6.2\units\i386-win32\opengl die gl.ppu und gl.o durch die dglOpenGL.* ersetzt.
Nein, das kann gar nicht gehen. Wir sind in Linux, da hat Win32 garnichts zu suchen.

Ich habe gerade jetzt nicht sehr viel Zeit, aber ich kann jedenfalls die Lazarus-Komponente auseinander nehmen, um zu sehen, wo sich der SigSev ereignet. Dauert halt ein wenig; ich melde mich wieder, spätestens am Wochenende.

Viele Grüße,
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Di Jul 22, 2014 21:07 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Nein, das kann gar nicht gehen. Wir sind in Linux, da hat Win32 garnichts zu suchen.
Ich habe dies alles unter Windows probiert.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Di Jul 22, 2014 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Da gibts nicht viel zu schreiben. In meinem glCapsViewer hab ich das TOpenGLControl auf der Form liegen und mach dann irgendwo nach dem Create dann dass hier :
Code:
  1.     InitOpenGL;
  2.     GLControl.MakeCurrent;
  3.     ReadExtensions;
  4.     ReadImplementationProperties;


Und das wars. In der Linuxversion von Projekt "W" mach ich das afair auch so.

Hab leider aktuell weder Delphi nach Lazarus installiert, kann also nicht kompilieren, aber wie da oben ists in GIT eingecheckt und auch draußen im Einsatz.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Mi Jul 23, 2014 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Danke Sascha, mit Deinen Erläuterungen funktioniert es. Der Sigsev wurde durch ein Event "Resize" der OpenGL-Komponente erzeugt, da offensichtlich die Lazaruskomponente auf diese Funktion zu einem Zeitpunkt zugreifen möchte, wo noch keine Function Pointers geladen sind. Mit "GL" ist es vorher anstandslos gelaufen - warum, entzieht sich meiner Kenntnis. In der untenstehenden Demo habe ich das Event der Komponente durch eine gewöhnliche "Resize"-Funktion ersetzt.

Anbei ein funktionierendes Lazarus "Main" Programm mit der dglOpenGL und der Lazarus OpenGL-Komponente. Dieses ist ein Linux-Programm aber sollte eigentlich unverändert auch auf MsWindows laufen.

Viele Grüße,
Traude

P.S:
Zitat:
Wenn man GL,GLU benutzt, dann zeichnet er was, ist aber offensichtlich im Softwaremodus
Das war kein Softwaremodus sondern ich habe meinen Würfel per Timer mit 1 FPS betrieben. :roll: war zu dem Zeitpunkt offenbar etwas verwirrt.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Mi Jul 23, 2014 17:18 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Dieses ist ein Linux-Programm aber sollte eigentlich unverändert auch auf MsWindows laufen.

openglcomp_main.pas läuft auch unter Windows, Ich habe es gerade getestet.
Ich habe extra dafür Lazarus gelöscht und neu installiert, weil ich wie oben beschrieben an Lazarus rum gepastelt habe.

Mal gucken, ob ich meine OpenGL 3.3-Programm mit TOpenGLControl zum laufen bringe.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Do Jul 24, 2014 21:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Ich konnte meine OpenGL 3.3 - Pogramme auch unter Linux kompilieren, nur das Problem, es geht sehr lange bis die Anwendung startet, zT. über eine Minute. Wen die Anwendung mal läuft, läuft es recht zügig.

Könnte dies am Grafiktreiber meines SuSE-Linuxes sein ?
Läuft OpenGL im Software-Modus ?

Der PC ist ein Intel Atom.

Code:
  1. GL_VENDOR: nouveau
  2.  
  3. GL_RENDERER: Gallium 0.4 on NVAC
  4.  
  5. GL_VERSION: 3.0 Mesa 9.2.2
  6.  
  7. GL_SHADING_LANGUAGE_VERSION: 1.30


Zitat:
In der untenstehenden Demo habe ich das Event der Komponente durch eine gewöhnliche "Resize"-Funktion ersetzt.

Ich konnte bei meinen Programmen keine Probleme mit Resize feststellen, es läuft noch gleich wie es mit der Unit Windows war.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL unter Linux mit Lazarus
BeitragVerfasst: Fr Jul 25, 2014 12:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
mathias hat geschrieben:
Ich konnte bei meinen Programmen keine Probleme mit Resize feststellen, es läuft noch gleich wie es mit der Unit Windows war.

Vielleicht habe ich mich missverständlich ausgedrückt.

Ich verwende eigentlich die Lazarus-OpenGL-Komponente garnicht. Aber ich habe sie früher einmal getestet, mit GL und GLU UND einem Event namens "TForm1.OpenglControl1Resize" (das war ein Event der Komponente "OpenglControl1"):

Code:
  1. Procedure TForm1.OpenglControl1Resize(Sender: Tobject);
  2. Begin
  3.    If OpenGLControl1.Height <= 0
  4.       Then Exit;
  5.  
  6.    glMatrixMode(GL_PROJECTION);
  7.    glLoadIdentity();
  8.    gluPerspective(45.0, ClientWidth/ClientHeight, 1, 10);
  9.    glMatrixMode(GL_MODELVIEW);
  10. End;


Diesen TestCode - der immer noch funktioniert hat - habe ich jetzt wiederverwendet und habe GL und GLU durch die dglOpenGL ersetzt. Daraufhin ereignete sich dieser Sigsev. Und es hat sich gezeigt, dass sich dieser Sigsev im obigen Resize-Event ereignet. Folglich habe ich dieses Resize-Event in eine gewöhnliche Funktion "Resize" umgewandelt, bei der ich kontrollieren kann, zu welchem Zeitpunkt sie aufgerufen wird. Wenn sie nämlich zu einem Zeitpunkt läuft, wo die Funktions-Pointer noch alle NIL sind, dann gibt es eben einen Crash.


Zu deinem obigen Problem: Ich glaube nicht, dass OpenGL im Softwaremodus läuft. Der Name "Nouveau" deutet darauf hin, dass das ein Linux-Treiber ist, nicht der Original-Treiber der Grafikkarte.

Warum es so lange zum Starten braucht, weiß ich auch nicht. Bei mir startet es sofort. Ich bin hier auf Ubuntu mit einer NVidia Karte und dem original Nvidia Treiber.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 23 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.142s | 16 Queries | GZIP : On ]