SDL冻结但继续运行

SDL freezes but continues to run

本文关键字:运行 继续 冻结 SDL      更新时间:2023-10-16

我在windows 7上使用SDL 1.2编写了一个程序来绘制Julia集合并将它们存储在.bmp文件中。该程序被设计为扫描每个像素并绘制特定的颜色,定期更新屏幕,当完成后,将图像存储在文件中并等待用户退出。

程序编译并运行正常。然而,这让我很恼火,过了一会儿屏幕就会死机,尽管程序还在运行。当所有计算完成后,屏幕解冻,文件被正确存储,当用户退出时程序正常退出。此外,如果用户在计算完成之前切换窗口,然后再返回窗口,屏幕将冻结。

程序本身需要大量的CPU而很少的内存。

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

注:首次发布于程序员。Stackexchange,但显然这不是正确的地方的问题:-)

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

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