Окно SDL не отображается даже с Event Loop - PullRequest
1 голос
/ 25 апреля 2020

Я знаю, что этот вопрос задавался ранее, но в большинстве случаев ответом было просто добавить задержку или событие l oop. Однако я добавил событие l oop и окно не отображается. Только консоль. Я запускаю эту программу в 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;
}

1 Ответ

1 голос
/ 25 апреля 2020

Вам необходимо включить SDL_MainReady, поскольку вы не используете SDL_main.

См. здесь

Таким образом, ваш код будет скорректирован как

int main() {
    SDL_Window* window;

    SDL_SetMainReady();
    SDL_Init(SDL_INIT_EVERYTHING);

    ...

    return 0;
}
...