[Solved] Can't get started


#1

this my code :

    #define GLFW_INCLUDE_VULKAN
    #include <GLFW/glfw3.h>

    #include <iostream>
    #include <stdexcept>
    #include <cstdlib>

    const int WIDTH = 800;
    const int HEIGHT = 600;

    class HelloTriangleApplication {
    public:
        void run() {
            initWindow();
            initVulkan();
            mainLoop();
            cleanup();
        }

    private:
        GLFWwindow* window;

        void initWindow() {
            glfwInit();

            glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
            glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);

            window = glfwCreateWindow(WIDTH, HEIGHT, "Vulkan", nullptr, nullptr);
        }

        void initVulkan() {

        }

        void mainLoop() {
            while (!glfwWindowShouldClose(window)) {
                glfwPollEvents();
            }
        }

        void cleanup() {
            glfwDestroyWindow(window);

            glfwTerminate();
        }
    };

    int main() {
        HelloTriangleApplication app;

        try {
            app.run();
        } catch (const std::exception& e) {
            std::cerr << e.what() << std::endl;
            return EXIT_FAILURE;
        }

        return EXIT_SUCCESS;
    }

I am on archlinux, then I compile this program like this :
g++ test.cpp -o prog pkg-config --libs --static glfw3 -lvulkan
when I execute the program I receive this message :
prog: /build/glfw/src/glfw-3.2.1/src/window.c:412: glfwWindowShouldClose: Assertion `window != NULL’ failed.
Aborted (core dumped)
what is the solution for this ?
Thank you very much dear friends :slight_smile:


#2

I inspect more seriously, and I find that the problem is glutInit(), this function failed to initialize, is there any solution please ?


#3

I assume you mean glfwInit, not glutInit?

How did you determined that glfwInit failed? Did you print out its return value?
Can you try setting error callback to see if there are some useful messages printed? http://www.glfw.org/docs/latest/quick_guide.html#quick_capture_error

Are you sure vulkan is supported? Try calling glfwVulkanSupported() and check the result.


#4

yes exactly I mean glfwInit(), I found the solution.
Indeed switching from glfw-wayland to glfw-x11 on arch linux solved the issue.
Thanks for reading friends.