Vă prezint prima versiune a bibliotecii multimedia pe care am dezvoltat-o. Little DirectMedia Layer, pe scurt LDL.
Biblioteca este scrisă în standardul C++ 98, ceea ce permite compilarea ei începând cu Visual C++ 6.0. Codul este distribuit sub termenii Boost Software License 1.0. Totuși, biblioteca nu limitează programatorii în alegerea standardului C++; un programator poate folosi orice standard modern al limbajului. Eu ader la filozofia downgrade – utilizarea dispozitivelor și software-ului vechi în viața de zi cu zi, atunci când companiile nu își mai susțin propriile lor sisteme de operare sau dispozitive 'învechite', crescând cerințele sistemului cu fiecare nouă versiune a produsului lor sau încetând suportul pentru dispozitive. Miliarde de dispozitive din întreaga lume procesează miliarde de instrucțiuni de cod neoptimizat în fiecare secundă.
Anul acesta am avut o prezentare la conferința C++ 2023 „Înapoi în viitor, sau Dezvoltarea unui framework pentru Windows 95 în 2023”.
Prin proiectul meu vreau să demonstrez că hardware-ul vechi încă poate fi util și că nu este prea devreme să fie considerat uzat. Există ceva fascinant în tehnologiile, abordările și echipamentele vechi, și este, de asemenea, o provocare pentru noile biblioteci și programe.
La începutul procesului de dezvoltare, nu m-am gândit că această bibliotecă ar fi posibilă. Dar, în timpul implementării practice a prototipului, adăugând linie cu linie în fundamentul bibliotecii viitoare, m-am convins de fezabilitatea creării și aplicării sale practice.
În concluzie, este posibil să scrii programe rapide, este suficient să folosești cunoștințele străvechi.
Capabilitățile bibliotecii:
- suport pentru Linux Debian 3 și versiuni ulterioare (asigurată construcția nativă);
- suport pentru Windows 95 – Windows 11;
- API simplu pentru lucrul cu grafică 2D;
- încărcarea multor formate grafice (bmp, png, tga, jpg);
- API multiplatformă pentru feron și evenimentele OS;
- pentru accelerarea hardware-ului grafic se folosește OpenGL 1.2 și
- OpenGL 3.3, având suport pentru procesarea graficii doar pe CPU, dacă nu există accelerare hardware;
- rendererul poate fi ales dinamic la încărcarea aplicației;
- API unificat pentru toate sistemele – scrie o dată și compilează oriunde!
- redare audio;
- linkare dinamică și statică.
Planuri pentru viitor:
- redare audio în flux;
- afișarea textului cu suport pentru biblioteca freetype;
- renderuri suplimentare Direct3D 9, 10, 11;
- API pentru lucrul cu fluxurile;
- suport încorporat API pentru lucrul cu rețelele;
- portarea framework-ului pe alte platforme: Android, iOS, MacOS.
Linkuri:
- Repozitoriu al proiectului cu descrierea construirii
- Exemple de programe
- Prezentarea discursului
- Discuția anterioară pe LOR
Sursa: linux.org.ru
