Hallo Leute,
ich werkel jetzt wieder ein wenig an meiner visuals engine herum und mir wäre extrem geholfen wenn mir irgendwer tips zu den angesprochenen Themen geben könnte. (möchte eigentlich mein komplettes GUI in OGL+API implementieren, laß mich aber immer gerne eines besseren belehren)
cu
Volker
p.s.:die video-renderei schieb ich mal ein wenig vor mir her, vielleicht giebts ja bald (mitte 2004) eine delphi-portierung von OML oder SDL die mir dann eine ganze Menge kopfzerbrechen erspart
Auch nach dem zweiten Durchlesen ist mir nicht klar, was du denn nun konkret wissen möchtest. Nur weil du genau weißt, worum es sich bei deiner Fragestellung handelt, bedeutet dies nicht, dass andere dieses Wissen teilen...
Registriert: So Dez 29, 2002 10:37 Beiträge: 251 Wohnort: Ulm
ich denke, er will eine oberfläche realisieren, wie sie auch blender verwendet, d.h. buttons, etc.pp wird per OpenGL Dargestellt, nichts mit Windows-Buttons, etc.pp
Ich möcht mir ein user interface zusammenbasteln und brauche dazu (momentan) zwei wesentliche Dinge:
1. Schieberegler: grob gesprochen ein Balken mit einen Knubbel in der Mitte den man mit der Maus zwischen den beiden Endpunkten des Balkens verschieben kann. Perfekt wäre es natürlich wenn mann ihm die obere und untere Grenze sowie die Schrittweite vorgeben könnte. (Das ganze in Delphi/OpenGL)
in vertikaler ausrichtung seht ihr sowas an der rechten fensterkante ->
2. rahmenloses Fenster: Einfach ein Fenster ohne nix. Kein grauer Rahmen, kein Menü, kein gar nichts. Sprich Clientsize=Fenstergröße
Währe sehr dankbar wenn mir irgendjemand der mich verstanden hat ein Paar Tips geben könnte!
cu
Volker
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Da gibts eigentlich nicht viele Tipps die man bei nem OpenGL-Interface geben kann, hab das vor kurzem auch recht umfangreich für mein aktuelles Projekt getan. Du erstellst dir halt für die benötigten Controls Klassen und dein Fenster ist dann im Endeffekt die Containerklasse. Das Zeichnen ist ja deine Sache, ob da ein Rahmen drum ist oder nicht bestimmst du ja selbst, da du im Endeffekt eh alles selbst zeichnen muss. Im Endeffekt ist so ne OpenGL-GUI nicht wirklich schwer zu erstellen, da man das Verhalten der Controls ja bereits aus Windows kennt und dieses nur nachahmen muss. Laden tu ich dann die Controls eines Fensters (hab u.a. Buttons, Images, Panels, TrackBars, Memos) aus einem XML-File via TWindow.LoadFromXML. So hast du dann den Vorteil das du deine Fensterinhalte auch zur Laufzeit schnell ändern kannst. Events musste dann halt auch selbst implementieren, also z.B. im MouseOver deiner Anwendung prüfen ob der Cursor über dem "Knubbel" der Trackbar ist und diesen dann bei gehaltener Maustaste verschieben.
Schau mal auf sulaco vorbei, der da in der Richtung bereits etwas gemacht hat.
Registriert: Sa Jan 04, 2003 21:23 Beiträge: 674 Wohnort: Köln
Son of Satan hat geschrieben:
ob da ein Rahmen drum ist oder nicht bestimmst du ja selbst, da du im Endeffekt eh alles selbst zeichnen muss.
mh... beim Fenster den Rahmen (=blaue leiste oben drüber mit schließen button usw...) muss man doch nciht selbst zeichnen....
denke mal, dass man bei der Api-erstellung des Fensters irgendeinen Flag ändern muss....
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
@Fiji:
Ich glaube SOS meinte es sobald du es in OpenGL realisieren willst. Dann musst du alles selber zeichnen. Im Windows kann man über flags recht viel einstellen.
@Sonic:
Das ramenlose Fenster soll das im Windows oder in OpenGL sein? Wenn nur Windows dann schau dir mal die Eigenschaft BorderStyle mal genau an. In Verbindung mit BorderIcons kannst du damit so ziemlich alles einstellen.
Wenn es in OpenGL sein soll musst du es wohl oder übel selber zeichnen.
Zu der Trackbar. Das musst du wohl alles selber machen. Ich hatte das allerdings in der API auch schon mal nachprogrammiert und da gibt es eigentlich keine großen Schwierigkeiten. Es ist halt nur ein Bereich in dem du in einem anderen Unterbereich deinen Positionsanzeiger darstellst. Und der befindet sich irgendwo zwischen einem Minimum und Maximum.
@Lossy eX: Danke, rahmenloses Fenster ist also nicht so das Problem
@SoS: mal andersrum gefragt: wie viel Performance kostet mich die VCL eigentlich (ich denk mal es würde mir viel Arbeit erparen, mich dafür gestalterisch ein wenig einschränken)?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Die VCL läuft größtenteils in der API ab und kann somit kaum noch beschleunigt werden. Es gibt das ein oder andere Komponentenpack die das komplett selber machen. Aber wenn man davon viele Koponenten verwendet sieht man einen deutlichen Nachteil gegenüber der VCL.
Registriert: Mi Aug 28, 2002 19:27 Beiträge: 568 Wohnort: Chemnitz / Sachsen
also nachdem ich mir das hier mal alles durchgelesen habe, scheint nur sos die frage richtig verstanden zu haben.
nun meine antwort :
ich kann dir zwar jetzt nicht genau sagen, wie du alles im einzelnen machen kannst, doch schau einfach mal auf der page von jan horn nach, da gibts ein sample namens GLWINDOW. das ist eigentlich nicht mal schlecht und sollte durch den source dir auch einige fragen beantworten.
wenn du dann immernoch fragen hast, dann stell die, doch versuchs erstma mit GLWINDOw.
der Link zur seite ist bei dgl bei den Links (hui wie kommts nur?? ) unter sulaco oder sowas.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Zitat:
also nachdem ich mir das hier mal alles durchgelesen habe, scheint nur sos die frage richtig verstanden zu haben.
Könnte auch daran liegen, dass in dem Thema vcl und ogl vermischt sind und die Fragestellung ein wenig verwirrend ist.
Ich persönlich mag die glwindow von sulaco nicht. Ich finde die sehr unflexibel und vom Quelltext auch nicht so berauschend. Aber das ist Geschmackssache.
Mitglieder in diesem Forum: Google [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.