OberonCore
https://forum.oberoncore.ru/

Собрать Blackbox SDL
https://forum.oberoncore.ru/viewtopic.php?f=127&t=6375
Страница 1 из 1

Автор:  hothing [ Суббота, 06 Апрель, 2019 09:30 ]
Заголовок сообщения:  Собрать Blackbox SDL

Я не понимаю всех причин по которым HostSDL заброшен, но идея мне нравитсо, поэтому решил собрать ББ с этим хостом. Оказалось это не тривиальная задача. Пришлось местами поработать и напильником и молотком. Удалсь запустить с пустым главным окном (хотя можно заметить очень блеклые линии "крест-накрест"). Дальше затык.

Рецепта сборки для BB v1.7.1 (portable) нет, но остались воспоминания, что:
1) Скопировать пакет подсистем Ogl, SDL2, kia, x86sdlhost
2) В Ogl используется константа не определенная в GL - надо доопределить
3) В подсистеме SDL2 отсутвует модуль FontDetect который необходим (был случайно найден в одном из репов Ивана Денисова)
4) Лучше сделать копии стандартных подсистем Std, System (у меня они Nstd, Nx)
5) "Переключить" модули на Nstd, Nx
6) Перекомпилировать ВСЁ что будет в исполняемом файле
7) Можно собирать, важен порядок элаборации
8) Сделать отдельный каталог для запуска BBSDL
9) В нём обязательны: а) *.dll от SDL2, SDL2_image, SDL2_ttf; б) каталог Fonts/*.ttf; в) в корне "мутный" файлик bblogo.ms3d

Косяки:
* Так и не смог побороть трап №20 в WmMenus.New из-за (Nx)Menus.FirstMenu, пришлось сделать заглушку. Меню не работает.
* При разворачивании окно до максимума - права половина не отрисовывается
* Закрыть окно можно только двумя кликами: сперва на "закрыть", потом на "свернуть"

Останки экспериментов в архиве.

Буду рад, если у авторов найдется время помочь запустить ББ в рабочем виде.

Вложения:
BBSDL.7z [2.34 МБ]
Скачиваний: 304

Автор:  Иван Денисов [ Суббота, 06 Апрель, 2019 10:44 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Как здорово, что эта тема вам стала интересна.

Действуйте слово в слово по этой инструкции и всё получится:
http://redmine.molpit.org/projects/blackbox-sdl/wiki

У меня в Wine проблема с отрисовкой строк, поэтому ББ не запускается, если не закомментировать содержимое DrawString в x86sdlhostPorts. У вас могут быть другие видеодрайвера и все запустится со строками.

Но само окно запускается. Внутренние окна двигаются и открываются и закрываются. Меню работает и команды из него тоже вызываются.

Что надо делать...
1. надо актуализировать герметизацию для ББ 1.7.1 https://blackbox.obertone.ru/download
2. надо актуализировать все привязки в проекте для моей обновленной версии Sdl2

Это задача не простая, но, думаю, что только так дальше удастся продвинуться.

Иван Кузьмицкий бросил из-за неясных падений ББ. Так как он падал при отладке вывода строк и он не понимал в чем причина. Не мог установить взаимосвязь с чем это может быть связано. С тех пор Артур Ефимов выявил проблему. Мы это исправили в новых сборках ББ (спасибо LuoWy) и новой версии Sdl2. Но у Ивана Кузьмицкого уже нет запала заного проводить герметизацию. Он это не сумел в своё время задокументировать по шагам. Что-то осталось на Obertone, но мало. Иван как-то говорил, что готов по скайпу поделиться инфомацией, что помнит. Но по сути, надо проходить путь самостоятельно. Он уже не возьмется это делать. Это много часов кропотливой работы.

Я планировал использовать наработки Ивана и Петра для проекта кросс-платформенной версии ББ. Но сейчас до сих пор занимаюсь одним, но очень важным делом для SDL2-сборки - я убираю все зависимости HostCFrames от WinApi или Gtk2. Чтобы элементы управления работали корректно в Sdl2-сборке.

Если вы параллельно сможете ОСВЕЖИТЬ проект по герметизации ББ, то так, объединив усилия сделаем рабочую версию за пару тройку месяцев.

Вложения:
bb-sdl2.png
bb-sdl2.png [ 428.19 КБ | Просмотров: 7454 ]

Автор:  Иван Денисов [ Суббота, 06 Апрель, 2019 12:26 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Провел эксперимент, взял отрисовку шрифта из ObxIcosphere.odc и вставил напрямую в x86sdlhostPorts. Без древовидного кэширования, но текст выводится.
Вложение:
text_demo.png
text_demo.png [ 46.06 КБ | Просмотров: 7437 ]

Шрифт и измененный Ports в архиве.
Вложение:
check-ports.7z [143.59 КБ]
Скачиваний: 294

Так что пока можно и малой кровью, наверное, доработать проект. Но если будет какая-то нестабильность, то всё равно лучше заново провести герметизацию...

Автор:  Иван Денисов [ Суббота, 06 Апрель, 2019 13:04 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Нестабильно работает, к сожалению. Падает. Надо изучать. Но прототип, по крайней мере, вам показал полностью.

Автор:  hothing [ Суббота, 06 Апрель, 2019 15:03 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Иван, спасибо! Попробую.

UPD При клонировании Гитом он запрашивает пароль на "гит-модули" Ogl, SDL2. Почините?

Автор:  Иван Денисов [ Суббота, 06 Апрель, 2019 16:00 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

hothing писал(а):
Иван, спасибо! Попробую.

UPD При клонировании Гитом он запрашивает пароль на "гит-модули" Ogl, SDL2. Почините?

Поправил!

Автор:  hothing [ Среда, 10 Апрель, 2019 19:23 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Мда, что-то в этой сказке не так: на далеко не слабой машинке перерисовка идет, гм, заметно.
(К сожалению, Webm-файлы не загружаются).

Также, в процессе "портирования" на V1.7.1 увидел, что Host торчит много где.

Выбор в качестве бэкенда для 2D OpenGL кажется сомнительным, есть же Cairo или Skia. Надо исследовать.

Автор:  Ярослав Романченко [ Среда, 10 Апрель, 2019 20:22 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

hothing писал(а):
Выбор в качестве бэкенда для 2D OpenGL кажется сомнительным, есть же Cairo или Skia. Надо исследовать.
Самое современное - Vulkan
PasVulkan GUI-subframework впечатляет

Автор:  Пётр Кушнир [ Среда, 10 Апрель, 2019 22:45 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Инструкции остались http://obertone.ru/bbnohost
http://obertone.ru/bbdonohost

Автор:  hothing [ Пятница, 12 Апрель, 2019 11:10 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Спасибо всем.

* Каркас ББ крепко завязан на пиксельную координатную сетку, через Ports, а все новомодные 2/3D библиотеки расчитаны на "свободные" КС. Конечно, можно делать трансляцию: пиксельные координаты транслировать в КС библиотеки, что бы та их снова транслировала в пиксельные.
Нужно ли? (А ошибки вычислений?)

* SDL оправдан если _всю_ графику (исключая отрисовку текста) реализовать средствами SDL + ББ. Что почти не реально сделать из-за крайнего ограничения по ресурсам (времени и сил).

Автор:  Info21 [ Пятница, 12 Апрель, 2019 19:20 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

hothing писал(а):
А ошибки вычислений?
Единица измерения в ББ достаточно мелкоскопическая, чтобы об этом не беспокоиться.

Автор:  Пётр Кушнир [ Пятница, 12 Апрель, 2019 19:34 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Когда я этим занимался, то 1/36000 типографского пункта казались нормальной точностью вычислений.

Автор:  hothing [ Воскресенье, 14 Апрель, 2019 07:51 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

Ярослав Романченко писал(а):
hothing писал(а):
Выбор в качестве бэкенда для 2D OpenGL кажется сомнительным, есть же Cairo или Skia. Надо исследовать.
Самое современное - Vulkan
PasVulkan GUI-subframework впечатляет
Посмотрел. Vulkan - аппаратно-програмный "комплекс", который расчитан на поддержку GPU.
Последние лет 8 все мое рабочее ПО крутится в ВМ-ах, и я не исключение. Когда реализуют Vulkan для ВМ и реализуют ли неизвестно. Привязывать к нему ГИП из-за "красивостей" не стоит.

Автор:  Ярослав Романченко [ Воскресенье, 14 Апрель, 2019 09:36 ]
Заголовок сообщения:  Re: Собрать Blackbox SDL

hothing писал(а):
Последние лет 8 все мое рабочее ПО крутится в ВМ-ах, и я не исключение. Когда реализуют Vulkan для ВМ и реализуют ли неизвестно. Привязывать к нему ГИП из-за "красивостей" не стоит.
Если на ВМ-ах, то тогда OpenGL себя там чувствует вполне неплохо. В частности на оракловской бесплатной ВМ я на OpenGL какое-то время без проблем разрабатывал. Но смотря ещё какую систему внутри ВМ использовать. С "семёркой" проблем не было, а у "десятки" скатывалось в софтварный режим.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/