DirectX und OpenGL in einem Programm
DirectX und OpenGL in einem Programm
Kann ich die DirectX und OpenGL Subsystems so einbinden, dass ich aus dem Programm heraus (meinetwegen nach Neustart des Programms) entscheiden kann, welches zum Einsatz kommt? So wie es z.B. Google Earth macht.
Schätze, das geht nicht. Du kannst ja das Prog nur mit einem SubSystem kompilieren. Du müsstest also ein kleines Startprogramm vorschalten, welches dann je nach gewünschem SubSystem die entsprechende EXE mit RunProgram() aufruft.
In diesem Zusammenhang würde mich interessieren, wie man herausfinden kann, welche DirectX-Version beim User installiert ist, um dazu passend eine mit DX7 oder DX9 kompilierte EXE aufzurufen.
In diesem Zusammenhang würde mich interessieren, wie man herausfinden kann, welche DirectX-Version beim User installiert ist, um dazu passend eine mit DX7 oder DX9 kompilierte EXE aufzurufen.
Gruß
Markus
Markus
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
natürlich kann man grundsätzlich in einem programm jede routine die mit Grafikausgabe zu tun hat zweimal anlegen und zur laufzeit entscheiden, welche ausgeführt werden soll.
in PB wird das wohl etwas komplizierter, weil hier je nach Subsystem andere Libs eingebunden werden, es steht also pro Kompilat nur ein Subsystem zur Verfügung.
hier würde sich anbieten sämtliche Grafikausgaben in zwei DLLs zu kompileren, eine mit DX und eine mit oGL, und je nach wunsch oder system lädt das hauptprogramm die eine oder die andere DLL.
... ausprobiert habe ich sowas aber noch nicht...
in PB wird das wohl etwas komplizierter, weil hier je nach Subsystem andere Libs eingebunden werden, es steht also pro Kompilat nur ein Subsystem zur Verfügung.
hier würde sich anbieten sämtliche Grafikausgaben in zwei DLLs zu kompileren, eine mit DX und eine mit oGL, und je nach wunsch oder system lädt das hauptprogramm die eine oder die andere DLL.
... ausprobiert habe ich sowas aber noch nicht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Probleme könnte es aber mit der PB-Lizenz geben ... da Wrapper-DLLs
nicht erlaubt sind. Ob das allerdings hier greifen würde liegt wohl auch
darann, was am ende für ein Aufwand für die DLLs nötig ist, also wie
viel mehr als Befehlwrappen nötig sein dürfte. ... oh je ... hoffe verstehst,
was ich sagen will
MFG PMV
nicht erlaubt sind. Ob das allerdings hier greifen würde liegt wohl auch
darann, was am ende für ein Aufwand für die DLLs nötig ist, also wie
viel mehr als Befehlwrappen nötig sein dürfte. ... oh je ... hoffe verstehst,
was ich sagen will
MFG PMV
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ist mir klar...
also, meine Idee läuft nicht darauf hinaus, die PB-Befehle direkt in die DLLs zu packen, das wäre ja ein Lizenzverstoß.
vielmehr meine ich, sämtliche Procedures deines Projektes die auf das Grafik-Subsystem zugreifen,
je zweimal in DLLs zu packen, eine für oGL und eine für DX.
die DLLs sind dann Funktionsbibliotheken deines Projektes und keine Wrapper.
also, meine Idee läuft nicht darauf hinaus, die PB-Befehle direkt in die DLLs zu packen, das wäre ja ein Lizenzverstoß.
vielmehr meine ich, sämtliche Procedures deines Projektes die auf das Grafik-Subsystem zugreifen,
je zweimal in DLLs zu packen, eine für oGL und eine für DX.
die DLLs sind dann Funktionsbibliotheken deines Projektes und keine Wrapper.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
Burstnibbler
- Beiträge: 58
- Registriert: 04.10.2008 12:10
Nicht zu empfehlenGimbly hat geschrieben:In diesem Zusammenhang würde mich interessieren, wie man herausfinden kann, welche DirectX-Version beim User installiert ist...
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Aber es geht über die Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Directx
Dort findet man dann Schlüssel für Version und Build-Nummer.
Auch nicht zu empfehlen.Burstnibbler hat geschrieben: Aber es geht über die Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Directx
Dort findet man dann Schlüssel für Version und Build-Nummer.
Ort und Format der Version haben sich mehrfach geändert und werden das vieleicht auch noch tun. Das heisst, wenn dein Spiel die Version prüft, wird es vieleicht zukünftige Versionen nicht erkennen. Es gibt ein paar alte Spiele, die deswegen den Dienst versagen, sehr ärgerlich.
Einfach Initialisieren und prüfen obs erfolgreich war. Alles andere is Käse.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
