LINUX.ORG.RU

Сообщения JordanCpp

 
Новости — Open Source

LDL 0.1

Группа Open Source

Состоялся первый публичный релиз мультимедийной библиотеки LDL (Little DirectMedia Layer), позволяющей создавать графические приложения, способные работать, как на современных, так и на устаревших системах (Windows 95+, дистрибутивы с ядром Linux 2.0+, FreeBSD 3.0+). Предоставляется простой кроссплатформенный API для управления окнами и обработки событий с устройств ввода. Для отрисовки может использоваться OpenGL 1.0-4.6. Код поставляется под лицензией LGPL 3.0.

Выпуск примечателен переходом с использования языка C++98 на язык ANSI C (C89) для обеспечения максимальной переносимости и совместимости со старыми компиляторами и платформами, включая DOS, Windows 95 и PlayStation 1.

( читать дальше... )

>>> Репозиторий LDL

 , , , ,

JordanCpp
()
Форум — Development

Прошу помощи в тесте сборки LDL на разных дистрах

Привет, сообщество!

Приглашаю вас протестировать сборку LDL (Little Directmedia Layer) на ваших Linux-ПК.

Библиотека представляет собой графический API с поддержкой OpenGL 1.2 и 3.3, единый для всех систем — от старого железа до современных видеокарт.


🔧 Сборка

Установка зависимостей:

sudo apt-get install libx11-dev libgl1-mesa-dev
git clone https://github.com/JordanCpp/LDL.git
cd LDL
cmake -B build
cmake --build build

Примеры

В каталоге examples содержится множество демонстраций:

OpenGL 1.2 — квадрат, вращение, частицы, движение, ландшафт OpenGL 3.3 — треугольник с VAO/VBO, вращающийся куб с освещением

Буду благодарен, если вы запустите примеры и сообщите:

Нет ли крашей? Всё ли корректно работает? Какие у вас система и видеокарта?

Заранее спасибо за тестирование! Любые замечания и баг-репорты приветствуются.

📌 Ссылки

Скриншоты

Атом Ландшафт Пример

 , ,

JordanCpp
()
Форум — Development

Я пишу облегчённую версию SDL3, с поддержкой старых систем.

Приветствую!

Проект решил назвать SDL3Lite. Проект пишу на C++ 98, но наружу торчит совместимый С API. Я хочу реализовать базовый функционал, поэтому вполне реально довести проект до конца. Главная идея проекта это сохранить совместимость с оригинальным C API SDL3. В идеале это конечно на уровне бинарной совместимости. Код единожды написанный должен собираться без изменений для всех поддерживаемых систем.

Сейчас работает рендер на OpenGL 1.2, добавляю версию software для старых систем без поддержки аппаратного ускорения. Также планирую добавить и поддержку vulkan. В репе есть скриншоты с выводом графики.

На данный момент поддерживается windows 95 и выше, linux начиная с Debian 3.

В будущих версиях планирую добавить поддержу windows 3.1 и ms-dos.

Рад буду советам, критике и предложениям.

 ,

JordanCpp
()
Новости — Open Source

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

Группа Open Source

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

Ссылки:

>>> Подробности

 , ,

JordanCpp
()
Форум — Development

Пишу фреймворк LDL, аналог SDL но на С++ и с поддержкой старых систем

Приветствую!

Пишу фреймворк для разработки софта или игр. Идею взял из библиотеки SDL, но пишу на С++.

Главная идея это кроссплатформенность, производительность и поддержка старых и новых систем. Windows 95 - Windows 11, Linux-дистрибьютивы, начиная с 2000-ых годов.

Сам проект. Лицензия Boost Software.

Идея зародилась после написания статьи «В софте все всрато и становится еще всратее».

Как говорится, если критикуешь, предлагай, а предлагая делай. Запилил обзорную статью на Habr’е. На данный момент фреймворк активно портирую на Linux.

Что реализовано:

  1. Поддержка 2D графики
  2. Абстракции над примитивами ОС. Окна, события, каталоги и т.д
  3. Поддержка Soft, OpenGL 1.2 и OpenGL 3 рендера.
  4. Аудио подсистема в реализации, пилю поддержку потокового воспроизведения музыки.

Особенности проекта.

  1. Поддержка старых систем 25+ лет.
  2. Модульный дизайн.
  3. Динамическая загрузка рендера при запуске приложения.
  4. Весь код написан на С++ 98, для поддержки большего числа компиляторов и систем. Но разработчик, может использоать любой стандарт языка, хоть С++ 23. Ограничение есть лишь у меня как у разработчика фреймворка.
  5. Высокоуровневый ООП API. Есть возможнось заюзать свои кастомные аллокаторы.
  6. Поддержка старого железа 25+ лет.
  7. Производительность.
  8. Минимальная внешняя зависимость.

Первый релиз планирую выпустить в течении месяца. Осталось реализовать следующие пункты.

  1. Протестировать и исправить порт под Linux.
  2. Реализовать воспроизведение потокового звука.
  3. Создать минимальную документацию.
  4. Добавить больше примеров.

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

Презентация

Тема на Gamedev.ru

Тема на Old-Games.ru

Буду рад обсудить данный проект. Критика и предложения, очень приветствуется.

Перемещено hobbit из web-development

 , ,

JordanCpp
()

RSS подписка на новые темы