#1 02.09.2012 10:47:04

Peter-Pascal
Member
Registriert: 26.02.2007
Beiträge: 63

Mehrerer Interface von IDirect3DDevice9

Hallo zusammen,

ist Interface sowas ähnliches wie Instanz? Es gibt so schreckliche viele Begriffe, die bei COM anders sind als in der übrigen OOP-Welt.

Meine Frage ist: Können mehrere Instanzen von IDirect3DDevice9 abgeleitet werden (nennt sich das auch instanziiren)? Um bespielsweise ein Mesh gleichzeit in vier Fenstern zu zeigen. Vier Panels wird je ein Device zugeordnet (oder umgekehrt: dem Device wird ein Panel-Handle zugeordnet) und zeigen den Mesh von allen Seiten.

Ist das überhaupt die richtige Vorgehensweise und wieviel Devices können instanziiert werden? Gibt es eine Obergrenze, oder halt bis zur Erschöpfung der PC-eigenen Ressourcen?

Viele Grüße
Peter


Heute ist nicht alle Tage – ich komm wieder, keine Frage

Offline

 

#2 05.09.2012 16:22:11

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: Mehrerer Interface von IDirect3DDevice9

Hiho,

ein Interface kannst du eher mit einer abstrakten Klasse gleichsetzen. Es kann nicht direkt instanziiert werden und auch nicht direkt implementiert. Es können nur Klassen von einem oder mehreren Interfaces erben und diese implementieren.

Ableiten ist der Vorgang, dass du eine Klasse erstellst, welche von einer anderen Klasse oder Interface erbt. Instantiieren ist der Vorgang bei dem du ein konkretes Exemplar einer Klasse erzeugst. Nur um kurz die Begriffe klarzustellen smile

Dementsprechend kannst du mehrere Instanzen eines IDirect3DDevice9 erstellen. Diese könntest du dann so wie du beschrieben hast auf mehrere Panels mappen und ein Mesh von mehreren Seiten zeigen. Allerdings sind Meshes und Texturen Objekte die nicht dazwischen geteilt werden, d.h. du musst sie für jede Instanz einzeln erstellen und halten.

Soweit ich weiß gibt es keine Obergrenze bei den Devices, aber da sie alle auf der gleichen Hardware arbeiten kostet es halt immer mehr Performance alle zu benutzen. Laut SDK soll der Leistungseinbruch bei vielen Devices schon signifikant werden.

Die Vorgehensweise würde ich sagen ist schon korrekt nur aufwendig zu managen, da man alles immer mehrmals haben muss. Man könnte auch ein Device nehmen und dann vier Presents machen, welche immer in ein anderen Teil des Panels rendern, welche mit Rects festgelegt werden. Aber da rate ich auch nur ins Blaue wink Hab mal eine Anwendung mit zwei Devices gehabt und hat auch ganz gut funktioniert, war halt nur aufwendig vom Management.

MfGnietschow

Beitrag geändert von Gnietschow (05.09.2012 16:23:24)


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#3 10.09.2012 18:11:34

Peter-Pascal
Member
Registriert: 26.02.2007
Beiträge: 63

Re: Mehrerer Interface von IDirect3DDevice9

Danke Gnietschow,

ich hatte gehofft, dass es möglich ist und bin mir durch Deine Antwort jetzt so einigermaßen sicher auf dem richtigen Weg zu sein. Sicherlich wird das schwer sein zu handeln. Ich erhoffe mir aber durch Erstellen von Objekten das einigermaßen übersichtlich hinzubekommen. Ein Objekt für IDirect3D9, welches auch nur einmal instatiiert wird und ein Objekt für das Device mit den nötigigen Parameter, welches dann öfter instantiiert werden kann und wiederum Objekten übergeben wird, dass für die 3D-Darstellung zuständig ist. Unterschieden werden die DeviceObjecte nur durch das ihnen zugeordnete Panel.

Gruß Peter


Heute ist nicht alle Tage – ich komm wieder, keine Frage

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson