我在使用SDL2和OpenGL的应用程序中测试支持多种分辨率。创建我的"信箱"功能我将glViewport
设置为适当的值,一切正常。
但是,如果我创建设置了SDL_WINDOW_ALLOW_HIGHDPI
标志的窗口,每当我移动窗口时(收到SDL_WINDOWEVENT_MOVED
事件后),SDL会将视口修改为窗口的完整大小,这可以在活动期间致电SDL_GL_GetDrawableSize
进行验证。
如果在创建窗口时未设置SDL_WINDOW_ALLOW_HIGHDPI
,则不会重置视口。我相信这是一个bug,但是无法通过SDL bugzilla找到任何东西,所以我想问一下是否有人看到过类似的行为。
您可能需要使用视网膜MacBook Pro才能体验此行为。
答案 0 :(得分:0)
无论如何都要做你应该做的事情:始终在绘制每一帧时重新/设置视口。只要您想要实现HUD,请使用帧缓冲对象或类似的东西来设置视口(多次)以绘制每个帧。