Прадстаўляю Вашай увазе распрацаваную мной першую версію мультымедыйнай бібліятэкі Little DirectMedia Layer, скарочана LDL.
Бібліятэка напісана на З++ 98 стандарту, што дазваляе кампіляваць яе пачынальна з Visual C++ 6.0. Код распаўсюджваецца на ўмовах Boost Software License 1.0. Але бібліятэка не абмяжоўвае праграмістаў у выбары стандарта мовы C++, праграміст можа выкарыстоўваць любы сучасны стандарт мовы. Я прытрымліваюся філасофіі downgrade – гэта выкарыстанне старых прылад і софту ў паўсядзённым жыцці, калі кампаніі не падтрымліваюць свае ж "састарэлыя" аперацыйныя сістэмы або прылады, павялічваючы з кожнай новай версіяй свайго прадукта сістэмныя патрабаванні, або спыняюць падтрымку девайса. Мільярды прылад па ўсім свеце штосекундна перамолваюць мільярды інструкцый неаптымізаванага кода.
У гэтым годзе я выступіў на канферэнцыі С++ 2023 з дакладам «Наперад у мінулае, або Распрацоўваем фрэймворк пад Windows 95 у 2023 годзе».
Сваім праектам я жадаю давесці, што старое жалеза яшчэ можа прыносіць карысць і яго рана спісваць ва ўтыль. Ёсць нешта чароўнае ў старых тэхналогіях, падыходах і жалязяках, а яшчэ гэта выклік новым бібліятэкам і праграмам.
У самым пачатку працэсу распрацоўкі я і не меркаваў, што дадзеная бібліятэка ўвогуле магчымая. Але пры практычнай рэалізацыі прататыпа, дадаючы радок за радком у падмурак будучай бібліятэкі, пераконваўся ў магчымасці яе стварэння і практычным ужыванні.
Рэзюмуючы вышэйсказанае, магчыма пісаць хуткія праграмы, трэба проста скарыстацца ведамі старажытных.
Магчымасці бібліятэкі:
- падтрымка Linux Debian 3 і вышэй (забяспечана натыўная зборка);
- падтрымка Windows 95 - Windows 11;
- простае API для працы з 2D графікай;
- загрузка мноства графічных фарматаў (bmp, png, tga, jpg);
- кросплатформавае API над вокнамі і падзеямі АС;
- для апаратнага паскарэння графікі выкарыстоўваецца OpenGL 1.2 і
- OpenGL 3.3, прысутнічае падтрымка апрацоўкі графікі толькі на ЦПУ, калі адсутнічае апаратнае паскарэнне;
- рэндэр можа быць абраны дынамічна пры загрузцы прыкладання;
- адзінае API для ўсіх сістэм - напішы адзін раз і кампілюй усюды!
- прайграванне гуку;
- дынамічная і статычная лінкоўка.
Планы на будучыню:
- струменевае ўзнаўленне гуку;
- вывад тэксту з падтрымкай бібліятэкі freetype;
- дадатковыя рэндэры Direct3D 9, 10, 11;
- API для працы са струменямі;
- убудаваная падтрымка API для працы з сеткай;
- партаванне фрэймворка на іншыя платформы: Android, IOS, MacOs.
спасылкі:
- Рэпазітар праекта з апісаннем па зборцы
- Прыклады праграм
- Прэзентацыя даклада
- Папярэдняе абмеркаванне на Лоры
Крыніца: linux.org.ru
