Функция glfwCreateWindow из библиотеки GLFW возвращает null

117
10 апреля 2022, 08:30

При попытке поместить результат этой функции в указатель, в него помещается NULL.

Библиотеки: OpenGL, GLEW, GLFW, iostream

Вот весь код:

#include <iostream>
#include "GL/glew.h"
#include "GLFW/glfw3.h"
int main(void)
{
    std::cout << "Hello, world !" << std::endl;
    if (!glfwInit()) {
        std::cout << "GLFW has been failed" << std::endl;
        return -1;
    }
    glfwWindowHint(GLFW_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
    if (!glewInit()) {
        std::cout << "GLEW has been failed" << std::endl;
        glfwTerminate();
        return -1;
    }
    glewExperimental = GLFW_TRUE;
    GLFWwindow* window = glfwCreateWindow(1110, 480, "Eternal Engine", nullptr, nullptr);
    if (!window) {
        std::cout << "Creating window has been failed" << std::endl;
        glfwTerminate();
        return -1;
    }
    glViewport(0, 0, 1110, 480);
    glClearColor(1.0, 0.0, 1.0, 1.0);
    while (!glfwWindowShouldClose(window)) {
        glClear(GL_COLOR_BUFFER_BIT);
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    glfwTerminate();
    return 0;
}

Вот проблемный указатель с присваиванием в него функции:

GLFWwindow* window = glfwCreateWindow(1110, 480, "Eternal Engine", nullptr, nullptr);

Следующие 5 строчек проверяют его на NULL:

if (!window) {
        std::cout << "Creating window has been failed" << std::endl;
        glfwTerminate();
        return -1;
    }

Как итог выводится "Creating window has been failed", то есть выполняется логика выше представленного if-а и программа завершается с кодом -1

Answer 1

Проблема решена удалением 15 строчки кода -> glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)

READ ALSO
QtConcurrent::mapped() загрузка ядра

QtConcurrent::mapped() загрузка ядра

Есть массив путей к файлам, к этому массиву через mapped() применяется некоторая функция с чтением внутриЗапустил на сервере(Xeon E5335) на большом...

210
SIMD вызов _mm_cmpeq_pi8 портит память

SIMD вызов _mm_cmpeq_pi8 портит память

Код собирается с target AVX2, при разборе "хвоста" решил использовать __m64, в результате после использования _mm_cmpeq_pi8 переменная типа double приобретает...

152
Задача на массивы

Задача на массивы

Задача CПохожие массивы (Время: 1 сек

141
Что означает запись using TasksInfo = map&lt;TaskStatus, int&gt;?

Что означает запись using TasksInfo = map<TaskStatus, int>?

Не могу найти нормальных примеров использование using наименование =

181