Registriert: Mo Okt 03, 2005 02:11 Beiträge: 4 Wohnort: Melbourne
Hallo,
ist es denkbar eine Komponente wie eine ListBox mit OpenGL zu machen und diese dann ganz normal in ein Delphi Projekt einzubinden? Geht mir eigentlich hauptsächlich um die Transparenz-Funktion.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wobei man dazu aber sagen muss, dass das keine wirkliche Tranzparent ist sondern eher mit Alphamasking vergleichbar wäre. Wobei das aber auch die schnellste Möglichkeit mit wäre.
Sollte es wirklich transparent sein so wird dir nichts anderes übrig bleiben als dein Komponenten in ein Bitmap zu speichern, dir den Hintergrund hinter der Komponente (CopyRect mit Parent.Handle) und das dann per Pixel aufzurechnen. Wenn es gut gemacht ist, dann dürfte es habwegs bedienbar sein. Aber auf langsamen System bekommst du so in arge Geschwindignöte. Und das ist nur dann zu "empfehlen", wenn es wirklich keinen anderen Ausweg gibt.
Hatte vor kurzem, das Problem, dass ein Bitmap transparent darstellen musste. Habe es aber letzten endes doch komplett in OpenGL gelöst, da das wesentlich schneller ist. Du könntest die Komponenten zwar auch in OpenGL machen, aber das ist aber so ne Sache. Da gibt es leider noch keine Komplettlösung. Und das selber zu machen ist ziemlich viel arbeit.
Wenn dir also das mit Brush.Style ausreicht so solltest du auf jeden Fall das nehmen.
Registriert: Mo Okt 03, 2005 02:11 Beiträge: 4 Wohnort: Melbourne
um mal ein einfacheres Beispiel zu nehmen, wie mache ich denn ein Button in OpenGL ?
Hab mir nur mal die ersten Tutorials durchgelsen und ein paar Dreiecke drehen lassen, aber dazu muss ich doch erst das Fenster initialisieren. Ich kann mir das jetzt überhaupt nicht vorstellen wie ich einen neue Klasse eines Buttons mit OpenGL machen soll. Also so dass ich den dann wie einen normalen Button in ganz herkömmlichen Projekte benutzen kann, die rein gar nichts mit OpenGL zu tun haben.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also wenn man Buttons etc. in OpenGL machen wollte, dann müsste man diese zu 100% selber schreiben. Also du kannst da nicht einfach einen TButton ableiteb und diesen dann verwenden. Du musst die Fensterverwaltung, Eventhandling (Maus und Tastaturereignisse) alles selber implementieren. Und das zeichnen ist dann ein klacks. Da genügt es 9 Flächen zu zeichnen auf der eine Textur angebracht ist. Eine für jede Ecke (4). Eine für jede gerade (auch 4) und eine für die Mitte. Die Ecke sind nicht gestreckt. Die Geraden sind sind nur lang gezogen. Höhe oder Breite ist genau so wie in einer Ecke. Und die Mitte ist ausgefüllt. Und dann kann man den Button komplett in der größe verändern auf das er gut aussieht. Sofern die Textur stimmt.
Ich habe hier auch mal was gemacht. Bin da aber gerade dabei es von grund auf neu zu schreiben.
Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Zitat:
Da genügt es 9 Flächen zu zeichnen auf der eine Textur angebracht ist. Eine für jede Ecke (4). Eine für jede gerade (auch 4) und eine für die Mitte. Die Ecke sind nicht gestreckt. Die Geraden sind sind nur lang gezogen. Höhe oder Breite ist genau so wie in einer Ecke. Und die Mitte ist ausgefüllt. Und dann kann man den Button komplett in der größe verändern auf das er gut aussieht.
Das verstehe ich nicht, wie meinst du das mit den 9 Flächen?
Kann ich nich auch buttons mit einem quad machen, wenn ich dass will , oder dreieckig oder wie auch immer (schneemannform oder so) ?
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Machen kannst du es natürlich so wie es dir beliebt. Für nen Standardbutton ala Windowslook mit einem Rand und in unterschiedlichen Größen benötigt man 9 Flächen. Das war auch nur ein Beispiel. Es hängt natürlich immer davon ab was man machen möchte. Dann genügt mitunter auch eine Fläche.
Dazu fällt mir ein:
Bei Windows Vista ist das ja alles kein Problem mehr( Also Durchsichtig, Buttons Skalierbar,.... )!
Frag mal Tak2004, der hat sowas auch mal geschrieben, und soweit ich weiss hat er auch den Code veröffentlicht!
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
TAK2004 hat eine GUI für OpenGL geschrieben. Das ist genau umgekehrt.
Buttons in OpenGL zu zeichnen ist ja nicht sooo wahnsinnig schwer. Skfink möchte ja keine Buttons in OpenGL, sondern eher OpenGL in Buttons. Naja... So ungefähr jedenfalls
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Na ja. Ist die Frage ob es sinnvoll ist lediglich eine Komponente in OpenGL zu machen. Da ist ja besser die komplette GUI umzustellen. Das hat mehr Vorteile als nur eine einzelne Komponente. Macht natürlich aber auch geringfügig mehr arbeit.
Ich weiß nicht ob wer Picasa von Google kennt. Das ist schon pervers geil was die da geleistet haben. Aber leider in DirectX (denke ich mal).
Ich weiß nicht ob wer Picasa von Google kennt. Das ist schon pervers geil was die da geleistet haben. Aber leider in DirectX (denke ich mal).
WoW!!! Die Umgebung ist wirklich verdammt schnell, seltend etwas gesehen was so schnell läuft!
_________________ Shareholder und Leitender Entwickler bei Pipedream-Games.
Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.
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.