我已经使用 SDL 完成了一个非常基本的窗口,并希望保持它运行,直到我按下窗口上的 X。
#include "SDL.h"
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main(int argc, char **argv)
{
SDL_Init( SDL_INIT_VIDEO );
SDL_Surface* screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, 0,
SDL_HWSURFACE | SDL_DOUBLEBUF );
SDL_WM_SetCaption( "SDL Test", 0 );
SDL_Event event;
bool quit = false;
while (quit != false)
{
if (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
}
SDL_Delay(80);
}
SDL_Quit();
return 0;
}
我尝试SDL_Delay()
在 while 子句的末尾添加,效果很好。
然而,80 毫秒似乎是我可以用来保持程序平稳运行的最高值,即使如此,CPU 使用率也约为 15-20%。
这是做到这一点的最好方法吗?我是否必须忍受它已经在这一点上吃掉这么多 CPU 的事实?