Ich prÀsentiere Ihnen die von mir entwickelte erste Version der Multimedia-Bibliothek Little DirectMedia Layer, kurz LDL.
Die Bibliothek ist in C++ 98 geschrieben, was es ermöglicht, sie ab Visual C++ 6.0 zu kompilieren. Der Code wird unter den Bedingungen der Boost Software License 1.0 verteilt. Die Bibliothek schrĂ€nkt Programmierer jedoch nicht bei der Wahl des C++-Standards ein; der Programmierer kann jeden modernen Sprachstandard verwenden. Ich folge der Philosophie des Downgrades â der Nutzung Ă€lterer GerĂ€te und Software im Alltag, wenn Unternehmen ihre "veralteten" Betriebssysteme oder GerĂ€te nicht mehr unterstĂŒtzen und mit jeder neuen Version ihrer Produkte die Systemanforderungen erhöhen oder die UnterstĂŒtzung fĂŒr das GerĂ€t einstellen. Milliarden von GerĂ€ten auf der ganzen Welt verarbeiten jede Sekunde Milliarden von Anweisungen unoptimierten Codes.
In diesem Jahr habe ich auf der C++ 2023-Konferenz mit dem Vortrag âVorwĂ€rts in die Vergangenheit oder Wir entwickeln ein Framework fĂŒr Windows 95 im Jahr 2023â.
Mit meinem Projekt möchte ich beweisen, dass alte Hardware noch von Nutzen sein kann und es zu frĂŒh ist, sie abzuschreiben. Es gibt etwas Faszinierendes an alten Technologien, AnsĂ€tzen und GerĂ€ten, und es stellt zudem eine Herausforderung fĂŒr neue Bibliotheken und Programme dar.
Zu Beginn des Entwicklungsprozesses hĂ€tte ich nicht gedacht, dass diese Bibliothek ĂŒberhaupt möglich ist. Aber bei der praktischen Umsetzung des Prototyps, Zeile fĂŒr Zeile in das Fundament der zukĂŒnftigen Bibliothek einfĂŒgend, wurde ich von der Möglichkeit ihrer Schaffung und praktischen Anwendung ĂŒberzeugt.
Zusammenfassend lÀsst sich sagen, dass man schnelle Programme schreiben kann; man muss nur das Wissen der Alten nutzen.
Funktionen der Bibliothek:
- UnterstĂŒtzung fĂŒr Linux Debian 3 und höher (nativ wird ein Build bereitgestellt);
- UnterstĂŒtzung fĂŒr Windows 95 â Windows 11;
- ein einfaches API zur Arbeit mit 2D-Grafik;
- Laden vieler Grafikformate (bmp, png, tga, jpg);
- plattformĂŒbergreifendes API ĂŒber Fenster und OS-Ereignisse;
- FĂŒr die Hardwarebeschleunigung der Grafik wird OpenGL 1.2 und
- OpenGL 3.3 verwendet, es gibt UnterstĂŒtzung fĂŒr die Verarbeitung von Grafiken nur auf der CPU, wenn keine Hardwarebeschleunigung vorhanden ist;
- Der Renderer kann dynamisch beim Laden der Anwendung ausgewÀhlt werden;
- Ein einheitliches API fĂŒr alle Systeme â einmal schreiben und ĂŒberall kompilieren!
- Audio-Wiedergabe;
- dynamische und statische Verlinkung.
PlĂ€ne fĂŒr die Zukunft:
- Streaming-Audio-Wiedergabe;
- Textausgabe mit UnterstĂŒtzung der Freetype-Bibliothek;
- zusĂ€tzliche Renderings fĂŒr Direct3D 9, 10, 11;
- API zur Verarbeitung von Streams;
- eingebaute UnterstĂŒtzung fĂŒr das Netzwerk-API;
- Portierung des Frameworks auf andere Plattformen: Android, iOS, MacOS.
Links:
- Das Projekt-Repository mit einer Beschreibung des Builds
- Beispielprogramme
- PrÀsentation des Berichts
- FrĂŒhere Diskussion auf LOR
Quelle: linux.org.ru
