opengl - 将 GLFW 窗口设置为不可调整大小

标签 opengl glfw

我有一个 GLFW3 窗口,我试图将其从可调整大小更改为不可调整大小。

我尝试在创建窗口后更改窗口提示,但这没有任何作用,因为提示仅影响要创建的窗口。

我试过的:

glfwWindowHint(GLFW_RESIZABLE, GL_FALSE)

这可能吗?我想到的一种方法是使用 onResize 函数,在设置为不可调整大小后将窗口大小更改回当前大小。这看起来很hacky。

最佳答案

GLFW 目前没有用于在创建窗口后更改该状态的 API。

当你想使用 GLFW 时,我看到两个选项:

  • 您已经拥有的解决方法。
  • 切换该状态时创建一个新窗口。
  • 使用 GLFW native access获取真正的窗口句柄并为每个平台实现该功能(您关心)。

  • 所有变体对我来说似乎都不太吸引人。选项 2 特别糟糕,因为 GL 上下文与 GLFW 中的窗口相关联,通过使用额外的(不可见的)窗口和共享 GL 上下文应该是可能的,但它会很难看。

    选项 3 的优点是,一旦在所有相关平台上实现,它应该可以完美运行。由于 GLFW 是开源的,这也启用了选项 3b):直接在 GLFW 中实现并扩展 API。您甚至可以将其集成到官方 GLFW 版本中。

    关于opengl - 将 GLFW 窗口设置为不可调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27210379/

    相关文章:

    cocoa - NSArray 到 C 数组

    python-3.x - 我的着色器出现错误并且不知道如何修复

    c++ - SOIL 连接不正确

    c++ - collect2.exe [错误] ld 返回 1 退出状态

    opengl - 自动为 Vulkan 编译 OpenGL 着色器

    C++ OpenGL 线程地形崩溃

    OpenGL 4.1 和 3.1+,主要区别是什么?

    c++ - GLSL 运动模糊后期处理,进入着色器的 2 个纹理相同

    CMake,在 32 位机器上构建 64 位

    c++ - 什么时候可以安全使用 `isalpha()`