Взвесив за и против. Решил остановиться на старой версии фреймворка С++ 98.
Данный проект будет переформатирован в набор библиотек. Идея остается прежней, фреймворк с поддержкой старых систем. Я решил не гнаться за совместимостью со всеми компиляторами С++ и нативной сборки на MS-dos.
Фреймворк так же будет разрабатываться на С++ 98.
Под ms-dos и windows 3.1 фреймворк будет собираться OpenWatcom. Для этого нужно добавить работу с палитрой. И не нужно лопатить весь фреймворк на си с классами. Решение окончательное. Но я рад, что потратил время, приобрёл опыт и он пригодится для порта под Dos.
Проект так же доступен: https://github.com/JordanCpp/Lib-LDL
Но в ближайшее время сделаю обновление, разделю проект на библиотеки.
LDL_Core - база для всего фреймворка, управление, файлами, временем, загрузкой динамических библиотек, матнматические функции
LDL_GLU - Поддержка библиотеки GLU для OpenGL
LDL_Graphics - API для вывода графики, рендер, окна управление событиями, рисование палитровых изображений
LDL_Image - Загрузка и чтение изображений
LDL_OpenGL - Поддержка всех версий OpenGL, GLES
LDL_Text - Работа с выводом текста и работой со шрифтами ttf, под капотом freetype
LDL_Audio - загрузка и воспроизведение звука с поддержкой mp3, ogg, wav и flac
Проект так же будет находиться в одном репозитории, но будет разбит на под проекты.
Наработки по новой концеции будут перенесены.
JordanCpp
А LDL что означает кста? Legacy DirectMedia Layer?
MrShoor
Legacy неплохо:)
Little DirectMedia Layer.
Хм мне нравится название Legacy наследие.
JordanCpp
Наследие предков
Скорректировал cmake, обновил readme на гитхабе.
Прошу протестировать сборку на linux.
git clone https://github.com/JordanCpp/Lib-LDL.git
cd Lib-LDL
cmake .
JordanCpp
> Прошу протестировать сборку на linux.
Проверил, проект собирается и примеры отображаются. :)
(затестил на собранной Mesa 11.2.2 из Slackware 14.2 в PuppyLinux Tahr)
P.S. Кстати в директории этой Mesa есть и архив с разнообразными примерами.
(для сборки всех примеров потребовалось добавить в Puppy GLEW, GLes и OsMesa)
KPG
Привет. Спасибо за тест. В последнее время было мало изменений, в основном фикс багов варнингов компиляторов. Тестировал на разных дистрах, исправил баг, теперь фреймворк нормально работает на debian 3 в том числе.
Сейчас по изменениям разгоняюсь. Надо уже допилить.
Реорганизовал код проекта.
Потратил много фремени на рефакторинг и переработку некоторых систем.
Добавляю полную поддержку Direct3D9 (DirectX9)
Ещё разместил тему о фреймворке, на полигоне призраков, старом досе и нескольких форумах по программированию.
Возможно найду единомышленников и заинтересованных программистов.
Решил начать ещё цикл уроков по фреймворку на хабре. Типа уроков по SDL.
JordanCpp
> Решил начать ещё цикл уроков по фреймворку на хабре. Типа уроков по SDL.
Неплохо бы было и сравнение с SDL в архитектурных решениях
и, вероятно, при тенденциях Linux использования затронуть освещение каких то вопросов
к привязке проекта начиная, к примеру, в понимнии Mesa, xOrg и др.
P.S. При достаточной известности проекта, есть вероятность, что на Github будут в него комитить
и создавать форки.
Интересно, что и под Windows98 (а позже XP) была сделана программа WinLinux для установки Linux
в качестве "приложения" под Windows98 (при использовании некоторого штатного протокола
системы для такой возможности - есть какой то обзор этой программы на yutube)
KPG
> Неплохо бы было и сравнение с SDL в архитектурных решениях
> и, вероятно, при тенденциях Linux использования затронуть освещение каких то
> вопросов
> к привязке проекта начиная, к примеру, в понимнии Mesa, xOrg и др.
Спасибо. Постараюсь сравнить в уроках и давать больше информации об окружении и как оно в унутрях работает.
KPG
> P.S. При достаточной известности проекта, есть вероятность, что на Github будут
> в него комитить
> и создавать форки.
Было бы шикарно.
KPG
> Интересно, что и под Windows98 (а позже XP) была сделана программа WinLinux для
> установки Linux
> в качестве "приложения" под Windows98 (при использовании некоторого штатного
> протокола
> системы для такой возможности - есть какой то обзор этой программы на yutube)
В первый раз вижу такую штуку, богата страна кулибинами.
KPG
> P.S. Кстати в директории этой Mesa есть и архив с разнообразными примерами.
> (для сборки всех примеров потребовалось добавить в Puppy GLEW, GLes и OsMesa)
Посмотрел примеры, понравились. Буду их портировать под фреймворк, больше примеров хороших и разных. Но сначала хотел добавить больше примеров для современных OpenGL. И ещё скоро встрою поддержку Vulkan.
JordanCpp
> Посмотрел примеры, понравились.
Да, достаточно интересные.
P.S. Если предполагается и как некоторая QT на минималках, то и примеры подобные QT тоже
имеет смысл добавить с описанием структуры решений дизайна проекта.
Мне бы лично был интересен вариант с возможостью интеграции DSL языка по возможностям
Форт языка для лёгкой возможности кодогенерации в него отдельными инструментами.
Как, к примеру, это сделано в BigForth DragonGraphics.pdf
или Retro-40
В основе ядра этих Форт систем, как и разных других, использован Си язык, но вероятно кому то
ближе наличие Lua, Python (JS) в интеграции движка проекта.
KPG
> P.S. Если предполагается и как некоторая QT на минималках, то и примеры
> подобные QT тоже
> имеет смысл добавить с описанием структуры решений дизайна проекта.
QT мне нравится в первую очередь как gui + экосистема. На данный момент фреймворк, пока тонкая кроссплатформенная прослойка, с поддержкой форматов графики, звука и ttf шрифтов, 2D графики, OpenGL, обработкой событий и управление окном ОС. Как таковых примеров на подобии QT и нет, функционал пока ещё скромен.
KPG
> Мне бы лично был интересен вариант с возможостью интеграции DSL языка по
> возможностям
> Форт языка для лёгкой возможности кодогенерации в него отдельными
> инструментами.
Это всё будущее. К примеру это всё можно прикручивать как доп библотеки. Вроде LDL_Forth.dll
Сейчас я сконцентрирован на ядре фреймворка и совершенно не хватает времени на такие расширения. Как вариант да, стоит прикрутить.
Недавно пытался прикрутить imgui, из за отсутвия некоторого функционала пока не реализовано. Нужно доработать фреймворк и добавлю поддержку imgui.
Опубликовал новость на Хабре о первом выпуске библиотеки LDL.