Tutvustan teile mu loodud esimese versiooni meediabibliotekist Little DirectMedia Layer, lühendatud LDL.
Raamatukogu on kirjutatud C++ 98 standardis, võimaldades selle kompileerimist alates Visual C++ 6.0-st. Kood levitatakse Boost Software License 1.0 tingimustel. Kuid raamatukogu ei piira programmeerijaid C++ keele standardi valiku osas, programmeerija saab kasutada mis tahes kaasaegset keele standardit. Jään truuks downgrade filosoofiale - see on vanade seadmete ja tarkvara kasutamine igapäevaelus, kui firma ei toeta enam oma 'aegunud' operatsioonisüsteeme või seadmeid, suurendades iga uue toote versiooniga süsteeminõudeid või lõpetades seadme toetuse. Miljardeid seadmeid üle kogu maailma töötlevad iga sekundi jooksul miljardeid mitteoptimeeritud koodi korraldusi.
Sel aastal esinesin C++ 2023 konverentsil ettekandega „Eelmine aeg, või Loome raamistikku Windows 95 jaoks 2023. aastal”.
Oma projektiga tahan tõestada, et vana riistvara võib veel kasulik olla ja seda on liiga vara kasutusest kõrvaldada. Vanades tehnoloogiates, lähenemistes ja seadmetes on midagi võluvat, ja see on ka väljakutse uutele raamatukogudele ja programmidele.
Arendusprotsessi alguses ei osanud ma arvata, et selline raamatukogu on üldse võimalik. Kuid prototüübi praktilise rakendamise käigus, lisades rida-realt tulevase raamatukogu alustele, veendusin selle loomise ja praktilise rakendamise võimaluses.
Kokkuvõtteks võib öelda, et kiirete programmide kirjutamine on võimalik, tuleb lihtsalt kasutada vanade teadmisi.
Raamatukogu võimalused:
- toetab Linux Debian 3 ja uuemaid (natiivne kogumine on tagatud);
- toetab Windows 95 kuni Windows 11;
- lihtne API 2D graafika töötlemiseks;
- paljude graafikavormingute laadimine (bmp, png, tga, jpg);
- platvormideülene API akende ja operatsioonisüsteemide sündmuste jaoks;
- graafika riistvarakiirenduseks kasutatakse OpenGL 1.2 ja
- OpenGL 3.3, olemas on toetus graafika töötlemiseks ainult CPU-l, kui riistvarakiirendust ei ole;
- renderdamine saab rakenduse laadimise ajal dünaamiliselt valida;
- ühtne API kõigi süsteemide jaoks - kirjuta kord ja kompileeri igal pool!
- heli esitamine;
- dünaamiline ja staatiline linkimine.
Tulevikuplaanid:
- heli voogesitus;
- teksti väljund koos freetype raamatukogu toega.
- täiendavad renderdused Direct3D 9, 10, 11;
- API voogude haldamiseks;
- sisseehitatud API tugi võrgu haldamiseks;
- raamistiku portimine teistele platvormidele: Android, IOS, MacOs.
Lingid:
- projekti repository koos ehituse kirjeldusega
- programmi näidised
- ettekande esitamine
- eelmine arutelu LORis
Allikas: linux.org.ru
