【发布时间】:2012-10-07 15:24:26
【问题描述】:
我已经使用 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;
}
我尝试在 while 子句末尾添加SDL_Delay(),效果很好。
但是,80 毫秒似乎是我可以用来保持程序平稳运行的最高值,即使如此,CPU 使用率也约为 15-20%。
这是做到这一点的最佳方式吗?我是否必须忍受它已经在这一点上吃掉这么多 CPU 的事实?
【问题讨论】:
标签: c++ multithreading sdl