我正在开发一个 OpenGL 应用程序。我使用高 dpi 屏幕,Windows GUI 缩放到 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%