SDL 重置 glViewport
Posted
技术标签:
【中文标题】SDL 重置 glViewport【英文标题】:SDL resetting 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。 【参考方案1】:只要做你应该做的事:总是在绘制每一帧的开始时重新/设置视口。只要您想实现 HUD,就使用帧缓冲区对象或类似的东西,您必须设置视口(多次)以绘制每一帧。
【讨论】:
以上是关于SDL 重置 glViewport的主要内容,如果未能解决你的问题,请参考以下文章
SDL_GetTicks() 定义缺失。 (SDL 2.0.3)