本文整理汇总了C++中ois::InputManager::enableAddOnFactory方法的典型用法代码示例。如果您正苦于以下问题:C++ InputManager::enableAddOnFactory方法的具体用法?C++ InputManager::enableAddOnFactory怎么用?C++ InputManager::enableAddOnFactory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ois::InputManager
的用法示例。
在下文中一共展示了InputManager::enableAddOnFactory方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: registerWindow
DInputEventQueue* DInputManager::registerWindow( DRenderWindow* wind, bool isExclusive )
{
EventContextMap::iterator i = mEventContextMap.find(wind);
if (i != mEventContextMap.end())
{
return i->second.eventQueue;
}
// create a new OIS::InputManager
OIS::ParamList pl;
std::ostringstream wnd;
wnd << (size_t)wind->getWindowHandle();
pl.insert(std::make_pair(mPlatform, wnd.str()));
if (!isExclusive)
{
// 非独占模式下鼠标可移出窗口之外
pl.insert(std::make_pair(std::string("w32_mouse"), "DISCL_FOREGROUND"));
pl.insert(std::make_pair(std::string("w32_mouse"), "DISCL_NONEXCLUSIVE"));
}
// since no NULL will be returned, we do not check.
// (OIS will throw exception)
OIS::InputManager* mgr = OIS::InputManager::createInputSystem(pl);
mgr->enableAddOnFactory(OIS::InputManager::AddOn_All);
// since the ois's mouse event depend on its window size, so we must act
// when the window size changed.
wind->signalResized.connect(
DBind(&DInputManager::onWindowResized, this, _1));
DInputEventQueue* queue = new DInputEventQueue();
DInputReceiver* receiver = new DInputReceiver(mgr, queue);
receiver->setWindowSize(wind->getWidth(), wind->getHeight());
mEventContextMap.insert(std::make_pair(wind, EventContext(mgr, receiver, queue)));
return queue;
}