【问题标题】:SDL resetting glViewportSDL 重置 glViewport
【发布时间】:2016-05-05 08:22:50
【问题描述】:

我正在测试在使用 SDL2 和 OpenGL 的应用程序中支持多种分辨率。为了创建我的“信箱”功能,我将glViewport 设置为适当的值,一切正常。

但是,如果我创建设置了 SDL_WINDOW_ALLOW_HIGHDPI 标志的窗口,则每当我移动窗口(收到 SDL_WINDOWEVENT_MOVED 事件后)时,SDL 都会将视口修改为窗口的完整大小,这可以通过调用来验证活动期间SDL_GL_GetDrawableSize

如果我在创建窗口时没有设置SDL_WINDOW_ALLOW_HIGHDPI,则不会重置视口。我确实认为这是一个错误,但无法通过 SDL bugzilla 找到任何东西,所以我想问问是否有人看到过类似的行为。

您可能需要使用视网膜 MacBook Pro 才能体验此行为。

【问题讨论】:

  • 看起来像一个错误。最好将其发布到 SDL bugtracker。

标签: c++ opengl sdl sdl-2


【解决方案1】:

只要做你应该做的事:总是在绘制每一帧的开始时重新/设置视口。只要您想实现 HUD,就使用帧缓冲区对象或类似的东西,您必须设置视口(多次)以绘制每一帧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多