////////////////////Ogre部分的修改////////////////////////
///创建窗口
Ogre::NameValuePairList params;
Ogre::String handle;
handle = Ogre::StringConverter::toString((size_t)(hWnd));
params["externalWindowHandle"] = handle;
m_pWindow = m_pRoot->createRenderWindow("OgreRenderWindow", uiWidth, uiHeight, false, ¶ms);
assert(NULL != m_pWindow);
if(NULL == m_pWindow)
return false;
///////////////////Ogre的初始化/////////////////////////////
World* g_pWorld = NULL;
///创建Ogre
g_pWorld = new World();
assert(NULL != g_pWorld);
if(NULL == g_pWorld)
return FALSE;
g_pWorld->createWorld(hWnd, uiWidht, uiHeight);
/////////////////////消息循环的修改/////////////////////////////
// Main message loop:
while (true)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if(WM_QUIT == msg.message)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
if(g_pWorld)
{
g_pWorld->render();
}
}
}
本文介绍了如何使用Ogre创建游戏窗口并进行初始化的过程。主要内容包括:通过传递窗口句柄创建Ogre渲染窗口;Ogre的初始化流程,涉及World类的实例化及World对象的创建;以及消息循环中渲染更新的实现。
2106

被折叠的 条评论
为什么被折叠?



