我在mac上操作发现必须加上事件的处理才会显示窗口,这是为什么

来源:7-3 SDL窗口渲染

靳晓帅

2020-11-18

SDL_Init(SDL_INIT_VIDEO);

SDL_Window * window = SDL_CreateWindow("jxs test sdl",
                                         100,
                                         100,
                                         640,
                                         480,
                                       SDL_WINDOW_RESIZABLE);
if(window == nullptr) {
    SDL_Log("failed to create window.");
}
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
if(renderer == nullptr) {
    SDL_Log("failed to create render.");
}
SDL_Event event;
SDL_PollEvent(&event); // 没有事件处理这两句就不会显示窗口
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer,255,255,255,255);
SDL_RenderPresent(renderer);
SDL_Delay(30000);
写回答

1回答

李超

2020-11-18

推测SDL把窗口的现实放到时间等待方法里调用了,因为这个库主要用于游戏的渲染,在游戏中没有鼠标键盘光显示窗口没啥意义,如果你对这块感兴趣的话可以翻翻他的源码

1
1
靳晓帅
好的,多谢李老师指点!
2020-11-18
共1条回复

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程