首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacBook 16“上的GLFW窗口仅在窗口左上角显示内容

MacBook 16“上的GLFW窗口仅在窗口左上角显示内容
EN

Stack Overflow用户
提问于 2022-01-29 16:29:14
回答 1查看 160关注 0票数 0

我的MacBook屏幕上的GLFW有一个奇怪的问题。我正在我的近4k屏幕上创建一个1400×900像素的窗口(3456x2234),所以它应该是非常小的。相反,窗口是大小的4倍(长度和高度加倍),而我呈现的内容只显示在屏幕的左上角。

我知道,苹果做一些粗略的地图,因为他们的奇怪的纵横比显示,但我搜索了很长一段时间,没有人有同样的问题。

更奇怪的是,如果我在外部显示器上创建这个窗口并将其拖到笔记本显示器上,它就能正常工作。只有在笔记本电脑显示器上创建时,它才会搞砸。

我在macOS蒙特利12.1上使用GLFW 3.3和Vulkan 1.2.198

任何帮助都是非常感谢的。

编辑:在我的代码中尝试了几乎所有可能的东西之后,在使用GLFW入门示例的最小示例时得到了相同的错误,我得出的结论是,这与注释中指出的代码无关。

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 03:02:37

这似乎是Mac显示器如何报告其解决方案的一个问题。请注意,这不是一个银弹,但当面对同样的问题,这对我有效。

缺点是,由于Mac显示缩放的方式,用于计算视图的值是不正确的。我找到的解决办法是问GLFW你应该设置什么。

要获得这些值,只需使用以下函数调用即可。我不知道在vulkan中glViewport的等效值是什么,但理论上这应该是可行的,并且在OpenGL中也为我解决了同样的问题。

代码语言:javascript
复制
int initial_framebuffer_width, initial_framebuffer_height;
glfwGetFramebufferSize(g_glfw_window, &initial_framebuffer_width,
                         &initial_framebuffer_height);
// Set your viewport here with the width and height.

如果这不起作用,一个好的调试步骤是绘制窗口,然后尝试调整窗口的大小,然后打印GLFW在框架缓冲区回调中给出的宽度和高度值。您应该注意到,它们可能比您设置的要大得多,这就是您知道这是缩放问题的原因,上面的代码应该会给出您要寻找的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70907459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档