![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
KoZliK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Подскажите пожалуйста, как реализовать пользовательский интерфейс под Direct3D. Обработка событий, отрисовка котролов(спрайтами или ещё как-то). Смотрел пример CustomUI из DirectX SDK но не смог разобраться там пока. Пишу под Windows Mobile на C#, но в соответствующем разделе форума подраздела типа "managed DirectX" нету, так что задаю вопрос тут. Понимаю, что C++ и C# языки разные, но мне нужна лишь идея. Больше всего интересует вторая часть вопроса. Пока что... спасибо)
|
|||
|
||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
я как-то делал супер простенький GUI (правда на OpenGL) - квадратики с текстурой были контролами.
Обработка событий мало зависит от используемого ГАПИ - это чисто вопрос проектирования. Я делал небольшую иерархию классов (например: Контрол-Окно-Кнопка), содержащих указателями на функции. Например, контрол имел метод OnMouseMove, который вызывал функцию по указателю. Этот указатель сообщался контролу функцией типа SetEvent. Далее происходила проверка - движется ли мышь над контролом. Если да - вызывается OnMouseMove. Там проверяется - корректен ли "привязанный" указатель функции. Если корректен - вызывается нужная функция. Как-то так. --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
KoZliK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Спасибо вы только что подкинули мне идею) Я хотел использовать кнопки с закругленными углами. Но при таком подходе при изменении размеров контрола, текстура бы растягивалась черт знает куда. ну а если поделить допустим, кнопку на 9 частей, то все получится:
недеформ. угол | деформ.горизонтальный бордюр | недеформ. угол ----------------------------------------------------------------------------------------------------------- деформ. верт. бордюр| | деформ. верт. бордюр ------------------------------------------------------------------------------------------------------------ недеформ. угол | деформ.горизонтальный бордюр | недеформ. угол тогда контрол можно будет натянуть на примитив и растягивать как угодно. |
|||
|
||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: 1 Всего: 2 |
KoZliK, насчет 9-ти частей - обычно так и делают. Я в своем примере заморачивался по минимуму, поэтому у меня обычные квады были с альфа-текстурой.
Кстати, много по этому поводу есть на gamedev.ru - но там контингент злой ![]() --------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
KoZliK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.3.2008 Репутация: нет Всего: нет |
Static, спасибо)
|
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |