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 |
Вывод текста - сложная тема. Было бы глупо просто выкинуть 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 и не более него? А то я никак конца зависимостей не могу найти. |
Автор: | Пётр Кушнир [ Среда, 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/ |