Nein ist es nicht.
Das system das wir da entwickelt haben basiert auf Plugins.
Zur verdeutlichung:
Wir haben Eingabe, Sound und Graphik in klassen gekapselt, und diese in dynamisch gelinkte DLLs ausgelgert.
Eine Funktion in der DLL gibt eine Instanz der Klasse zurück mit der man dann arbeitet.
Nun kann ich z.B. für Sound DirectSound3D benutzen. Ich kann für Input einfach DirectInput benutzen. Ich kann für Graphik z.B. OpenGl benutzen, ich kann aber auch ganz andere Plugins laden. z.B. Direct3D für graphik.
Insofern haben wir eine einheitliche Schnittstelle innerhalb unserer Engine geschaffen, wo man eine Art Plugin einsetzen kann, welches das Spiel mit dem System verbindet.
Das ist unter anderem Nötig, da geplant ist dieses Spiel nicht nur für Windows, sondern später auch für Linux und eventuell noch andere Systeme anzubieten. Wenn dir also direkt auf der DirectInput oder Windows Input Ebene arbeiten würden, dann währe ein Port ein extrem großer Aufwand.
Außerdem kann es noch den Vorteil, das sie Spieler später über eine Konfigoration selbst entscheiden können, welches Plugin sie benutzen wollen. z.B. währe es durchaus denkbar einige Plugins für Shuttering Brillen, oder auch diese einfach Rot-Grün 3D brillen zu schreiben, welche von der Programmierung her eine geringfügig andere Verarbeitung erfordern.
Von daher ist es also nicht irgend ein Mix aus verschiedenen Systemen, sondern Jedes der Systeme arbeitet vom anderen Unabhängig.
Das sieht so ähnlich aus wie bei COM, da ist es auch egal, welches Objekt ich habe, weil ich ja nur über fest definierte Interfaces zugreifen kann.