我正在Xcode10.0 Mac OS 10.14上使用glew2.1和glfw3.2做OpenGL作业,但glfwCreateWindow总是返回NULL。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
int main(int argc, const char * argv[]) {
GLFWwindow* win;
if(!glfwInit()){
return -1;
}
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
win = glfwCreateWindow(640, 480, "test", NULL, NULL);
if(!win)
{
glfwTerminate();
exit(EXIT_FAILURE);
}
if(!glewInit())
{
return -1;
}
glfwMakeContextCurrent(win);
while(!glfwWindowShouldClose(win)){
glfwSwapBuffers(win);
glfwPollEvents();
}
glfwTerminate();
exit(EXIT_SUCCESS);
return 0;
}
如果我删除了4个glfwWindowHint语句,一个窗口将会出现,但是它是暗的,并且Xcode控制台将抛出一个错误:设置为窗口的第一响应者,但是它在一个不同的窗口中((null))!当视图被释放时,这将最终崩溃。第一响应者将被设置为nil。
1条答案
按热度按时间jm2pwxwz1#
这两行字:
导致了我的问题。删除它们后,glfwCreateWindow()不再返回null。