创建一个 OpenGL 窗口

SFML 中的 Windows 由两个类之一表示:

  • sf::Window 是操作系统提供的通用窗口,包括 OpenGL 渲染上下文。
  • sf::RenderWindowsf::Window 的专用版本,也可以作为 sf::RenderTarget,允许 SFML 的基元呈现给它。

两种情况下的基本用法相同。

#include <SFML/Window.hpp>

int main(int argc, char *argv) {
    // Create and initialize a window object
    sf::Window window(sf::VideoMode(640, 480), "My SFML Window");

    // Repeat this as long as the window is open
    while (window.isOpen()) {
        // Handle window events ("event loop")
        sf::Event event;
        while (window.pollEvent(event)) {
            switch(event.type) {
                case sf::Event::Closed: // User tries to close the window
                    window.close(); // Actually close the window
                    break;
            }
        }

        // Render logic would be placed here
        
        // Swap buffers and update the window
        window.display();
    }
    return 0;
}