Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GUI Direct3D, Отрисовка котролов и обработка событий 
:(
    Опции темы
KoZliK
Дата 4.2.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Подскажите пожалуйста, как реализовать пользовательский интерфейс под Direct3D. Обработка событий, отрисовка котролов(спрайтами или ещё как-то). Смотрел пример CustomUI из DirectX SDK но не смог разобраться там пока. Пишу под Windows Mobile на C#, но в соответствующем разделе форума подраздела типа "managed DirectX" нету, так что задаю вопрос тут. Понимаю, что C++ и C# языки разные, но мне нужна лишь идея. Больше всего интересует вторая часть вопроса. Пока что... спасибо)
PM MAIL   Вверх
Static
Дата 4.2.2010, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: 1
Всего: 2



я как-то делал супер простенький GUI (правда на OpenGL) - квадратики с текстурой были контролами. 
Обработка событий мало зависит от используемого ГАПИ - это чисто вопрос проектирования. Я делал небольшую иерархию классов (например: Контрол-Окно-Кнопка), содержащих указателями на функции.
Например, контрол имел метод OnMouseMove, который вызывал функцию по указателю. Этот указатель сообщался контролу функцией типа SetEvent. Далее происходила проверка - движется ли мышь над контролом. Если да - вызывается OnMouseMove. Там проверяется - корректен ли "привязанный" указатель функции. Если корректен - вызывается нужная функция. Как-то так.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
KoZliK
Дата 4.2.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Спасибо вы только что подкинули мне идею) Я хотел использовать кнопки с закругленными углами. Но при таком подходе при изменении размеров контрола, текстура бы растягивалась черт знает куда. ну а если поделить допустим, кнопку на 9 частей, то все получится:

недеформ. угол            | деформ.горизонтальный бордюр |           недеформ. угол
-----------------------------------------------------------------------------------------------------------
деформ. верт. бордюр|                                                         | деформ. верт. бордюр         
------------------------------------------------------------------------------------------------------------         
недеформ. угол            | деформ.горизонтальный бордюр |           недеформ. угол

тогда контрол можно будет натянуть на примитив и растягивать как угодно.
PM MAIL   Вверх
Static
Дата 4.2.2010, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: 1
Всего: 2



KoZliK, насчет 9-ти частей - обычно так и делают. Я в своем примере заморачивался по минимуму, поэтому у меня обычные квады были с альфа-текстурой.
Кстати, много по этому поводу есть на gamedev.ru - но там контингент злой smile лучше сначала читать - а потом спрашивать.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
KoZliK
Дата 4.2.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.3.2008

Репутация: нет
Всего: нет



Static, спасибо)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1340 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.