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

Aktuelle Zeit: Mi Jul 16, 2025 19:31

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



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Subwindow OpenGL
BeitragVerfasst: Mo Jun 06, 2011 21:05 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hallo,

wollt mal fragen, ob man bei der Verwendung von Subwindows noch irgendwie etwas am Code hinzufügen muss, damit gezeichnet wird.. Habe jetzt 2 Subwindows in ein Mainwindow gepackt. Wenn ich jetzt in meiner subwindow-spezifischen display-funktion einfach nur eine Linie zeichnen möchte, wird diese nicht nicht angezeigt.
Ich habe aber mit der Maus mir die Koordinaten ausgeben lassen und eigentlich müsste man meine Linie sehen.

Ich dachte wenn meine callback-funktionen immer das jeweilige Fenster ansprechen, müsste doch alles klar sein. Mein code hatte vorher an einem einzelnen fenster einwandfrei funktioniert.

Danke euch schonmal...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Mo Jun 06, 2011 21:47 
Offline
DGL Member

Registriert: Di Okt 13, 2009 17:25
Beiträge: 365
Programmiersprache: C++
Hey,
ich weiß jetzt nicht ganz genau, was du mit SubWindows meinst. Wenn du sowas wie ein normales Fenster oder ein Panel meinst, brauchst du dafür jedenfalls einen zusätzlichen RenderingContext. Jedesmal, wenn du das Zielfenster änderst, musst du via wglMakeCurrent (unter Windows) den entsprechenden Kontext aktivieren und am Ende jedes Frames für jedes Fenster SwapBuffers aufrufen.


Zuletzt geändert von mrtrain am Mi Aug 31, 2011 21:35, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Mo Jun 06, 2011 22:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Richtig, du brauchst einen eigenen Renderkontext, aber du kannst dabei z.B. Texturen und Shader zwischen diesen "sharen". (Du musst du bei der Erzeugung der Renderkontexte einstellen wer mit wem shared)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Di Jun 07, 2011 14:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
gibts da was gutes zu lesen? würde mich auch für meinen mapeditor interessieren.

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Di Jun 07, 2011 14:24 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Ich nutze das Qt-Framework. Das sharen funktioniert da einfach so das du einem QGLWidget einfach bei der anderes QGLWidget als Parameter übergibst mit dem geshared werden soll.

Qt ist aber riesig...solltest du also nicht nehmen wenn du nur ein simples Fenster ohne sonstige GUI willst.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Mi Jun 08, 2011 11:17 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Danke erstmal für eure Antworten.
Jetzt hats mit dem Zeichnen geklappt, allerdings geht es irgendwie nicht, dass ich in 2 Fenstern gleichzeitig etwas zeichnen lasse. Also in dem einen ein Grundmuster und in dem anderen die komplett zusammengesetzte Form.Ich muss immer erst in das jeweilige Fenster rein um zeichnen zu können.


Code:
  1.  
  2.      subwindow_1 = glutCreateSubWindow (main_window, subwindow1_x, subwindow1_y, subwindow1_w, subwindow1_h);
  3.         myInitSub1();
  4.     glutDisplayFunc (subwindow1_display);
  5.     glutMouseFunc (subwindow1_mouse);
  6.     glutMotionFunc (subwindow1_motion);
  7.    
  8.     subwindow_2 = glutCreateSubWindow (main_window, subwindow2_x, subwindow2_y, subwindow2_w, subwindow2_h);
  9.     myInitSub2();
  10.     glutDisplayFunc (subwindow2_display);
  11.     glutMouseFunc (subwindow2_mouse);
  12.     glutMotionFunc (subwindow2_motion);
  13.  


Gibt es da vielleicht eine Lösung. Hm, also eigentlich soll mein Programm noch eine GUI enthalten und auch noch etwas wachsen.
@Coolcat: Meinst du es wäre ratsam sich erstmal in QT einzuarbeiten und was meinst du wieviel Zeit das in Anspruch nehmen würde.
Habe da n bisschen Berührungsängste aber irgendwie kommt man da wohl nicht drum rum.

Ich danke euch schonmal für euren Rat


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Mi Jun 08, 2011 12:57 
Offline
DGL Member
Benutzeravatar

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

ich hab damals als ich meinen Editor geschrieben hab einfach mehrere Viewports mit dem gleichen RenderContext gezeichnet, das ging eig auch ganz gut ;)

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: Subwindow OpenGL
BeitragVerfasst: Mi Jun 08, 2011 13:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Ich muss immer erst in das jeweilige Fenster rein um zeichnen zu können.

Du kannst nicht in zwei Kontexte gleichzeitig rendern...deswegen sind es ja zwei Kontexte ;) Also immer den Kontext in den du gerade rendern willst aktivieren und dann eben rendern. Außerdem willst du ja sicher nicht in beiden das gleiche Bild, oder?

Zitat:
@Coolcat: Meinst du es wäre ratsam sich erstmal in QT einzuarbeiten und was meinst du wieviel Zeit das in Anspruch nehmen würde.

QT wird insbesondere in der Linux-Welt viel benutzt, z.B. KDE basiert darauf. Es ist platformunabhängig, d.h. deine Anwendung läuft nachher mehr oder weniger problemlos auch unter Windows und MacOS. Theoretisch auch auf diversen Handys, etc....damit hab ich mich noch nicht beschäftigt.

Ob QT nun für dich Sinn macht weiß ich nicht. Aber sobald du mehr GUI als ein paar Buttons willst lohnt sich das meiner Meinung nach schon. Du kannst deine Fenster im QtDesigner sehr schön zusammen klicken. Zudem ist QT wirklich sehr gut dokumentiert und daher leicht zu erlernen. Der einzige Haken: Du solltest das Qt-Buildtool qmake (oder gleich deren IDE, den QtCreator) und natürlich C++ benutzen. (Wobei es Bindings für andere Sprachen gibt...)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Sa Jun 11, 2011 13:56 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hm...mit viewport definiere ich ja nur, dass ich auf des gleiche Bild schaue nur mein Sichtfeld anders ist.
Ich möchte aber in dem einen Fenster etwas zeichnen und in dem anderen Fenster etwas anderes.
Also in dem einen fenster werden Rosetten aus meiner Mauslinie gebildet. (Das Gezeichnete rotiert um einen Punkt.)
In dem anderen Fenster soll simultan nur meine Mausbewegung (Liste mit den gepeicherten Mauskoordinaten) gezeichnet werden.

Geht das....?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Subwindow OpenGL
BeitragVerfasst: Sa Jun 11, 2011 15:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Hm...mit viewport definiere ich ja nur, dass ich auf des gleiche Bild schaue nur mein Sichtfeld anders ist.

Du musst aber für beide getrennt rendern, aber das ist ja kein Problem.

Zitat:
Geht das....?

Klar.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: glViewport
BeitragVerfasst: Do Jun 16, 2011 16:43 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Ich danke euch...Habe es jetzt nach einigem Rumgefummel geschafft. Daraus hat sich aber ein weiteres Problem ergeben, wo mir keine Lösung einfällt.
Wie ihr in meinem Screenshot(Viewports)
Dateianhang:
Viewports.png
sehen könnt, habe ich ein großes und ein kleines Fenster. Ich habe mit gluOrtho2d in Init() den Mittelpunkt in die Mitte des gesamten Fensters gesetzt. Nun zeichne ich mit Hilfe der Maus in meinem linken großen Fenster. Also in dem ersten viewport. Soweit ok. ABER. Die Zeichnung ist gestaucht. Bild1
Dateianhang:
Bild1.png
ist so wie ich es gerne hätte. Bild2
Dateianhang:
Bild2.png
ist die gestauchte Variante, die ich so nicht haben möchte.
Ich könnte jetzt natürlich den viewport oben und unten etwas abschneiden, aber dann verkleinert sich auch automatisch die Zeichenfläche.

Gibt es da vielleicht ne andere Lösung...

Wäre bombig, wenn ihr mir helfen könnt...

Au mann die Bilder sind n bissl groß, aber egal...Nehmts mir bitte nicht übel...


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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]