OberonCore
https://forum.oberoncore.ru/

BlackBox на OpenGL
https://forum.oberoncore.ru/viewtopic.php?f=114&t=4287
Страница 1 из 7

Автор:  Пётр Кушнир [ Понедельник, 18 Март, 2013 21:56 ]
Заголовок сообщения:  BlackBox на OpenGL

Добрались до демки ObxViews5

Изображение
То есь, кнопки работают, мышка работает, вид курсора меняется.
Без (ну почти) мерзкого винапи любой может написать приложение на КП с ядром ББ, инфа 100%

Автор:  Info21 [ Вторник, 19 Март, 2013 10:12 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Пётр Кушнир писал(а):
Добрались до демки ObxViews5

Изображение
То есь, кнопки работают, мышка работает, вид курсора меняется.
Без (ну почти) мерзкого винапи любой может написать приложение на КП с ядром ББ, инфа 100%
Давайте назовем это альфой или бетой и
-- можно попросить формулировку в один абзац совершённого?
Чтоб было понятно человеку откуда-нибудь из Академгородка, знакомого с ББ, но не следящего за этим форумом.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 11:02 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Ну не знаю, это скорее прототип, нежели альфа.
В целом, схема простая. В ББ есть модули SystemXxx, в них описаны абстракции (оконные, рисовальные, и т.д.). На основе этих абстрактных интерфейсов построен остальной платформонезависимый каркас. В момент выполнения модуля Init при загрузке ББ происходит загрузка модулей HostXxx, являющихся реализациями вышеуказанных абстракций. Сейчас оно всё на WinApi, а мы взяли, выкинули все HostXxx, и вместо них подставляем YHostXxx, которые по большей части выполнены на основе freeglut и OpenGL (пока так). Сейчас вот упёрлись в вывод текстов.

Автор:  Роман М. [ Вторник, 19 Март, 2013 11:20 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

  1. Если сравнивать с исходным Блэкбоксом, то что общего будет в API у двух программ? Если нужно запустить любую программу, написанную для ББ, она должна запуститься без каких-либо изменений?
  2. Чем был обоснован выбор в OpenGL для отрисовки?

Вывод текста - сложная тема. Было бы глупо просто выкинуть HostFonts, не зная особенностей реализации. "Fonts" в названии следовало бы переименовать в Texts.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 11:29 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Да, в целом, план такой, что, в идеале на новом ББ можно будет использовать компоненты старого ББ (только те, кто не импортировал бездумно Host, они сами себе враги, в общем).
А OpenGL быстрый и простой способ рисовать, как минимум, он проще GDI и даёт кроссплатформенность.
Роман М. писал(а):
Было бы глупо просто выкинуть HostFonts, не зная особенностей реализации.
Ну послушайте, есть интерфейс (System)Fonts, зачем знать что-то о реализации, это же антикомпонентно. :)

Автор:  Роман М. [ Вторник, 19 Март, 2013 12:07 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Пётр Кушнир писал(а):
Да, в целом, план такой, что, в идеале на новом ББ можно будет использовать компоненты старого ББ (только те, кто не импортировал бездумно Host, они сами себе враги, в общем).
А OpenGL быстрый и простой способ рисовать, как минимум, он проще GDI и даёт кроссплатформенность.
Роман М. писал(а):
Было бы глупо просто выкинуть HostFonts, не зная особенностей реализации.
Ну послушайте, есть интерфейс (System)Fonts, зачем знать что-то о реализации, это же антикомпонентно. :)

Почему тогда не SDL?

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

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 12:13 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

В сообществе полно умных людей, а SDL уже полгода доступен, почему до сих пор не сделали ББ на SDL - у меня ответа нет. :)
Роман М. писал(а):
HostFonts - ёмкий модуль. Не зная что и почему сделано в нём, глупо выбрасывать.
Всегда можно открыть исходники и посмотреть. Речь шла о том, что в новом хосте нет ни строчки старого хоста. Это не так уж и глупо, позволяет взглянуть на интерфейсы чистым взглядом.

Автор:  Иван Кузьмицкий [ Вторник, 19 Март, 2013 13:09 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Роман М. писал(а):
HostFonts - ёмкий модуль. Не зная что и почему сделано в нём, глупо выбрасывать.
Как раз опираться на логику HostFonts - глупо. Ведь есть абстрактный интерфейс Fonts. Ну а реализация HostFonts учитывает особенности WinApi, каковые нет нужды тащить в новый хост.

Автор:  Роман М. [ Вторник, 19 Март, 2013 13:22 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Нет смысла спорить. Мы ведь понимаем, что глупо не смотреть на грехи нынешнего HostFonts, также как и глупо брать его за основу. Как сказал Пётр, стоит посматривать на базовую реализацию. Несмотря на то что написана на WinAPI.

В-общем говоря, меня интересует ваша разработка. Хотелось бы знать на чём вы будете строить, собственно, сам графический интерфейс программы. Окна, меню, кнопки и прочие елементы. Ну и взаимодействие с пользователем, связанное с ними.

SDL хорош тем, что у него отрисовка возможна на различные бэк-енды, включая GDI.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 13:46 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Для раскрутки я взял библиотеку freeglut, она даёт доступ к пользовательскому вводу, помогает работать с окнами нижележащей системы (крайне простой api), а так же с меню, плюс сама создаёт контекст OpenGL.
На ней я отрабатываю методы реализации хоста ББ. OpenGL-заголовки взял с сайта Цинна.
Контролы по максимуму будут нарисованы самостоятельно, возможно, на первом этапе схематично. Сейчас я наладил отработку сигналов клавиатуры и мыши, и если принять, что тексты будут разработаны скоро, то следующий шаг это создание интерфейса главного окна, для примера, полоса меню будет создана в виде обычного отображения, и так далее.
Исходники пока не публикуем, рано.

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

Роман М. писал(а):
В-общем говоря, меня интересует ваша разработка.
Ну, в целом, сейчас одна насущная проблема с freetype, и проблемой она является только потому, что пилить надо в основном интерфейсы к НЕоберону, так что если у вас есть опыт в этой области, то присоединяйтесь, и дальнейшее обсуждение пойдёт уже в вашей ветке. Просто сейчас такой этап, что больше приходится думать, чем кодить.

Автор:  Роман М. [ Вторник, 19 Март, 2013 13:50 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Дадите доступ к вашему репозиторию VCS (svn, git, ...)? Надеюсь, он у вас имеется.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 14:07 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Репозиторий, конечно, есть, на бибакете, глобальный такой, мы каталог репозитория подключаем к ББ через параметр /USE и в нём работаем.
Но проблема в том, что он содержит некоторые исходники, которые публиковать нам нельзя, а способа открыть доступ только к части каталогов в меркуриале нет, кажется. Как только мы решим эту проблему, будет доступ.

Автор:  Роман М. [ Вторник, 19 Март, 2013 14:22 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Пётр Кушнир писал(а):
Контролы по максимуму будут нарисованы самостоятельно, возможно, на первом этапе схематично. Сейчас я наладил отработку сигналов клавиатуры и мыши, и если принять, что тексты будут разработаны скоро, то следующий шаг это создание интерфейса главного окна, для примера, полоса меню будет создана в виде обычного отображения, и так далее.

Решили выбрать не самый простой путь? Некоторые до нас создали простой интерфейс на основе SDL: PicoGUI.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 14:31 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Но ведь самый простой путь для ББ - это отображения ББ.

Автор:  Пётр Кушнир [ Вторник, 19 Март, 2013 14:38 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Ну, я не с позиции ретроградства или фанатизма, я с позиции здравого смысла.

В конечном счёте, модульная архитектура должна позволять Вам и мне использовать то решение, которое по душе без лишних хлопот, поэтому важно, чтобы на данном этапе проработки архитектуры наше различие в видении будущего не помешало разработать максимально удобную среду для воплощения этого будущего.

Поэтому, наверное, во избежание споров, следует разделить обсуждение на техническую часть по реализации хоста и на архитектурные вопросы, по поводу всяких движков гуя и прочего.

Надеюсь это не вызывает возражений. Надо тратить энергию на что-то более полезное для всех сразу, без обид.

Как пример, могу привести мою реализацию отображения графических вкладок, которая в полном соответствии с интерфейсами позволяет пользователю сделать выбор между зависимостью или независимостью от Windows.

Автор:  Иван Кузьмицкий [ Вторник, 19 Март, 2013 14:57 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Роман М. писал(а):
Решили выбрать не самый простой путь? Некоторые до нас создали простой интерфейс на основе SDL: PicoGUI.
Чего только не обсуждалось на этом форуме в плане гуя, а результативность почему-то обратно пропорциональна объёму обсуждения. Между тем, на практике оказывается, что гуй можно пилить и на самом ББ.

Автор:  Пётр Кушнир [ Среда, 20 Март, 2013 14:49 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Роман М. писал(а):
Дадите доступ к вашему репозиторию VCS (svn, git, ...)? Надеюсь, он у вас имеется.
Роман, заведите аккаунт на bitbucket.org, и скиньте в личку адрес электронной почты, отправлю вам инвайт.

Автор:  Роман М. [ Среда, 20 Март, 2013 22:32 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Каков минимальный список зависимостей для самого порта на OpenGL и не более него?
А то я никак конца зависимостей не могу найти. :roll:

Автор:  Пётр Кушнир [ Среда, 20 Март, 2013 22:47 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Изображение

Всё обозримо. YHost-часть никак не импортируется, загружается динамически. YHost реализует интерфейсы из YStd и System. В YSystem находятся дополнительные интерфейсы, не описаные в System. ygl реализует интерфейсы для freeglut и опосредованно для OpenGL. Ну а ypk, Lists, Strings, Unicode служебные, и используются везде. И Obx, для тестов.

Автор:  Роман М. [ Четверг, 21 Март, 2013 11:20 ]
Заголовок сообщения:  Re: BlackBox на OpenGL

Чрезмерно длинный список зависимостей и абстракций. Это явно перебор. А я люблю простоту и минимализм.
Пожалуй, сосредоточусь на FreeType со шрифтами на стандартной поставке ББ.

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