我正在开发一个OpenGL应用程序。我使用高dpi屏幕,Windows GUI被缩放到125%,以使程序看起来像在普通屏幕上一样。
如果我使用SDL2创建800*600的窗口,则其外观与普通屏幕上的大小相同,但它是1000*750像素。由于我使用延迟渲染,因此必须创建与可绘制区域相同大小的缓冲区,因此我想找出窗口的实际像素大小。
如果我调用
我做错了什么?
编辑:
如果我在Visual Studio中更改DPI Awareness为Per Monitor High DPI Aware,则窗口确实为800*600,但它看起来很小。它应该是1000*750,因为Windows设置中的缩放因子为125%。
如果我使用SDL2创建800*600的窗口,则其外观与普通屏幕上的大小相同,但它是1000*750像素。由于我使用延迟渲染,因此必须创建与可绘制区域相同大小的缓冲区,因此我想找出窗口的实际像素大小。
如果我调用
SDL_GL_GetDrawableSize
,则错误地得到800*600而不是1000*750。我在窗口创建时添加了标志SDL_WINDOW_ALLOW_HIGHDPI
。我做错了什么?
编辑:
如果我在Visual Studio中更改DPI Awareness为Per Monitor High DPI Aware,则窗口确实为800*600,但它看起来很小。它应该是1000*750,因为Windows设置中的缩放因子为125%。
SDL_GL_GetDrawableSize
函数有问题?即使它按预期工作,你可能会被告知如何正确获取大小。 - HolyBlackCat