Войти
ПроектыФорумОцените

Фреймворк LDL

Страницы: 1 2 Следующая »
#0
22:29, 22 ноя 2022

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

Пилю мультимедийную библиотеку на С++ как для новых, так и с поддержкой старых систем. Ближайший аналог SDL2 но на С++.

Запилил обзорную статью на Хабре.

Сам проект

Буду рад советам и рекомендациям в комментах или на гитхабе в issue. Проект ещё в зачаточном состоянии. Документации пока нет, но есть тесты. Куцый функционал, мало поддерживаемых систем. Но работа идёт.

На данный момент готов следующий функционал.
1. Поддерживаются все версии Windows начиная с Windows 95.
2. Реализован функционал по выводу и рисованию 2D графики. (Вывод картинок, рисование графических примитивов)
3. По умолчанию для GPU рендера реализована поддержка OpenGL 1.2
4. Пока отсутствует документация, но она планируется после стабилизации графического API.

Вопросы требующие решения:
1. Реализация Fast Pimpl'a для поддержки старых компиляторов.
2. Как реализовать юникод, что бы и старые системы работали.
3. Как более модульно разбить проект.
4. Имеет ли смысл выпилить исключения и есть ли альтернатива.
5. Как лучше организовать тестирование связанное с графикой.

#1
23:35, 22 ноя 2022

JordanCpp
> Пилю мультимедийную библиотеку на С++
А зачем? Какие принципиальные преимущества скажем с SFML?

#2
23:52, 22 ноя 2022

Поддержка старым систем включая dos. Поддержка старых версий Directx начиная с 5.0. Glide. Поддержка старых дистров Linux, с 2000-го года. Но данные возможности ещё не реализованы.

На данный момент я переношу фреймворк под Linux (xlib) .

Вряд ли это является преимуществом. Скорее желание, сделать тоже самое, но только упростив API, и перенести на максимальное количество платформ. Включая древние платформы с поддержкой компилятора С++ 98.

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

#3
(Правка: 23 ноя 2022, 0:05) 23:58, 22 ноя 2022

Проект больше направлен на изучение как оно работает. И разработать, что то для старых систем.

Все мы знаем, что есть движки типа Unreal и Unity, но всё равно люди пишут свои и делятся ими с общественностью. И никто их не спрашивает, в чем преимущество то? Просто пишут, потому, что могут:)

#4
1:16, 23 ноя 2022

Старые системы это хороший якорь для разработчика.
Ну и такими начинаниями забит весь гитхаб, но дальше вывода одного спрайта мало кто продвинулся.

#5
2:09, 23 ноя 2022

JordanCpp
>Все мы знаем, что есть движки типа Unreal и Unity, но всё равно люди пишут свои и делятся ими с общественностью. И никто их не спрашивает, в чем преимущество то?

У некоторых, это другой ЯП.

#6
9:51, 23 ноя 2022

gamedevfor

Старые системы это хороший якорь для разработчика.

Это специфика проекта.

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

Проект развивается. Доделываю минимальный базовый функционал. Просто нужно время.

#7
9:52, 23 ноя 2022

Skvoznjak

У некоторых, это другой ЯП.

Кому, что нравится. Решаемые задачи разные по сложности.

#8
10:51, 23 ноя 2022

JordanCpp
> И никто их не спрашивает, в чем преимущество
Спрашивают, пропорционально популярности автора.

#9
11:07, 23 ноя 2022

kkolyan
Я ответил, что преимуществ нет. Пока проект делается на коленке силами одного человека. Создал статью на Хабре и тему на этом форуме. Что бы получить обратную связь. Как можно улучшить проект, чего не хватает. Как сделать правильно и т.д

#10
(Правка: 11:14) 11:12, 23 ноя 2022

На данный момент хочу заюзать идиому pimpl. Пример есть в статье

Какой путь лучше выбрать?
1. Хранить память в статическом  массиве как предлагает автор. Но возникают проблемы с выравнивание и портируемости данного способа на разных компиляторах.
2. Сделать некий системный аллокатор и инициализировать классы только им. Наружу он торчать не будет.

Думаю, воспользоваться вторым способом.

Но есть мысль реализовать через new и уже потом, выбрать подходящий способ.

#11
18:33, 23 ноя 2022

JordanCpp
а вот этот ответ разве не ставит крест на начинании?

На данный момент библиотека успешно компилируется Visual C++ 6.0 из коробки. Скорость компиляции огонь, но и уровень оптимизации хромает. К примеру вывод картинки на CPU различается в три раза на одном железе но с современным компилятором.

#12
19:06, 23 ноя 2022

#!
Обеспечение компиляции в том числе и на старых компиляторах ставит крест на проекте?
Как это работает?

Разработку я веду в MSVC 2022. Для портирования на Linux юзаю gcc вроде 10.

#13
19:09, 23 ноя 2022

Исходный код соответствует стандарту С++ 98, для большего охвата старых компиляторов, но и поддержка современных так же обеспечена. К примеру после портирования на Linux, есть желание портировать под Dos. Для этого буду использовать Open Watcom 32 битный режим.

#14
(Правка: 19:20) 19:18, 23 ноя 2022

#!
> а вот этот ответ разве не ставит крест на начинании?
"Крест" может возникнуть в неожидаемом месте.
К примеру, запуск и пересобранного из исходников в моём интересе TpForth (исходники системы на  VS6)
на последних Windows выводит (искажает) изображения картинок в изометрию (с чем это связано и как такое возможно не разбирался ещё) :)

Страницы: 1 2 Следующая »
ПроектыФорумОцените