IntBuffer wid = BufferUtils.createIntBuffer(1);
IntBuffer hei = BufferUtils.createIntBuffer(1);
glfwGetWindowSize(window, wid, hei);
int windowWidth = wid.get();
int windowHeight = hei.get(); // I recommend making this public
while(!glfwWindowShouldClose(window)) {
glfwSetWindowSize(window, windowWidth, windowHeight);
// People can still maximize the window ... Comment if you have a solution :)
}
6条答案
按热度按时间2admgd591#
您的方法在Ubuntu 18.10中的GLFW 3.2.1-1中起作用:
main.cpp
编译并运行:
当我将光标悬停在已创建窗口的边框上时,光标始终不会变为调整大小模式。
pdkcd3nj2#
GLFW目前没有API用于在创建窗口后更改该状态。
当您想要使用GLFW时,我看到两个选项:
1.您已经有了解决方法。
1.在切换该状态时创建新窗口。
1.使用GLFW native access获取真实的的窗口句柄,并为每个平台(您关心的)实现该特性。
所有的变体对我来说似乎都不太吸引人。选项2尤其糟糕,因为GL上下文与GLFW中的窗口绑定的方式,通过使用额外的(不可见的)窗口和共享GL上下文应该是可能的,但这将是丑陋的。
选项3的优点是,一旦在所有相关平台上实现,它应该可以完美地工作。由于GLFW是开源的,这也启用了选项3b):直接在GLFW中实现它并扩展API。2你甚至可以把它集成到GLFW的官方版本中。
uwopmtnx3#
可以使用以下代码更改现有窗口的
GLFW_RESIZABLE
属性:sd2nnvve4#
这*工作***,但我强烈推荐其他解决方案,因为这是只有当你严格需要能够切换**它。
m0rkklqb5#
我的解决方案:
m528fe3b6#
这对我在GLFW 3.3中起作用,但要小心地将其放在glfwInit()之后