Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.07.2014, 12:13

[DirectX9] UI-Button

Hallo Leute,

ich bin seit ein paar Tagen dabei mich in Directx9 reinzuarbeiten. Ich habe bereits erfolgreich geschaft einen Cube zu erstellen und kann mich im Raum mit meiner Camera bewegen. Nun dachte ich mir das ich mich ein bisschen um die UI(GUI) kümmere. Als erstes hab ich versucht das ganze über "CreateWindowsA" zu lösen, aber bin schnell darauf gekommen das dies nicht der beste weg ist :D

Darauf ist mir eine Idee gekommen, dass ich das ganze über "Planes" lösen, so in der Art wie das erste Triangle. Das man Standardgemäß als erstes erstellt in Directx ^^. Diesen könnte ich dann später auch verwenden um die GUI zu verzerren. Wäre das eine Lösung?

Ich hab gelesen das man QT/DXUT verwenden sollte, doch ich möchte gerne versuchen das ohne QT zu lösen(fürs erste, bis ich verzweifle :D)

Mit freundlichen Grüßen

John

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

04.07.2014, 12:47

Hallo und Willkommen im Forum!
Ja, wenn du es unbedingt selber machen willst, kannst du das so umsetzen.
Buttons, Checkboxen usw. sind ganz einfach zu implementieren. Interessanter wird es schon bei Eingabefeldern, Listen, verschiebbaren Fenstern usw.

3

04.07.2014, 17:22

Okay super ;) Kann ich das auch anschließend auf unterschieldiche Renderphasen verschieben? Sprich rendere mir "3D Elemente", "Camera GUI" und so weiter?

MFG

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

04.07.2014, 17:34

Na klar, wieso nicht?

5

04.07.2014, 17:47

Okay super. Jetzt hab ich nur noch eine Frage. Wie kann ich das anstellen, mit dem mehrer Renderer?

Ist das schon die jeweiligen Stufen? Bzw. kann ich dort dies irgenwie zuweisen.

"this->Device->DrawIndexedPrimitive"

MFG

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

04.07.2014, 17:50

Ich verstehe nicht ganz, was du meinst ... kannst du ein konkretes Beispiel geben, was das Problem ist?

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

7

04.07.2014, 20:31

Ich glaube, er will einfach mehrere Vertex-Listen nacheinander (aber in einem Frame) rendern und fragt sich wie das geht...

@JohnMau: Du kannst einfach mehrmals hintereinander DrawIndexedPrimitive aufrufen.

Ich würde vorschlagen, du machst dir eine Haupt-Render-Methode, die als erstes BeginScene aufruft. Dann werden alle Render-Methoden der einzelnen Objekte (GUI, 3D-Objekte...) nacheinander aufgerufen. In diesen Rendermethoden werden dann die einzelnen Buffer mit DrawIndexedPrimitive oder so gerendert und als letztes ruft deine Haupt-Render-Methode EndScene auf. Fertig!
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

8

05.07.2014, 00:07

Ah super genau darauf wollte ich abzielen ;) Super dann probiere ich es doch gleich mal aus.

Vielen Dank bis hier her

MfG

9

07.07.2014, 16:59

Okay gut das funktioniert schonmal, wie ich mir gedacht habe. ;) Danke an euch schonmal.

Jetzt stehe ich vor einem kleinen Problem. Ich habe zweite Windows Fenster erstellt, dadrin haben ich das ganze spielgeschehen gerendert(Parallel: Das ganze hab ich über multiple devices gelöst). Doch jetzt stellt sich die Frage, wenn ich das ganze so mache und mit mehrern Fenstern arbeite. Kann ich ja eigentlich mir ein "Multiple Document Interface(MDI)" zuszusammenbasteln und die Parameter z.b. ich klicke auf ein Button und er führt mir was aus übermitteln? Oder bekomme ich dadruch später Probleme, bzw. leidert die Performance darunter?

Mit freundlichen Grüßen

John

Werbeanzeige