Включение вызовов Windows API в мое приложение Ogre

Я разрабатываю приложение Ogre и добавляю в него поддержку прикосновений и жестов, потому что хочу использовать его на ПК с сенсорным экраном.

Очень хорошо, после поиска в Интернете я нашел Windows Gestures API http://msdn.microsoft.com/en-us/library/windows/desktop/dd371578%28v=vs.85%29.aspx . Он поддерживает не только распознавание касаний, но и интерпретацию жестов, что звучит просто великолепно!

Я хочу включить его в свое приложение, но мой вопрос: этот пример Windows создает свое собственное окно, свои собственные основные циклы, как мне включить его в мое приложение ogre, используя мое окно ogre?


person tkcast    schedule 25.03.2012    source источник
comment
Предоставляет ли OGRE доступ к своему основному насосу сообщений Windows?   -  person ReinstateMonica Larry Osterman    schedule 25.03.2012
comment
Да, я так думаю. Более того, пример приложения OGRE включает в себя windows.h, и его основная функция — INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT ). Возможно, мне просто нужно найти способ связать это с WndProc.   -  person tkcast    schedule 25.03.2012
comment
Если вы можете получить доступ к насосу сообщений, вы сможете использовать его для вставки собственного обработчика WM_GESTURE.   -  person ReinstateMonica Larry Osterman    schedule 26.03.2012
comment
Можете ли вы прислать мне ссылку или сказать мне, как я могу вставить и просмотреть обработчик событий? большое спасибо!   -  person tkcast    schedule 26.03.2012
comment
К сожалению, вам придется спросить того, кто знает Огра. Если вы можете каким-то образом подключиться к wndproc, это должно быть легко.   -  person ReinstateMonica Larry Osterman    schedule 26.03.2012
comment
Как я вижу, мне приходится делать те же вызовы, что и в простом коде win32. Теперь я могу вызвать WndProcedure, мне просто нужно получить значения API. Почти готово.. спасибо!   -  person tkcast    schedule 27.03.2012


Ответы (1)


Вместо использования Ogre::Root::startRendering вы должны вызвать Ogre::Root::renderOneFrame в основном цикле вашего приложения.

Если вы хотите использовать OIS для ввода с помощью мыши/клавиатуры, взгляните на это: Использование OIS

Но помните: Ogre является кроссплатформенным, но ваша программа не будет таковой, если вы используете собственный API Windows.

person Jan    schedule 25.08.2012