为什么SDL2有一些额外的延迟?

时间:2017-12-13 17:00:31

标签: c sdl-2

SDL2似乎有一种奇怪的行为,我不认为SDL1.2有关于事件循环。当执行使用以下代码创建的程序时,会有一个额外的延迟,使其非常慢。

#include "SDL.h"

int main(int argc, char *argv[])
{
    SDL_Event event;
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *wind = SDL_CreateWindow("test", 700, 100, 300, 300, 0);

    while (1)
    {
        SDL_PollEvent(&event);
        if (event.type == SDL_QUIT || event.key.keysym.sym == SDLK_ESCAPE)
            break;
        SDL_Delay(1000);
    }
    SDL_Quit();
    return 0;
}

例如,当点击按钮" escape"时,程序关闭前需要4-5秒,而它应该不到1秒,因为延迟固定为1000ms。

在循环中使用printf时,我注意到即使循环正常,我的输入也不会在一定时间之前被考虑。

为什么会有这样的延迟?

0 个答案:

没有答案