Вопрос glfwSetWindowFocusCallback error

ColdStudio

Следопыт
Сообщения
72
Реакции
19
Всем ку, я тут начал имгуй под линуху делать и вроде все норм, ошибок нет, сдилдил.
запускаю и у меня ошибка с окном:

Код:
glfwSetWindowFocusCallback: Assertion `window != NULL' failed.
Aborted (core dumped)

код я не смогу загрузить фулл, я короче добавил имгуй импл глфв и опенгл
вот мой main.cpp:
C++:
#include <iostream>
#include <GL/gl.h>
#include <GLES3/gl3.h>
#include <GLFW/glfw3.h>
#include "imgui/imgui.h"
#include "imgui/imgui_impl_glfw.h"
#include "imgui/imgui_impl_opengl3.h"
using namespace std;

int main()
{
    if (!glfwInit()) {
        cout << "Error to use ImGui" << endl;
        return -1;
    }

    #if defined(IMGUI_IMPL_OPENGL_ES2)
    // GL ES 2.0 + GLSL 100
    const char* glsl_version = "#version 100";
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
    glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
#elif defined(__APPLE__)
    // GL 3.2 + GLSL 150
    const char* glsl_version = "#version 150";
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);  // 3.2+ only
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);            // Required on Mac
#else
    // GL 3.0 + GLSL 130
    const char* glsl_version = "#version 130";
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
    //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);  // 3.2+ only
    //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);            // 3.0+ only
#endif

    GLFWwindow* window = glfwCreateWindow(600, 600, "ImGui", nullptr, nullptr);
    IMGUI_CHECKVERSION();
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO(); (void)io;
    ImGui::StyleColorsDark();
    ImGui_ImplGlfw_InitForOpenGL(window, true);
    ImGui_ImplOpenGL3_Init(glsl_version);

    bool demo_window = true;
    while (!glfwWindowShouldClose(window)) {
        cout << "Init On" << endl;
        glClearColor(1, 1, 0, 1);

        //Imgui
         ImGui_ImplOpenGL3_NewFrame();
        ImGui_ImplGlfw_NewFrame();
        ImGui::NewFrame();
        if (demo_window) {
            ImGui::ShowDemoWindow(&demo_window);
        }
        static float f = 0.0f;
        static int counter = 0;

        ImGui::Begin("Hello, world!");
        ImGui::Text("This is some useful text.");
        ImGui::End();


        ImGui::Render();
        int display_w, display_h;
        glfwGetFramebufferSize(window, &display_w, &display_h);
        glViewport(0, 0, display_w, display_h);
        glClear(GL_COLOR_BUFFER_BIT);
        ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

     ImGui_ImplOpenGL3_Shutdown();
    ImGui_ImplGlfw_Shutdown();
    ImGui::DestroyContext();
    glfwDestroyWindow(window);
    glfwTerminate();
}

компилю все *cpp файлы, вот так:
Код:
g++ main.cpp imgui/imgui.cpp imgui/imgui_demo.cpp imgui/imgui_draw.cpp imgui/imgui_impl_glfw.cpp imgui/imgui_impl_opengl3.cpp imgui/imgui_tables.cpp imgui/imgui_widgets.cpp -o wind -lGL -lglfw

ошибка вообще хз как появляеться, это было и когда я без имгуя работал на питоне(там типо тоже плюсы нужны и в некоторых библах есть глфв)
там тоже так же было, помогите пж, у меня ноут и видюхи нет по этому юзаю видеопроц

Сразу спасибо за помощь!!!
 

Darwin

Команда форума
Администратор
Сообщения
945
Реакции
513
Вероятно, это происходит из-за того, что приложение запрашивает окно с opengl версии 4.3, которая может не поддерживаться вашей машиной.
 

ColdStudio

Следопыт
Сообщения
72
Реакции
19
Вероятно, это происходит из-за того, что приложение запрашивает окно с opengl версии 4.3, которая может не поддерживаться вашей машиной.
А если я буду использовать SDL или вулкан то ошибка уйдет?
 
Верх Низ