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

MyGUI v3.0.1 Released! [updated 12.02.10] (6 стр)

Страницы: 15 6 7 811 Следующая »
#75
22:37, 14 янв 2010

my.name
какими компиляторами тестировалось? есть ли шанс что 2.95 соберет его?

#76
0:13, 15 янв 2010

AndryBlack
> какими компиляторами тестировалось?
у меня студия VS8 (2003)

#77
2:43, 15 янв 2010

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

Можно поподробнее описать каким образом система ГУЯ взаимодействует с окружающей средой? Какие есть свопособы взаимодействия? Какими способами программа может корректно влиять на гуй (изменение стейтов/передача пользвоательского ввода/переопределение виртуальных методов и классов).
В частности тут интересно будет почитать про следующие моменты:
1. как ГУЙ обрабатывает пользовательский ввод, и как можно извне влиять на его обработку акромя как передавать собсно гую ввод.
2. Как гуй зовёт делегатов, когда, зачем, каких интересных эфектов можно добится используя механизм делегатов, кроме стандартных типа обработки нажатия кнопки и т.п.
3. Какие интерфейсы в гуе предназначены а какие не предназначены для реализацией пользоватлем, каким целям может служить реализация каждого из интерфейсов. Какие есть ограничения и "тонкие моменты" при реализации каждого из них.
4. Как интегрируется ваш гуй в 3д сцену (как в вашей видео-демке с 3д-пультом), как сделать так что бы объекты сцены рассматривались гуем как виджеты.
5. Какую политику владения ресурсами исповедует ваш гуй. Кто создаёт и разрушает объекты, есть ли исключения из этой политики. Например если пользвоатель сам создась объект какой-нить кнопки приаттачит её к гую, то кто будет её разрушать, гуй при уничтожении сцены или сам пользователь? Считает ли гуй что объекты методы которых зареганы в делегатах всегда существуют, можно ли держать в программе ссылки на виджеты, или к ним следует обращаться по каким-либо идентификаторам, и т.д... Какие обеъкты гуя существуют постоянно (допустим синглтоны), а какие создаётся и уничтожаются по необходимости.

это для начала :)

#78
2:56, 15 янв 2010

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

#79
12:11, 15 янв 2010

друзья, вы жестоки =)

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

2Phoenics
если интересно, то могу тут попробовать вкраце описать.

#80
12:58, 15 янв 2010

my.name
> если интересно, то могу тут попробовать вкраце описать.
ну разумеется напиши

#81
13:19, 15 янв 2010

AndryBlack
> Altren
> > тобы рендер был DirectX а не Ogre. А вообще советую использовать CMake-gui,
> > будеть меньше вопросов.
> вообщето мне надо GL, а гуи непомню собрано ли, просто автоконф уверенно
> атрапортовал что огра нет, мог бы и флаги тогда сам поставить
Ну тогда -DMYGUI_RENDERSYSTEM 3 :) А какие флаги интересно он мог бы сам поставить?
Поправил чтобы вообще не собиралось если необходимое для системы рендера не найдено.

И кстати тем что еще пользуется солюшенами - архив с исходниками был перезалит (исправлена ошибка линковки debug версий сторонних библиотек в release в сгенерированных солюшенах).

#82
13:27, 15 янв 2010

Phoenics
> 1. как ГУЙ обрабатывает пользовательский ввод, и как можно извне влиять на его
> обработку акромя как передавать собсно гую ввод.
при передаче гую евенты ввода, гуй возвращает флаг говорящий о том забрал ли гуй себе ввод или нет, это очень удобно для проверок в сцене ли мыша или нет, например для пускания лучей в землю.
внутри гуя на маршрутизацию и евенты влияют свойства виджета, виджет может быть прозрачным вводу, как мышы так и клавишам. Вижет может НЕ наследовать прозрачность ввода. например когда мы имеем невидимое окно для групировки виджетов, то можно сделать чтобы окно не нажимолось мышой, а ее дети нажимались. И наконец поддержка пикинга по маске, можно делать виджеты произвольной формы.

#83
13:32, 15 янв 2010

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

#84
13:41, 15 янв 2010

Phoenics
> 3. Какие интерфейсы в гуе предназначены а какие не предназначены для
> реализацией пользоватлем, каким целям может служить реализация каждого из
> интерфейсов. Какие есть ограничения и "тонкие моменты" при реализации каждого
> из них.
Все типы что можно зарегестрировать в фабрике предназначены и для пользователя тоже. если эти типы используются через интерфейс, то возможно реализовывать его и использовать класс в core. (IResource, IFont, IPointer и т.д.)

из тонких моментов:
наличие макроса RTTI_DERIVED(имя_класса) для поддержки RTTI.
наследование (прямое или коственое) от IObject (интерфейсы уже отнаследованны)

Если объект поддерживает ISerializable то при создании через XML в объект будет передана ветка для создания данных.

#85
13:44, 15 янв 2010

Phoenics
> 4. Как интегрируется ваш гуй в 3д сцену (как в вашей видео-демке с 3д-пультом),
> как сделать так что бы объекты сцены рассматривались гуем как виджеты.
у гую не относиться, а относиться к одной из фич, можно реализовать свой леер, который все виджеты будет рендрить в текстуру (пример аккурат в демо). а вот эту текстуру можно натянуть куда хочешь.
спроецировать объект на экран и натянуть на него виджет, например классическая рамка с жизнями и т.д.

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

#86
13:53, 15 янв 2010

Phoenics
> 5. Какую политику владения ресурсами исповедует ваш гуй. Кто создаёт и
> разрушает объекты, есть ли исключения из этой политики. Например если
> пользвоатель сам создась объект какой-нить кнопки приаттачит её к гую, то кто
> будет её разрушать, гуй при уничтожении сцены или сам пользователь? Считает ли
> гуй что объекты методы которых зареганы в делегатах всегда существуют, можно ли
> держать в программе ссылки на виджеты, или к ним следует обращаться по
> каким-либо идентификаторам, и т.д... Какие обеъкты гуя существуют постоянно
> (допустим синглтоны), а какие создаётся и уничтожаются по необходимости.

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

#87
13:56, 15 янв 2010

Suslik
> думаю, для программистов очень короткий пример использования GUI в коде не
> менее важен, чем скриншот. буквально десять строчек, чтобы взглянуть на code
> convention. скачивать ради этого архив лень.

http://www.ogre3d.ru/wik/pmwiki.php?n=MyGUI.MyGUI
http://www.ogre3d.org/wiki/index.php/MyGUI
русская и английская вики, на них есть множество примеров, вики пока еще обновляем.

#88
14:09, 15 янв 2010

ок, спс

#89
15:39, 15 янв 2010

>множество примеров
"множество" - это один пример использования делегатов? :)
на самом деле респект, код мне понравился. для системы GUI это, вообще говоря, просто удивительно.

Страницы: 15 6 7 811 Следующая »
ПроектыФорумОцените

Тема в архиве.