【发布时间】:2018-06-07 08:36:07
【问题描述】:
我正在开发一个 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%
【问题讨论】:
-
SDL2 版本?自建或来自 libsdl.org 的二进制文件? minimal reproducible example?
-
我使用的是最新的稳定版 SDL2,2.0.7
-
也许发布一个错误报告,说
SDL_GL_GetDrawableSize坏了?即使它按预期工作,您也可能会被告知如何正确获取尺寸。
标签: window scale sdl-2 highdpi