小编Arv*_*dav的帖子

在OpenGL中更改分辨率不会更改绘制的纹理的实际大小

我有一个使用SDL的OpenGL应用程序,在调整窗口大小时我遇到了奇怪的行为.例如,这是一个1400x900的常规窗口: 正常分辨率

如果我将分辨率提高到1600x900,我会得到黑条,屏幕尺寸实际上是相同的: 分辨率更高

如果我将分辨率降低到1280x1024,我只能获得图像的一部分: 分辨率较低

但是,如果我退出应用程序并手动重新启动它,应用程序将正常运行,并以正确的大小绘制图像.这里的数字仅供参考,无论初始和最终决议如何,问题仍然存在.

void App :: Load()
{
    int music = 100, effects = 100;

    XMLDoc settings("res/settings.xml");
    if(settings.ready())
    {
        rapidxml::xml_node<char> *node = settings.Doc()->first_node("settings");
        if(NodeValid(node))
        {
            if(NodeValid("screen",node))
                gScreenSettings.Load(node->first_node("screen"));

            if(NodeValid("volume",node))
            {
                rapidxml::xml_node<char> *volnode = node->first_node("volume");
                LoadNum(music,"music",volnode);
                LoadNum(effects,"effects",volnode);
            }

            gFilePath.Load(node->first_node("paths"));
        }
    }

    //Start the sound subsystem
    pyrodactyl::music::gMusicManager.Init(music, effects);
}

bool App :: Init(bool load)
{
    //Load all SDL subsystems and the TrueType font subsystem
    if( SDL_Init( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_JOYSTICK ) == -1 || TTF_Init() == -1)
    {
        fprintf(stderr,"Couldn't …
Run Code Online (Sandbox Code Playgroud)

c++ opengl sdl screen-resolution

2
推荐指数
1
解决办法
1606
查看次数

标签 统计

c++ ×1

opengl ×1

screen-resolution ×1

sdl ×1