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

Aktuelle Zeit: So Jul 20, 2025 00:33

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



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fensterklasse
BeitragVerfasst: Do Sep 15, 2005 15:58 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hi,

ich bastel gerade eine GUI für OpenGL-Anwendungen. Probleme bereiten mir nicht der Aufbau (werde mich grob an der VCL orientieren), sondern vielmehr eine elegante Umsetzung in OpenGL. Ich werde für die Sortierung der Fenster eifreilich den Z-Buffer verwenden, aber ich weiß nicht, wie man den am elegantesten dafür nutzt.

Was die GUI können soll sind unter anderem Scrollboxen. Nun ist es bei denen ja so, dass eigentlich immer ein gewisser Teil der Komponenten darin verdeckt sind. Sonst müsste man ja nicht scrollen ^^. Wie mache ich das am Besten unter OpenGL?

Gruß,
Frase

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 16:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die einfachste Möglichkeit ist ein Scissor Rect auf die Größe der Komponente zu setzen, so dass nicht außerhalb gezeichnet wird und dann vor dem Zeichnen des Inhalts die Darstellung mit glTranslatef verschieben. Aber bei einer langen List ist es natürlich nicht unbedingt sinnvoll immer alle Einträge zu zeichnen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 16:12 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
:shock: Das nenn' ich mal schnelle Antwort.

Ja genau sowas. Scissor hatte ich ganz vergessen ;) Hab' mich so auf den Z-Buffer konzentriert. Geht auch Stencil Buffer? Oder ist da Scissor einfacher? Hab's noch nie benutzt, daher die Frage. Gehe aber mal davon aus, dass Scissor einfacher zu benutzen sind, da man damit wahrscheinlich nur rechteckige Schablonen machen kann.

Und was ist schneller? ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 16:43 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Bastelt jetzt jeder seine eigene GUI?

Ich für mal kurz auf:

LossyX: Umfangreiche GUI für Delphi und OpenGL
Lyr: GUI in C++ für eigene OpenGL Anwendung
Flash: GL_SDL_UI - Library welche (momentan nur) in C++ implementiert ist und per SDL und OpenGL eine anpassbare GUI für Spiele u.ä. bereitstellt.

und seit neuestem auch noch Frase. Also unser Forum ist mit der Gabe des grafischen UserInterfacesreichlich gesegnet. Doch niemand hat dazu hier nen Projektethread laufen... :roll:

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 16:48 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Naja Scissor ist eindeutig schneller. Kostet soweit ich weiß nichts zusätzlich. Aber damit gehen natürlich nur rechteckige Formen. Außer dem Stencil Buffer kannst du ja noch den Alpha Buffer verwenden um weiche Übergänge an den Rändern zu erzeugen. Bei einer 2D Oberfläche gibt's eigentlich nie Probleme mit Geschwindigkeit.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 17:27 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
*g*

Jeder bastelt seine eigene Gui. Ich hab' ein paar Vermutungen, warum dem so ist:

Wieviele OpenGL-Programme kommen ohne GUI aus? Ganz zu schweigen von den Spielen. Da eine GUI eigentlich immer aus den gleichen Komponenten besteht (Es gibt Fenster, Buttons...), kann man mit einer sauber programmierten Klasse seine ganzen OpenGL-Programme mit einer GUI versorgen. Der Vorteil liegt klar auf der Hand.

Nun, dass LossyEx eine umfangreiche GUI bastelt, meinte ich irgendwo schonmal gelesen zu haben. Aber wie dem nunmal so ist... Wenn die in etwa das darstellt, was ich haben möchte, wäre es vielleicht eine Alternative. Aber ich wollte trotz allem schonmal sowas selber machen ;)

Man sehe sich nur mal das Windows-Sample bei Sulaco an. Dort wird mit einigen wenigen Komponenten eine halbwegs ansehnliche GUI gebastelt. Dort gefallen mir aber die Pointer sowas von ganz und gar nicht... ;)

Noeska macht übrigens auch eine GUI und zwar auf der Basis von der bei Sulaco. ;)

Dass dazu kein Projektthread existiert, kann ich jedenfalls von mir aus beantworten. Meine GUI existiert zwar schon Ansatzweise, aber das ist noch aus meinen Anfängen wo ich davon geträumt hab, etwas der DGL zurückzugeben in Form einer GUI, denn sowas können die meisten aus den oben genannten Gründen brauchen. Was mich bis jetzt davon abgehalten hat war einerseits: Mit Delphi ist eine GUI recht schnell gemacht, VCL machts möglich. Doch so etwas wie einen Formular-Designer müsste man ja dann auch unter OpenGL bauen. Falsch gedacht. Einfach die Delphi-dfm Dateien missbrauchen ;)
andererseits hat mich auch das Erstellen bzw. das Verwursteln der Skins im Programm nicht gerade fröhlich gestimmt. Das ewige Umrechnen der Texturkordinaten etc. hat dazu geführt, dass ich außer einem Fenster noch nichts gamcht hab, was man als GUI bezeichnen könnte ;) Spiele aber gerade mit dem Gedanken, ein kleines Programm zu schreiben, was das vereinfacht.

Kennt jemand eine GUI, die an den Leistungsumfang der GUI aus DeusEX herankommt? Denn genau sowas will ich haben ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Denke mal das Problem ist, dass niemand die GUI so abstract gemacht hat, dass man sie wirklich in andere Programme einbinden könnte. Die GUI muß ja immerhin Texturen(Shader) laden können und das wird ja auch überall anders gemacht. Dateizugriff in einer GUI Komponente? Dann ist die Frage, soll so eine GUI überhaupt direkt auf OpenGL zugreifen, womöglich noch OpenGL States verändern? Oder soll sie mit dem Rahmenprogramm nur über eine abstrakte Schnittstelle kommunizieren. Was ist, wenn man Materialien/Modelle aus dem Hauptprogramm in der GUI nutzen möchte? Eine wirklich wiederverwendbare GUI Komponente habe ich noch nicht gesehen. Denke mal an irgendeinem Punkt ist das vielen zuviel Aufwand und es werden daher immer nur spezielle GUIs gemacht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 15, 2005 23:55 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Meine GUI wird ohne Editor und Shader auskommen (müssen).
Wer meine GUI nutzt wird zwar etwas in richtung API Programmierung machen (nur etwas weniger kompliziert) die Verwaltung übernimmt ein Manager, und nachdem die GUI gerendert wurde ist alles wies war. Es wird zur anzeige standardmäßig nur eine Textur verwändet, welche nach belieben geändert werden kann (Photoshop vorlage gibts dazu), man hat aber die Möglichkeit das Draw-Ereignis jeder komponente selber umzuleiten und entsprechend zu ändern.

Events werden wie in der VCL-Üblich über Funktionpointer realisiert.

Ich glaube meine GUI sollte, wenn sie einsatzbereit ist, ziemlich gut wiederverwendbar sein. (Deshalbs schreib ich die ;) )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 18, 2005 10:39 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Lossy eX hat doch einen Projektthread mit seiner GUI. ;)

Flash, wird deine GUI Cross-Platform sein? Hab' nämlich, sehr zu meiner Freude, in Lazarus einige nette Dinge entdeckt wie Code Refyctoring, was ich bei Delphi bisher immer vermisst hab'. Drum werd' ich wohl demnächst meine Programme mit Lazarus schreiben und dank fpc und SDL auch X-Platform ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Sep 18, 2005 13:21 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Meine GUI baut auf SDL und OpenGL. Geschrieben ist sie in C++. Wobei ich durchaus gewillt bin das auf Delphi zu portieren, wenn ich merke, dass die GUI tatsächlich gut zu nutzen ist, und meine Ideen entsprechend umsetzt.
Momentan existieren zwar schon die meisten Klassen zu 80%. Aber es gibt noch keine Testanwendung. Wenns die gibt, werd ich das hier vermelden.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 19, 2005 18:39 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hi,

ich hab' zuerst mit dem Gedanken gespielt, doch keine eigene GUI zu schreiben und stattdessen die von Lossy eX zu benutzen. Den Gedanken habe ich aber gerade wieder verworfen, da ich, angeregt durch SDL und Lazarus, neuerdings bestrebt bin, meine Programme X-Platform zu entwickeln. Lossys Editor zum Beispiel ist eine Windows-Anwendung. Ob die unter Linux so gut läuft, wage ich einfach mal zu bezweifeln ;). Außerdem möchte ich endlich mal ein eigenes OpenGL-Projekt fertigstellen ;).

Hier mal ein kleiner Abriss über meine GUI (bzw. was die mal können soll):
  • Plattform-Unabhängigkeit (Dank SDL sollte es theoretisch sogar mit PHP laufen *g*)
  • Vielseitiges Skin-System (Ein Skin soll sich nicht nur auf eine Datei erstrecken dürfen..., wird vorraussichtlich in einem ZIP gespeichert)
  • evtl. Erweiterbarkeit durch fpc (Inspiriert von Lossys Pascal Script-Verwendung in seinem Editor)
  • Lossys Editor wird zum Teil durch Lazarus ersetzt (Fenster, Dialoge etc. werden also mit Lazarus erstellt und aus Lazarus heraus auch gespeichert, da ja jede Komponente sich selbst laden und speichern kann)


Wer jetzt meint, das wäre nicht wenig, was ich mir vorgenommen habe, der hat auch verdammt recht ;)
Aber ich denke, das ist schaffbar, und wenigstens dieses Projekt muss ich abschließen. Das nagt nämlich langsam an mir, dass ich noch kein einziges OpenGL-Projekt fertiggestellt hab' ;). Aber über das geplante Zeitfenster sage ich nichts *ggg*.

Gruß,
Frase

P.S.: Wenn mir dabei jemand helfen möchte, ein SVN-Repository wäre schnell eingerichtet ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 19, 2005 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Zitat:
Geschrieben ist sie in C++.

Bist du jetzt auch dabei dich von Delphi zu verabschieden?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 20, 2005 11:22 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
LarsMiddendorf hat geschrieben:
Bist du jetzt auch dabei dich von Delphi zu verabschieden?

So hart würde ich das nicht formulieren. Wir vom Team316 wollen uns ja mit den Projekten die wir umsetzen Wissen aneignen mit denen man später auch was anfangen kann. Da in der wirtschaft nunmal C++ genutzt wird wollen wir die nächsten Projekte auf C umsetzen. Das werden dann wohl 2 oder 3 Spiele sein.

Vorteil von C ist halt die native Unterstützung auf vielen Betriebssystemen. Da ein Ziel von uns ist X-Plattform zu entwickeln ist das sicherlich ein Punkt der nicht zu verachten ist.
Der C++ Code den ich produziere ist recht Pascalorientiert (von der formatierung her), deshalb bleibt die Übersicht halbwegs gewart. Nur ab und an fehlt mir das Verständnis für die Abläufe hinter den Kullissen von C++ um von alleine Fehler zu beheben....aber es gibt ja noch mehr und größere C++ Foren im Netz als es Delphi Foren gibt.

Delphi gefällt mir immer noch besser...aber mit C verdient man vermutlich eher mal Geld. Und das ist am Ende ausschlaggebend. :?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 20, 2005 21:06 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Naja, ich mache ja auch schon seit einem Jahr kein Delphi mehr, aber eher weil die das verschandelt haben. Wundere mich dass es hier im Forum nur noch wenige gibt, die Delphi wirklich ausschließlich machen, aber das ist wohl die Realität. Sowie ich das immer mitbekommen habe soll Java in der Industrie am weitesten verbreitet sein. Aber das mag ich nicht. Dann lieber C# und hoffen, dass das dran sein wird, wenn ich mal fertig bin. C++ muß ich an der Uni machen, sollte man auf jeden Fall können, aber zum Spaß will ich mir das (insbesondere gcc) nicht antun. Aber ich glaube das hat jetzt nichts mehr mit dem Titel des Threads zu tun.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 20, 2005 22:01 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Java hab ich auch mal Programmiert. Für mich nimmt sich das nicht viel, außer dass man in JAVA lernt was Schnittstellen alles können (Interfaces).
Also zumindest in Sachen IDE bin ich da gewappnet. Ich nutze Eclipse was ja nativ eine Java Umgebung ist. Durch die Pluginschnittstelle gibts da aber unmengen Helferlein zum zuinstallieren. Ich nutze da das CDT-Plugin für C++ Entwicklung, und das SVNPlugin "Subclipse" von Tigris.
Das einzige was stört is der riesiege RAM bedarf. Aber den kann man zum Glück eindämmen. Ab 512MB merkt man aber nix mehr. Am besten daran is aber, dass es kostenlos ist, und wirklich übersichtlich und dadurch benutzbar.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


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


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] 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.016s | 17 Queries | GZIP : On ]