Ich schreibe eine App, die von Drittanbietern erstellte Plugins verwendet, um alle Arten von 3D-Tricks zu rendern.App mit 3D & 3rd-Party Plugins - Vorwärtskompatibel OpenGL oder Direct3D?
Meine Hauptanwendung ist das Erstellen des Context/Render-Objekts und eines Renderer/Framebuffer-Objekts. Die 3rd-Party-Plugins werden ihre originellen Sachen dazu rendern, also benötigen sie Zugriff auf dieses Kontext-/Renderobjekt, um ihre 3d render-bezogenen Aufrufe auszuführen.
Ich kann wählen, dies entweder mit OpenGL oder Direct3D zu implementieren. Meine Entscheidung wird wahrscheinlich auf meinem Verständnis des nächsten Problems basieren:
Offensichtlich werden neue Versionen von OpenGL/Direct3D herauskommen, und es wäre schön, wenn neu erstellte Plugins von neueren Versionen von DX/profitieren könnten OGL als das Hauptprogramm wurde mit kompiliert. (, wenn der Computer die Anwendung ausgeführt wird unterstützt, dass neuere Version)
Mit OpenGL (mit OpenTK) Ich verstand es möglich ist, eine zukunfts kompatibel Kontext zu schaffen, wie es in „Gib mir die meisten up-to-date- Version, die abwärtskompatibel zur Version X ist ". Wenn also nach einem 3.2-Kontext gefragt wird, wenn 4.0 verfügbar ist, würde es einen 4.0-Kontext zurückgeben.
Für DirectX sehe ich nichts dergleichen, was bedeuten würde, dass, wenn ich mein Hauptprogramm mit DirectX 11 zum Beispiel erstellen würde, Drittanbieter-Plugins niemals neuere Versionen verwenden könnten, wenn sie verfügbar sind?
Erhalte ich das richtig?
Kann OpenGL Plugin-Schreiber von Drittanbietern aktivieren, um Plugins für neuere OpenGL-Versionen zu erstellen, während DirectX mir nicht erlaubt, so etwas zu tun?