程式語言 - Simple and Fast Multimedia Library (SFML) - CPP - X11 - Hello, world!



參考資訊:
https://www.sfml-dev.org/index.php

main.cpp

#include <SFML/Window.hpp>
#include <SFML/System/Err.hpp>
#include <SFML/OpenGL.hpp>
#include <X11/Xlib.h>
#include <iostream>
#include <cmath>
#include <unistd.h>

int main(int argc, char *argv[])
{
    XSetWindowAttributes cfg = { 0 };
    Display* display = XOpenDisplay(NULL);
    int screen = DefaultScreen(display);

    cfg.background_pixel = BlackPixel(display, screen);
    cfg.event_mask = KeyPressMask;
    Window window = XCreateWindow(
        display, RootWindow(display, screen),
        0,
        0,
        320,
        240,
        0,
        DefaultDepth(display, screen),
        InputOutput,
        DefaultVisual(display, screen),
        CWBackPixel | CWEventMask,
        &cfg
    );

    XStoreName(display, window , "hello, world!");
    XFlush(display);
    sf::Window sfml(window);

    sfml.display();
    usleep(3000000);
    sfml.close();

    XCloseDisplay(display);

    return 0;
}

編譯、執行

$ g++ main.cpp -o main -lsfml-graphics -lsfml-window -lsfml-system -lX11
$ ./main