這裏是SDL2代碼的一部分SDL_PollEvent深入
SDL主要功能
int main(int argc,char *argv[])
{
...
...
bool quit=false;
SDL_Event e;
while(!quit) ///First while (say)
{
while(SDL_PollEvent(&e)) ///Second while (say)
{
if(e.type==SDL_QUIT)
{
quit=true;
}
handleEvent(e) ;///Function for executing certain event
}
...
SDL_RenderPresent((SDL_Renderer)renderer);
}
}
我的問題是,這是什麼SDL_PollEvent()實際上做的,假設一個事件發生並執行超出第二個while()並調用SDL_RenderPresent()或者它等待所有的事件進行輪詢,然後調用SDL_RenderPresent(),我完全困惑?
這是否意味着此,假設我要執行這個第二內側10個事件,而循環,這些事件將被存儲在事件隊列和相應的框架製成,在裏面是空的SDL_PollEvent(11日事件)將返回FALSE和熄滅第二個while循環和所有十幀都在SDL_RenderPresent()上呈現在屏幕上,它是否像這樣工作? – user2971474
我更新了答案,試圖解釋 – odedsh
你不「執行」事件..你迴應他們。它們表明操作系統中發生了某些事情(窗口大小調整/鼠標移動)。 如果你不迴應他們的應用程序會顯得反應遲鈍。一旦你對所有人作出迴應,你就回到繪製下一個框架 – odedsh