SDL Window 即使使用事件循环也不显示

SDL Window does not show even with Event Loop

我知道以前有人问过这个问题,但大多数时候答案只是添加延迟或事件循环。但是我添加了一个事件循环并且 window 没有显示。只有控制台。我是 运行 这个计划 Visual Studio 2019.

#include <iostream>
#include "GL/glew.h"

#define SDL_MAIN_HANDLED

#include "SDL.h"

int main() {

    SDL_Window* window;
    SDL_Init(SDL_INIT_EVERYTHING);

    //fenster erstellen
    window = SDL_CreateWindow("C++ OpenGL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_OPENGL);
    //opengl context setzen
    SDL_GLContext glContext = SDL_GL_CreateContext(window);

    bool close = false;
    while (!close) {

        SDL_Event event;
        while (SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                close = true;
            }
        }

        if (close) {
            break;
        }
    }

    return 0;
}

您需要包含 SDL_MainReady,因为您没有使用 SDL_main

here

所以你的代码会被调整成

int main() {
    SDL_Window* window;

    SDL_SetMainReady();
    SDL_Init(SDL_INIT_EVERYTHING);

    ...

    return 0;
}