Pull to refresh

Первый выпуск мультимедийной библиотеки LDL c поддержкой старых систем

Reading time2 min
Views2.2K

Представляю Вашему вниманию, разработанную мной первую версию мультимедийной библиотеки Little DirectMedia Layer, сокращённо LDL. Библиотека написана на С++ 98 стандарта, что позволяет компилировать ее начиная с Visual C++ 6.0. Код распространяется на условиях Boost Software License 1.0. Но библиотека не ограничивает программистов в выборе стандарта языка C++, программист может использовать любой современный стандарт языка. Я придерживаюсь философии downgrade - это использование старых устройств и софта в повседневной жизни- когда компании не поддерживают свои же «устаревшие» операционные системы или устройства, увеличивая с каждой новой версией своего продукта системные требования или прекращают поддержку девайса. Миллиарды устройств по всему миру ежесекундно перемалывают миллиарды инструкций неоптимизированного кода.

В этом году я выступил на конференции С++ 2023 с докладом «Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году».

Своим проектом я хочу доказать, что старое железо еще может приносить пользу и его рано списывать в утиль. Есть что-то чарующее в старых технологиях, подходах и железках, а еще это вызов новым библиотекам и программам.

В самом начале процесса разработки я и не предполагал, что данная библиотека вообще возможна. Но при практической реализации прототипа, добавляя строчку за строчкой в фундамент будущей библиотеки, убеждался в возможности ее создания и практическом применении.

Резюмируя вышесказанное, возможно писать быстрые программы, нужно просто воспользоваться знаниями древних.

Возможности библиотеки:

  1. Поддержка Windows 95 - Windows 11

  2. Linux Debian 3 и выше. (Обеспечена нативная сборка)

  3. Простое API для работы с 2D графикой.

  4. Загрузка множества графических форматов (bmp, png, tga, jpg)

  5. Кроссплатформенное API над окнами и событиями ОС.

  6. Для аппаратного ускорения графики используется OpenGL 1.2 и OpenGL 3.3, присутствует поддержка обработки графики только на ЦПУ, если отсутствует аппаратное ускорение.

  7. Рендер может быть выбран динамически при загрузке приложения.

  8. Единое API для всех систем. Напиши один раз и компилируй везде!

  9. Воспроизведение звука.

  10. Динамическая и статическая линковка.

  11. Поддержка С API.

Планы на будущее:

  1. Поточное воспроизведение звука.

  2. Вывод текста с поддержкой библиотеки freetype.

  3. Дополнительные рендеры Direct3D 9, 10, 11.

  4. API для работы с потоками.

  5. Встроенную поддержку API для работы с сетью.

  6. Портирование фреймворка на другие платформы: Android, IOS, MacOs.

Ссылки:

  1. Репозиторий проекта с описанием по сборке.

  2. Примеры программ.

  3. Презентация доклада.

Tags:
Hubs:
Total votes 13: ↑13 and ↓0+13
Comments4

Other news