OpenGL 不会创建所需大小的窗口
OpenGL doesn't create window with the desired size
所以我有这个代码
GLFWwindow* window = glfwCreateWindow(1024, 768, "Hello Triangle", NULL, NULL);
glViewport(0, 0, 1024, 768);
但是,当我创建一个坐标为 (-1, -1(、(0, 1( 和 (1,-1( 的三角形时,它只在拐角处画了一个小三角形。如果我调整窗口大小,它会绘制正确的三角形。
因此,我设置了一个帧缓冲区大小回调:
void FramebufferSizeCallback(GLFWwindow* window, int width, int height) {
glViewport(0, 0, width, height);
cout << width << " " << height << endl;
}
我尝试稍微调整窗口大小,结果发现窗口大小大于 1024 x 768。
那么,为什么 glfwCreateWindow
函数不创建大小为 1024 x 768 的窗口呢?还是我有错误的理解?
我正在使用macOS High Sierra。
glViewport
的第一次调用将不起作用,因为此时没有当前的OpenGL上下文。在任何 OpenGL 指令之前调用 glfwMakeContextCurrent
以使窗口的上下文成为当前
GLFWwindow* window = glfwCreateWindow(1024, 768, "Hello Triangle", NULL, NULL);
glfwMakeContextCurrent(wnd); // <-- make the context current before glViewport
glViewport(0, 0, 1024, 768);
请注意,glfwCreateWindow
创建一个窗口和一个关联的 OpenGL 上下文,但它不会更改当前上下文。
相关文章:
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 窗口 :创建仅具有对我的进程的权限的目录 (C++)
- DXGI_ERROR_INVALID_CALL为核心窗口创建交换链时
- 视觉C++窗口创建失败
- 从 WinAPI 窗口创建控制台窗口
- 窗口创建错误 - 可能是事件处理
- Qt:当主窗口被模式QDialog阻止时,如何聚焦从主窗口创建的无模式QDialog
- Visual Studio 2012应用程序窗口创建/调整大小与VS2008窗口创建不同?为什么?
- C++/SFML窗口创建失败
- 窗口创建问题
- 使用创建窗口创建 MDI 子窗口
- MDI 子窗口创建失败
- Win32窗口创建失败
- 挂钩窗口创建;挂钩未被触发
- 如何使用'C'或'C++'为窗口创建独立的程序或应用程序
- 调用glfwWindowHint()后,GLFW窗口创建失败
- c++窗口创建/ SDL
- Qt从我的主窗口创建新窗口
- 窗口创建失败-LoadFrame(IDR_MAINFRAME)使C++失败
- Visual Studio和SDL2窗口创建失败