运行以下代码,除非我在SDL_WINDOW_FULLSCREEN
中设置SDL_CreateWindow
,否则我无法查看窗口。使用任何其他设置,我可以看到进程正在运行,但不会出现任何窗口。我希望能够创建一个窗口SDL_Window
。我错过了什么吗?
运行macOS Sierra,SDL v2.0.7
#include <SDL2/SDL.h>
int main() {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}
SDL_Window *window = SDL_CreateWindow(
"Title",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
640,
800,
SDL_WINDOW_SHOWN
);
if (window == NULL) {
SDL_Log("Unable to create window: %s", SDL_GetError());
return 1;
}
SDL_Delay(5000);
// Cleanup.
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
答案 0 :(得分:4)
您可以尝试添加事件循环而不是SDL_Delay吗?
bool quit = false;
SDL_Event e;
while (!quit) {
while (SDL_PollEvent(&e)) {
if (e.type == SDL_QUIT) {
quit = true;
}
}
}
所以现在我在我的Mac机器上尝试了你的代码,它确实没有显示窗口。您的代码没有给SDL足够的时间来显示屏幕,它只是进入睡眠状态并退出。事件循环显示非全屏非最大化窗口。