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

Aktuelle Zeit: Fr Jul 18, 2025 08:05

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Di Okt 25, 2011 10:31 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich arbeite seit kurzem mit FPC/Lazarus. Ich komm auch gut voran, da sich FPC ja nur in sehr wenigen Dingen von Delphi unterscheidet. Aber jetzt bin ich auf ein Problem gestoßen, bei dem ich nicht weiter weiß. Und zwar gibt es unter FPC kein SWapBuffers, wie man das von Dlephi gewohnt ist. Also hab ich mich im Netzt auf die Suche nach ner Lösung gemacht und hab herrausgefunden, das es da eine ähnliche Methode gibt, die erwartet auch ein Handle wie die normale SwapBuffers-Methode. Aber egal welches Handle ich übergebe (FensterHandle, DeviceHandle oder RenderContextHandle) jedesmal schmiert die Anwendung ab :(
Wie macht ihr dann wenn ihr für Linux und Windows entwickeln wollt? Ich hab das ganze so probiert:

Code:
  1. {...}
  2. {$IFDEF LCLGTK}
  3.   {$IFDEF Linux}
  4.     {$DEFINE UseGtkGLX}
  5.     {$DEFINE OpenGLTargetDefined}
  6.   {$ENDIF}
  7. {$ENDIF}
  8. {$IFDEF LCLGTK2}
  9.   {$IFDEF Linux}
  10.     {$DEFINE UseGtk2GLX}
  11.     {$DEFINE OpenGLTargetDefined}
  12.   {$ENDIF}
  13. {$ENDIF}
  14. {$IFDEF LCLCarbon}
  15.   {$DEFINE UseCarbonAGL}
  16.   {$DEFINE OpenGLTargetDefined}
  17. {$ENDIF}
  18. {$IFDEF LCLWin32}
  19.   {$DEFINE UseWin32WGL}
  20.   {$DEFINE OpenGLTargetDefined}
  21. {$ENDIF}
  22. {$IFDEF LCLQT}
  23.   {$DEFINE UseQTGLX}
  24.   {$DEFINE OpenGLTargetDefined}
  25. {$ENDIF}
  26. {$IFNDEF OpenGLTargetDefined}
  27.   {$ERROR this LCL widgetset/OS is not yet supported}
  28. {$ENDIF}
  29.  
  30. uses
  31.   {...}
  32.   {$IFDEF UseGtkGLX}
  33.     GLGtkGlxContext,
  34.   {$ENDIF}
  35.   {$IFDEF UseGtk2GLX}
  36.     GLGtkGlxContext,
  37.   {$ENDIF}
  38.   {$IFDEF UseCarbonAGL}
  39.     GLCarbonAGLContext,
  40.   {$ENDIF}
  41.   {$IFDEF UseWin32WGL}
  42.     GLWin32WGLContext,
  43.   {$ENDIF}
  44.   {$IFDEF UseQTGLX}
  45.     GLQTContext,
  46.   {$ENDIF}                
  47.  
  48. {...}
  49.  
  50. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  51. //zeichnet den OpenGL-Fensterinhalt
  52. procedure TMainForm.Render;
  53. begin
  54.   glClearColor(0.1,0.1,0.1,0);
  55.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  56.  
  57.   glMatrixMode(GL_MODELVIEW);
  58.   glLoadIdentity;
  59.  
  60.   {Rendern}
  61.  
  62.   LOpenGLSwapBuffers(fRC);
  63. end;  


MfG & Thx Bergmann

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Di Okt 25, 2011 20:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 10, 2011 19:00
Beiträge: 43
Programmiersprache: FreePascal , C++
Ich hab damit zwar noch nie gearbeitet aber das TOpenGLControl wird des öfteren in Foren erwähnt (siehe http://wiki.lazarus.freepascal.org/OpenGL#OpenGL_units_in_Lazarus).

Ansonsten habe ich nur Lösungen für Windows da. Unter Windows geht das eigentlich wie es im VCL-Quickstart-Totorial im Wiki (für Delphi) beschrieben wird.
Unter Linux, oder allem was Crossplatform sein soll, lauf ich diesem Problem via SDL davon.

Chapter

Edit: Ach Mensch das passt doch gleich -> http://www.delphigl.com/forum/viewtopic.php?f=3&t=10115
Und Nils ist sogar meiner Meinung was SDL betrifft.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Di Okt 25, 2011 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Das OpenGLControl hat ne coole Methode, die heißt SwapBuffers :). Nutzt du das? Wenn nicht, nur zu empfehlen. //Edit: Ansonsten mal in deren Source schauen!

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Di Okt 25, 2011 21:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

SDL bin ich net so der Fan von, weil ich mich da auch erstma einarbeiten müsste und ich hab zur Zeit schon ne halbe selbstgecodete Lib, mit der ich ganz gut auskomm. Das TOpenGLControl kenn ich, da hab ich ja den Code geklaut ^^ Aber trotzdem schmiert er ab, wenn ich das SwapBuffer aufruf (für Windows). Um Linux hab ich mich noch gar nich gekümmert.

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Mi Okt 26, 2011 11:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 10, 2011 19:00
Beiträge: 43
Programmiersprache: FreePascal , C++
Was heißt 'schmiert ab'?
Kannst du die Fehlermeldung oder was auch immer mal angeben?
Bei mir funktioniert das unter Windows mit Swapbuffers ganz klasse.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: SwapBuffers unter Lazarus/FPC
BeitragVerfasst: Mi Okt 26, 2011 14:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

also jetzt gehts... Kp ob sich das gestern der Debugger iwo verklemmt hat oder ich ich einfach zu müde war^^ Ich hab jetzt einfach die SwapBuffers Funktion deklariert un kann die ganz normal benutzen. Für Linux muss ich mir dann natürlich was anderes einfallen lassen, aber da kann ich ja zur Not beim TOpenGLControl abgucken^^

MfG Bergmann.

p.s.: Fehlermeldung war "external SEGSIV-irgendwas", oder so in der Art^^

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.008s | 14 Queries | GZIP : On ]