glfwCreateWindow возвращает NULL в Mac OS - PullRequest
0 голосов
/ 25 октября 2018

Я делаю домашнюю работу по OpenGL на Xcode10.0 Mac OS 10.14, используя glew2.1 и glfw3.2, но 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 выдаст ошибку: установка в качестве первого респондента для окна, но это вдругое окно ((ноль))!Это в конечном итоге приведет к краху, когда представление будет освобождено.Первый респондент будет установлен в ноль.

1 Ответ

0 голосов
/ 17 мая 2019

Эти две строки:

glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

вызывали проблему для меня.Как только я удалил их, glfwCreateWindow () больше не возвращал ноль.

...