Grenzfrequenz
||||||||||
Das ist dann aber nur eine eingeschränkte Plattformunabhängigkeit und in diesem Thread geht es ja um eine Kompatibilität zu einer bestimmten Plattform. Ich weiß nicht, ob Du einfach iOS als Zeilplattform verwenden kannst, wenn Du den OpenGL Kram testweise raus löschsts? Ich tue mich jedenfalls weiterhin schwer, es zu glauben. Hast Du es mal ausprobiert? Nur darum geht es ja schließlich in diesem Thread: Wenn eines Tages iOS die Basis ist, kannst Du angeblich Deinen Code nicht mehr für die neue Zielplattform kompilieren, nur weil OpenGL nicht mehr unterstützt wird.Ok ich versuche mal zu antworten. Mein Code für den Softsynth selbst ist reines C++, ohne irgendwelche Assemblerspezifschen Sachen. Der Code kompiliert also wirklich überhall wo es einen C++-Compiler für gibt(x86, ARM, 68000, PowerPC, whatever). Dann habe ich eine Audio-Libs die sowohl CoreAudio, WASAPI, ASIO, Jack etc unterstützt. Diese kann ich einsetzen wo entsprechende Audioschnittstellen exisitieren. Meine Grafik, Fenster, Input Verwaltung wird über die GLFW-Lib genutzt, diese kann ich unter macOS, Linux, FreeBSD und Windows ohne Anpassungen nutzen. Mehr Abhängigkeiten habe ich derzeit nicht.
Nun zum Begriff der Plattformunabhängigkeit. Diese ist bei mir dann gegeben, wenn ich mein Programm auf mehr als einer Plattform kompilieren kann.
Wo wir wieder beim eigentlichen Punkt wären: Bislang hast Du keine iOS Zielplattform im Programm. Das ist klar, weil ja alle Deine Zielplattformen OpenGL unterstüzten. Wenn nun das klassische macOS weg fällt bzw etwas auf iOS Basis an dessen Stelle rückt, dann ist der große Aufreger, dass es dann kein OpenGL mehr gibt? Das würde mich zumindest wundern, wenn das jetzt der große Aufreger an dieser Umstellung wäre.Auf allen verfügbaren Plattformen kann ich nur meinen Softsynth selbst kompilieren, da Grafik und Soundausgabe auf die drei Hauptplattformen grob festgelegt sind. Die Anbindung an das Audio system ist aber extrem schwach. Wenn sich da was ändert ist das keine große Arbeit das anzupassen. Ich wollte bei OpenGL eigentlich keine zusätzliche Schicht einbauen, da es bis heute immer DIE Grafikschnittstellen für alle großen Plattformen war. Ist nun Pustekuchen dank Apple, also werde ich doch eine Schicht einbauen müssen.
Ja, das ist dann der einfachste Fall und die Interfaces können dann immer nur generisch sein sowie speziellen Nektar zur Codeoptimierung kann man dann kaum nutzen. Ist aber bei einfachen Programmen durchaus üblich.Nochmal zum Schluss. Der reine Softsynth ist reines C++ und muss null geändert werden, egal mit welchem C++Compiler und auf welcher CPU ich das immer auch kompiliere.
Ich hoffe, ich habe das genug aufgedröselt.
Da fehlt das Wörtchen "eingeschränkt", "bedingt", whateverC ist übrigens der erste plattformunabhängige Assembler gewesen und wurde genau deswegen erfunden. Java ist da plattformunabhängi wo es die JRE für gibt. Java wurde auch erfunden um die Speicherverwaltung einfacher zu gestalten, mit den üblichen Vor- und Nachteilen. C und C++ war schon immer plattformunabhängig.