食人魔版本:13.6.4 操作系统:Windows 渲染系统:OpenGl
嗨。这是我的完整代码。 为什么我不能以任何方式改变主窗口的大小;现在是 640x480。我无法调整大小,无法切换全屏。为什么?
#include <QDebug>
#include <Ogre.h>
#include <OgreApplicationContextQt.h>
#include <Terrain/OgreTerrain.h>
#include <Terrain/OgreTerrainGroup.h>
#include <OgreConfig.h>
#include <OgreConfigDialog.h>
#include <OgreCameraMan.h>
#include <QGuiApplication>
#include <QWindow>
#include <windows.h>
void Setup()
{
applicationContext = new OgreBites::ApplicationContextQt();
applicationContext->initApp();
root = applicationContext->getRoot();
applicationContext->getRenderWindow()->resize(1920, 1080);
applicationContext->getRenderWindow()->windowMovedOrResized();
sceneManager = root->createSceneManager();
Ogre::ResourceGroupManager::getSingletonPtr()->initialiseAllResourceGroups();
shaderGenerator = Ogre::RTShader::ShaderGenerator::getSingletonPtr();
shaderGenerator->addSceneManager(sceneManager);
cameraNode = sceneManager->getRootSceneNode()->createChildSceneNode();
cameraNode->setPosition(terrainPosition + Ogre::Vector3(1683, 50, 2116));
cameraNode->lookAt(Ogre::Vector3(1963, 50, 1660), Ogre::Node::TS_PARENT);
camera = sceneManager->createCamera("Camera");
camera->setNearClipDistance(1);
camera->setAutoAspectRatio(true);
camera->setFarClipDistance(50000);
camera->setFarClipDistance(0);
cameraNode->attachObject(camera);
Ogre::RenderWindow* renderWindow = applicationContext->getRenderWindow();
renderWindow->addViewport(camera);
renderWindow->getViewport(0)->setMaterialScheme(Ogre::MSN_SHADERGEN);
renderWindow->resize(1920, 1080);
renderWindow->windowMovedOrResized();
light = sceneManager->createLight();
light->setType(Ogre::Light::LT_DIRECTIONAL);
light->setDiffuseColour(Ogre::ColourValue::White);
light->setSpecularColour(Ogre::ColourValue(0.4, 0.4, 0.4));
lightSceneNode = sceneManager->getRootSceneNode()->createChildSceneNode();
lightSceneNode->setDirection(Ogre::Vector3(0.55, -0.3, 0.75).normalisedCopy());
lightSceneNode->attachObject(light);
sceneManager->setAmbientLight(Ogre::ColourValue(0.2, 0.2, 0.2));
cameraMan = new OgreBites::CameraMan(cameraNode);
cameraMan->setStyle(OgreBites::CameraStyle::CS_FREELOOK);
cameraMan->setTopSpeed(100);
}
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
Ogre::String programFullPath = argv[0];
Ogre::String programDir = programFullPath.substr(0, programFullPath.find_last_of("\\/"));
qDebug() << programDir.c_str();
Setup();
Ogre::LogManager::getSingleton().setMinLogLevel(Ogre::LML_TRIVIAL);
CreateTerrain();
ConfigTerrainDefaults();
for(long x = TERRAIN_PAGE_MIN_X; x <= TERRAIN_PAGE_MAX_X; x++)
{
for(long y = TERRAIN_PAGE_MIN_Y; y <= TERRAIN_PAGE_MAX_Y; y++)
{
DefineTerrain(x, y);
}
}
qDebug() << terrainGroup->getResourceGroup().c_str();
qDebug() << terrainGroup->getTerrainSlots().size();
terrainGroup->loadAllTerrains(true);
if(isTerrainsImporetd)
{
for(const auto& ti : terrainGroup->getTerrainSlots())
{
InitBlendMaps(ti.second->instance);
}
}
terrainGroup->freeTemporaryResources();
KeyHandler keyHandler;
applicationContext->addInputListener(&keyHandler);
applicationContext->getRoot()->startRendering();
applicationContext->closeApp();
return app.exec();
}
我正在使用 renderWindow->resize 但它无论如何都不起作用。还使用重新配置渲染系统。但无论如何都行不通。我想以简单的方式切换到全屏或更改窗口的分辨率