SDL 冻结但继续 运行

SDL freezes but continues to run

我在 windows7 上使用 SDL 1.2 编写了一个程序来绘制 Julia 集并将它们存储在 .bmp 文件中。该程序旨在扫描每个像素并绘制某种颜色,更新定期显示屏幕,完成后,将图像存储在文件中并等待用户退出。

程序编译运行正常。然而,这让我很烦,一段时间后屏幕会冻结,尽管程序保持 运行。当所有计算完成后,屏幕解冻,文件正确存储,用户退出时程序正常退出。此外,如果用户在计算完成之前切换 window 然后返回,屏幕会冻结。

程序本身需要很多 CPU 但内存很少。

知道如何解决这个问题吗?

注意:最初发布在 programmers.stackexchange 但显然那不是问题的正确位置:-)

我怀疑您在程序进行计算时没有足够频繁地处理 SDL 事件。您需要在计算中添加事件轮询:

SDL_Event event;
SDL_PollEvent( &event );
... // here handle mouse, keyboard and user events