我正在研究GLFW應用程序,並且在調整窗口大小時發現了一個問題。GLFW民意調查等待,直到窗口調整完成,如何解決?
當用戶縮放窗口時,glfwPollEvents()
函數會等待,直到用戶完成。這意味着,在縮放窗口期間,不會調用渲染函數,並創建可怕的工件。
我已經通過調用主循環渲染功能以及窗口大小調整回調圍繞這工作:
#include <GLFW/glfw3.h>
static void render(GLFWwindow* window) {
glfwMakeContextCurrent(window);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
}
static void window_size_callback(GLFWwindow* window, int width, int height) {
render(window);
glViewport(0, 0, width, height);
}
int main(void) {
if (!glfwInit()) {
return -1;
}
GLFWwindow* window = glfwCreateWindow(640, 480, "Terrain chunk render", NULL, NULL);
if (!window) {
glfwTerminate();
return -1;
}
glfwSetWindowSizeCallback(window, window_size_callback);
while (!glfwWindowShouldClose(window)) {
render(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
然而,這意味着渲染功能,當用戶不叫在縮小窗口而不實際移動窗口後按住鼠標按鈕。有沒有一種有效的方法來解決這個問題,並使渲染函數調用更一致?
我不太確定,但是您檢查了Windows系統設置嗎?如果不是,假設Windows 7,你可以嘗試[this](http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/in-windows-7-how-do-i-show- window-contents-while/18e3aee2-bcc7-4005-a45d-c5613cf6eb3c),並看看它是如何發展的。 – Keugyeol