SDL resetting glViewport
I'm testing supporting multiple resolutions in an application using SDL2 with OpenGL. To create my "letterbox" functionality I set my glViewport
to an appropriate value and everything works perfectly.
However, if I create my window with the SDL_WINDOW_ALLOW_HIGHDPI
flag set, whenever I move my window (after receiving the SDL_WINDOWEVENT_MOVED
event) SDL modifies the viewport to the full size of the window, which can be verified by calling SDL_GL_GetDrawableSize
during the event.
If I do not set SDL_WINDOW_ALLOW_HIGHDPI
when creating the window, the viewport is not reset. I do believe this to be a bug, but cannot find anything through the SDL bugzilla so I thought to ask if anyone has seen similar behavior.
You may need to have a retina MacBook Pro to experience this behavior.
Just do what you should be doing anyway: Always re-/set the viewport at the beginning of drawing each frame. As soon as you want to implement a HUD, use framebuffer objects or similar things you'll have to set the viewport (several times) for drawing each frame.
链接地址: http://www.djcxy.com/p/67584.html上一篇: 如果我使用opengl进行绘图,SDL渲染器是无用的吗?
下一篇: SDL重置glViewport