DirectX-Schnittstellen verwenden das Component Object Model (COM).
nicht alle Aspekte der COM für DirectX verwendet, aber es folgt den Konventionen der Verwendung von „I“, um anzuzeigen, Schnittstellen, Schnittstellen von IUnknown
abgeleitet sind, die Referenzzählung Griffe und ‚Casting‘ von Schnittstellen durch QueryInterface
und Schnittstellen sind so ausgelegt, direkt zu C++ abstrakten virtuellen Klassen zuordnen.
Die DirectX-Variante von COM wird oft informell COM Lite genannt. Der Hauptunterschied besteht darin, dass die Lebensdauer eines von einem Gerät erstellten untergeordneten Objekts sofort ungültig wird, wenn das Geräteobjekt zerstört wird. Auch bei "set" -Objekten werden ihre Referenzzählungen nicht erhöht, indem sie nur an die Rendering-Pipeline gebunden werden.
Siehe The Component Object Model
Sie sollten die Verwendung des ComPtr Smart-Pointer macht für die Arbeit mit Direct3D-Schnittstellen in Erwägung ziehen. Es macht das Leben viel einfacher.
BTW Sie möchten vielleicht etwas Zeit zum Lesen von DirectX Tool Kit tutorials nehmen, die viele der Grundlagen von Direct3D abdeckt.
warum zum Teufel ich unten Stimme (n) bekommen? es gibt eine andere sehr ähnliche (nicht exakte) Frage hier: http://StackOverflow.com/Questions/37509559/understanding-id3d11device-and-id3d11devicecontext und sie erhielten keine downvotes ... – dave
lesen Sie wieder den guten Weg, um ein zu fragen frage http://stackoverflow.com/help/how-to-ask – galop1n
ich oder nicht ich in einem klassennamen ist eine reine meinung basierte entscheidung, ich meine schnittstelle, und cary das prädikat es wird ein komplexes objekt, die einen service bieten ohne das Wissen des Inneren zu liefern. Eine einfache Struktur mit Basiselementen ist keine Schnittstelle, das ist alles. – galop1n