为什么我不能改变窗口大小

问题描述 投票:0回答:0

食人魔版本: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 但它无论如何都不起作用。还使用重新配置渲染系统。但无论如何都行不通。我想以简单的方式切换到全屏或更改窗口的分辨率

c++ qt ogre ogre3d
© www.soinside.com 2019 - 2024. All rights reserved.