Prima versione della libreria multimediale LDL con supporto per sistemi legacy

Presento alla vostra attenzione la prima versione della libreria multimediale da me sviluppata. Piccolo livello DirectMedia, abbreviato LDL.

La libreria è scritta nello standard C++ 98, che ne consente la compilazione a partire da Visual C++ 6.0. Il codice è distribuito secondo i termini della licenza software Boost 1.0. Ma la libreria non limita i programmatori nella scelta dello standard del linguaggio C++; un programmatore può utilizzare qualsiasi standard del linguaggio moderno. Aderisco alla filosofia del downgrade: si tratta dell'uso di vecchi dispositivi e software nella vita di tutti i giorni, quando le aziende non supportano i propri sistemi operativi o dispositivi "obsoleti", aumentando i requisiti di sistema con ogni nuova versione del loro prodotto o smettono di supportare il dispositivo. Miliardi di dispositivi in ​​tutto il mondo elaborano miliardi di istruzioni di codice non ottimizzate ogni secondo.

Quest'anno ho tenuto una presentazione alla conferenza C++ 2023 “Avanti nel passato o sviluppo di un framework per Windows 95 nel 2023”.

Con il mio progetto voglio dimostrare che il vecchio hardware può ancora essere utile ed è troppo presto per considerarlo rottame. C'è qualcosa di affascinante nelle vecchie tecnologie, approcci e hardware, e anche una sfida per nuove librerie e programmi.

All'inizio del processo di sviluppo non avevo idea che questa libreria fosse possibile. Ma durante la realizzazione pratica del prototipo, aggiungendo riga per riga alla base della futura biblioteca, mi sono convinto della possibilità della sua creazione e applicazione pratica.

Per riassumere quanto sopra, è possibile scrivere programmi veloci, basta utilizzare la conoscenza degli antichi.

Caratteristiche della libreria:

  • supporto per Linux Debian 3 e versioni successive (build nativa fornita);
  • supporta Windows 95 - Windows 11;
  • API semplice per lavorare con la grafica 2D;
  • caricamento di numerosi formati grafici (bmp, png, tga, jpg);
  • API multipiattaforma su eventi Windows ed OS;
  • OpenGL 1.2 viene utilizzato per l'accelerazione grafica hardware e
  • OpenGL 3.3, il supporto per l'elaborazione grafica è disponibile solo sulla CPU, se non è presente l'accelerazione hardware;
  • il renderer può essere selezionato dinamicamente durante il caricamento dell'applicazione;
  • un'unica API per tutti i sistemi: scrivi una volta e compila ovunque!
  • riproduzione del suono;
  • collegamento dinamico e statico.

Piani per il futuro:

  • riproduzione audio in streaming;
  • output di testo con supporto della libreria freetype;
  • rendering aggiuntivi Direct3D 9, 10, 11;
  • API per lavorare con i flussi;
  • supporto API integrato per lavorare con la rete;
  • porting del framework su altre piattaforme: Android, iOS, MacOs.

Links:

Fonte: linux.org.ru

Aggiungi un commento