Predstavljam vam svoju prvu verziju multimedijske biblioteke koju sam razvio Little DirectMedia Layer, skraćeno LDL.
Biblioteka je napisana u C++ standardu 98, što omogućuje njeno kompajliranje od Visual C++ 6.0 pa nadalje. Kod se distribuira pod uvjetima Boost Software License 1.0. No, biblioteka ne ograničava programere u izboru C++ standarda, programer može koristiti bilo koji moderni standard jezika. Pridržavam se filozofije downgrade - korištenje starih uređaja i softvera u svakodnevnom životu, kada tvrtke ne podržavaju svoje 'zastarjele' operacijske sustave ili uređaje, povećavajući sa svakom novom verzijom svog proizvoda sistemske zahtjeve ili prestaju podržavati uređaj. Milijarde uređaja diljem svijeta neprekidno obrađuju milijarde instrukcija neoptimiziranog koda.
Ove godine sam nastupio na konferenciji C++ 2023 s predavanjem „Naprijed u prošlost, ili razvijamo okvir za Windows 95 2023. godine“.
Svojim projektom želim dokazati da stari hardver još može biti koristan i da ga nije rano otpisivati. Postoji nešto očaravajuće u starim tehnologijama, pristupima i uređajima, a to je također izazov novim bibliotekama i programima.
Na samom početku procesa razvoja nisam ni pomislio da je ova biblioteka uopće moguća. No, prilikom praktične realizacije prototipa, dodajući redak po redak u temelj buduće biblioteke, uvjeravao sam se u mogućnost njezina stvaranja i praktične primjene.
U sažetku, moguće je pisati brze programe, samo trebate iskoristiti znanje drevnih.
Mogućnosti biblioteke:
- podrška za Linux Debian 3 i novije (osigurana nativna izgradnja);
- podrška za Windows 95 - Windows 11;
- jednostavno API za rad s 2D grafikom;
- učitavanje mnogih grafičkih formata (bmp, png, tga, jpg);
- krosplatformsko API iznad prozora i događaja OS-a;
- za hardversko ubrzanje grafike koristi se OpenGL 1.2 i
- OpenGL 3.3, postoji podrška za obradu grafike samo na CPU-u, ako hardversko ubrzanje nije dostupno;
- render može biti odabran dinamički pri učitavanju aplikacije;
- jedinstveno API za sve sustave - napiši jednom i kompajliraj svugdje!
- reproduciranje zvuka;
- dinamičko i statičko povezivanje.
Planovi za budućnost:
- streaming reprodukcija zvuka;
- ispis teksta uz podršku biblioteke freetype;
- dodatni renderi Direct3D 9, 10, 11;
- API za rad s tokovima;
- ugrađena podrška za API za rad s mrežom;
- portiranje okvira na druge platforme: Android, iOS, MacOs.
Linkovi:
- Projektni repozitorij s opisom za izgradnju
- Primjeri programa
- Prezentacija izvještaja
- Prethodna rasprava na LOR-u
Izvor: linux.org.ru
