SDL_RenderClear运行缓慢

时间:2016-02-14 21:27:15

标签: performance sdl

我是SDL图书馆的新手。我的任务是在屏幕上伪造2000种颜色,持续20秒。这是我的循环:

//渲染器inicialization

SDL_Renderer *ren = 0;
    ren = SDL_CreateRenderer(win, -1
        SDL_RENDERER_ACCELERATED);

//循环

for (int i = 1; i <= 2000; ++i) {
        SDL_SetRenderDrawColor(ren, rand() % 256, rand() % 256, rand() % 256, 0);
        SDL_RenderClear(ren);
        SDL_RenderPresent(ren);
        SDL_Delay(10);
    }

在我的系统上运行大约32秒。知道为什么它会运行这么久吗?

1 个答案:

答案 0 :(得分:1)

不是clear,而是present是有限的。你启用了vsync,你的显示器是60Hz - 这意味着它每秒可以显示60个不同的图像。 2000/60 = 33.3(3) 您可以禁用vsync,但它不会更改监视器功能,只会导致撕裂。 重新考虑您的问题,例如在缺失的帧之间插入颜色。