OberonCore https://forum.oberoncore.ru/ |
|
BlackBox на OpenGL https://forum.oberoncore.ru/viewtopic.php?f=114&t=4287 |
Страница 5 из 7 |
Автор: | Пётр Кушнир [ Вторник, 16 Апрель, 2013 08:16 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Илья Ермаков писал(а): В том месте фреймворка, где идёт вызов HandleCtrlMsg, сделать логику запоминания "базы" и продолжения (если при прошлом вызове HandleCtrlMsg был вызван Input). А внутри Input запоминать контекст потока, снимать со стека все кадры выше запомненной "базы". И ещё неясно, поможет ли такой механизм решить проблему интерфейсов, ведь тот же Mechanisms.Hook.TrackToResize чисто по набору параметров представляется как синхронная процедура - вызвали, а в результате сразу получаем новые размеры отображения. И пусть весь мир подождёт.
|
Автор: | Иван Кузьмицкий [ Вторник, 16 Апрель, 2013 08:55 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Пётр Кушнир писал(а): ведь тот же Mechanisms.Hook.TrackToResize чисто по набору параметров представляется как синхронная процедура - вызвали, а в результате сразу получаем новые размеры отображения. И пусть весь мир подождёт. HostMechanisms.Hook.TrackToResize в цикле использует тот же Ports.Frame.Input, а значит, решив проблему с Input, есть надежда порешать и этот вопрос.
|
Автор: | Илья Ермаков [ Вторник, 16 Апрель, 2013 09:57 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Коллеги, скинул наработки по ЛС. Надеюсь, будут полезны |
Автор: | Пётр Кушнир [ Вторник, 16 Апрель, 2013 10:35 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Патчи ядра это всегда хорошо |
Автор: | ilovb [ Среда, 17 Апрель, 2013 19:11 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Цитата: FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications. FTGL supports bitmaps, pixmaps, texture maps, outlines, polygon mesh, and extruded polygon rendering modes. http://sourceforge.net/projects/ftgl/ http://ftgl.sourceforge.net/docs/html/f ... orial.html |
Автор: | Пётр Кушнир [ Среда, 17 Апрель, 2013 20:44 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
спасибо, но это в ветку по шрифтам |
Автор: | Пётр Кушнир [ Четверг, 18 Апрель, 2013 19:34 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
В очередной раз победили OpenGL и реализовали различные режимы маркировки областей порта. Интересный эффект, например, формы стали сразу похожи на оригинальные, ББ-шные. Плюс к этому я потихоньку расковыриваю HostMechanisms, решил не спешить и пока запилить платформонезависимый способ перетаскивания в пределах одного фрейма. Правда, мышь на скриншот не попала, но вот эта синяя рамка это будущая позиция контрола. Пока что использую старый режим с циклом вокруг f.Input. Как оказалось, работа механизмов должна выполняться в пределах одного фрейма, то есть, если при перерисовке окна фреймы перестроятся, то старый фрейм исчезнет, и будет ошибка выполнения внутри Containers. Эта ситуация пока мешает реализовать способ Ильи Ермакова применительно к механизмам. Я решил пока не ломать совместимость в этом плане и планирую использовать сохранение контекста процедуры для реализации пользовательских диалогов. |
Автор: | Пётр Кушнир [ Понедельник, 22 Апрель, 2013 20:55 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Сегодня мы отрастили важную фичу - контекстные меню выделения. Конь-текстное меню контрола на форме: Контекстное меню текста внутри контейнера в красивой рамочке, как в оригинальном ББ. А так же обнаружилась интересная особенность механизма фреймов. Пока не могу со стопроцентной уверенностью сказать, но в целом, ситуация такая: Любое отображение, которое встраивает в себя другие отображения выполняет процедуру Views.InstallFrame внутри метода Views.View.Restore. Ну, дальше, фрейм добавляется к дереву фреймов корневого фрейма окна, процедуры перестройки фреймов проходят по новым фреймам и т.д. Так вот, дело в том, что в нашем хосте проявилась интересная штука, видимо, из-за частой перерисовки всей области окна (а как ещё быть в OpenGL) происходит накопление фреймов без их очистки, то есть, они не удаляются процедурой Views.RemoveFrames при отработке цепочки вызовов Windows.Window.Restore > Views.ValidateRoot. В принципе, самое очевидное решение, выполнять удаление старых фреймов видимой области отображения вручную, при входе в метод Views.View.Restore. И он даёт результат, но ведь проблема в том, что в старом ББ такое действие нигде не применялось, а всё вполне работало и без него. Вот к примеру, красивая картинка, состоит из контейнера-доски и встроенных шашек. При открытии начинает нагло жрать память Такие вот новости. |
Автор: | Info21 [ Вторник, 23 Апрель, 2013 02:45 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Параметр keepFrames там каким-нибудь боком не может сыграть? |
Автор: | Пётр Кушнир [ Вторник, 23 Апрель, 2013 07:32 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
он играет, да, но из мест, которые нам недоступны, то есть, разработчики основного каркаса задумывали именно так - например, тексты и формы сами зачищают фреймы внутри себя, но это можно понять. |
Автор: | Пётр Кушнир [ Понедельник, 29 Апрель, 2013 20:00 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Продолжаем развитие подсистемы нативных контролов. Задача усложняется тем, что виндовая реализация, при всей её громоздкости всё же использовала готовые контролы, с готовыми отлаженными поведением и внешним видом. А тут приходится реализовывать всё самому. Впрочем, абстракции фрейма не дают уйти от запланированной функциональности слишком далеко. Опять же, во фрейм можно встраивать другие фреймы, как я и поступил с полем ввода, в который интегрировано обычное текстовое отображение. |
Автор: | Info21 [ Понедельник, 29 Апрель, 2013 22:59 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Да ладно, отображение. Вьюшка. |
Автор: | Иван Денисов [ Вторник, 30 Апрель, 2013 06:07 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Подхвачу ваш офтоп. Info21 писал(а): Да ладно, отображение. Вьюшка. Навязывание сленга имеет место быть.Цитата: В сленге программистов часто используется в качестве заимствования из английского — «вьюха», «вьюшка» wiki модель контроллер отображение, в гугле 1 300 000модель контроллер представление, в гугле 700 000 модель контроллер вид, в гугле 190 000 модель контроллер вьюшка, в гугле 7 000. |
Автор: | Info21 [ Вторник, 30 Апрель, 2013 10:00 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Профессиональному учёному стыдно ссылаться на мнение толпы. Вас извиняет то, что Вы ещё только начинающий. Миллиарды речевых актов, не отягощённых задумчивостью, не имеют ни малейшего веса. Всё было сказано в комментариях к переводу в ББ от Информатики-21. Найдите там, почитайте и подумайте. |
Автор: | Иван Кузьмицкий [ Вторник, 30 Апрель, 2013 10:14 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Я, как представитель толпы, считаю, что слово "вьюшка" годится для сленга, а как термин не катит совершенно. |
Автор: | Роман М. [ Вторник, 30 Апрель, 2013 11:46 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Пётр, рад что есть продвижение. Правда, у меня есть опасение, что для реализации интерфейса в процессе переноса ЧЯ на OpenGL приходится разрабатывать разные несовместимые друг с другом модификации велосипедов, что усложняет дальнейшее развите проекта. В элементах управления интерфейса знаки "&" в надписях означают назначение горячих клавиш. Соответственно, знак "&" отображаться не должен. "Le&vel" -> "Level" |
Автор: | Роман М. [ Вторник, 30 Апрель, 2013 11:50 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Русское слово "вьюшка" не имеет ни малейшего отношения к переводу слова "view". Если взят за основу сленг, то тем более, не может являться приемлемым термином. Так что я поддерживаю оппонентов Info21. А как насчёт выделить эту часть разговора отдельно от обсуждения темы? |
Автор: | Пётр Кушнир [ Вторник, 30 Апрель, 2013 11:57 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Ухх, оффтоп ^^ Роман М. писал(а): в процессе переноса ЧЯ на OpenGL приходится разрабатывать разные несовместимые друг с другом модификации велосипедов В смысле? Конкретнее, то есть.Роман М. писал(а): Соответственно, знак "&" отображаться не должен. Да, действительно, до этого пока руки не дошли
|
Автор: | Роман М. [ Вторник, 30 Апрель, 2013 12:47 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Я про модификацию каркаса ЧЯ, реализацию элементов интерфейса и их поведение в OpenGL. Пока ничего конкретного, так как код не смотрел. |
Автор: | Пётр Кушнир [ Вторник, 30 Апрель, 2013 13:31 ] |
Заголовок сообщения: | Re: BlackBox на OpenGL |
Аа, понял о чём вы. Ну тут понятно, что для контролов уровня Windows или Qt нужен труд не только кодеров, но и дизайнеров, а с технической стороны нужен полный уход от примитивов Ports к полноценной работе с векторными форматами графики, отображаемой в OpenGL. Сейчас я пробую воспроизвести основное поведение контролов используюя только платформонезависимые компоненты, в некоторых местах снабжая их хост-движком, как например всплывающие меню. Контролы нужны для дальнейшего развития основного проекта. Чтобы тестировать приложения с формами и прочим на новом хосте. Всё равно надо освоить StdCFrames полностью, чтобы понимать, как работают все стандартные контролы. А для реализации чего-то крутого наверное нужен отдельный большой проект. |
Страница 5 из 7 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |