Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 17.05.2008, 20:49 Titel: DirectX UI |
|
|
hi,
ich habe mir mal diese AntTweakbar geladen^^
Das soll ja so eine UI für DirectX sein, aber ich würde gern mal wissen was das prinzip eines solchen buttons in DirectX ist ^^
sind das einfach nur surfaces wie aus der 2D programmierung ?
hat einer schonmal buttons in directx geproggt?? _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 17.05.2008, 21:27 Titel: |
|
|
Ich kenn die API zwar nicht, aber ich wette um jeden Preis, dass das vortransformierte triangle quads sind . Also einfach zwei dreiecke mit RHW Koordinaten (also bereits im projection space), die dann durch Direct3D auf den Bildschirm gebracht werden. Mach ich bei meinem UI system auch so. DirectDraw is schlicht und einfach nicht mehr zeitgemäß. Grafikkarten sind halt nur noch für schnelle 3D Darstellung gemacht. So weit ich weiß wird DirectDraw heutzutage auf den meisten Karten auch sozusagen durch Direct3D emuliert. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 18.05.2008, 16:53 Titel: |
|
|
ich habe das jetzt so gemacht.
Ich habe die größe des backbuffers auf die größe des anwendungbereich des fensters (ohne titelleiste und so) mit getclientrect gesetzt.
dann habe ich ein rhw viereck erstellt.
Und mithilfe der windows message WM_LBUTTONDOWN und lparam habe ich den button eingegrenzt.
Ich bin mir sicher das ist nicht die eleganteste lösung ^^
Hat da jemand evtl ne bessere idee ?? _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 20.05.2008, 16:50 Titel: |
|
|
naja so wie der Doktor sagt also einfache quads aus 2 dreiecken. entweder vortransformiert (mit RHW) oder untransformiert zum rendern. letzteres bietet dynamik für "besondere" buttons, ist aber langsamer. Die Maus könntest du mit DInput lesen. Bei solchen Sachen würde ich nicht die WinAPI nutzen, da du mit DInput exklusiven (oder zumindests direkten) Zugriff auf die Maus hast und du nicht von der WinProc Routine abhängig bist.
Gruß DXer |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 20.05.2008, 19:24 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | naja so wie der Doktor sagt also einfache quads aus 2 dreiecken. entweder vortransformiert (mit RHW) oder untransformiert zum rendern. letzteres bietet dynamik für "besondere" buttons, ist aber langsamer. Die Maus könntest du mit DInput lesen. Bei solchen Sachen würde ich nicht die WinAPI nutzen, da du mit DInput exklusiven (oder zumindests direkten) Zugriff auf die Maus hast und du nicht von der WinProc Routine abhängig bist.
Gruß DXer |
Ja nur ich finde in der directX Doku keine Funktion, die die aktuelle cursor position wiedergibt, sondern nurfunktionen die sagen in welche richtung die maus bewegt wurde ^^ _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 20.05.2008, 20:06 Titel: |
|
|
weil ne Maus keine Position hat. Woher soll die wissen, wo am Tisch die ist?
Also wirst du wohl den Cursor auf Position xy setzen und dann entsprechend der Mausbewegungen verschieben. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 20.05.2008, 20:18 Titel: |
|
|
RebornX hat Folgendes geschrieben: | Ja nur ich finde in der directX Doku keine Funktion, die die aktuelle cursor position wiedergibt, sondern nurfunktionen die sagen in welche richtung die maus bewegt wurde ^^ |
Wenn du die Cursorposition auf dem Bildschirm abfragen willst kannst du einfach GetCursorPos(...) benutzen (siehe MSDN ). Für UIs is das sinnvoll. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
|