Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров2.1K

Представляю Вашему вниманию, разработанную мной первую версию мультимедийной библиотеки 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. Презентация доклада.

Теги:
Хабы:
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Другие новости

Истории

Работа

QT разработчик
7 вакансий
Программист C++
110 вакансий

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область