您的位置:首页 > 其它

SDL解析——SDL事件处理(1)

2010-09-19 10:35 316 查看
原文出处http://www.leeos.org/cms/show_article/89002.html

SDL图形化的基本问题解决了,但图形窗口依旧是一闪而过。我们需要使用SDL内部事件处理机制来解决问题。

SDL的事件处理允许程序响应来自用户的输入(键盘,鼠标……)。而等待相应的时候,程序就会阻塞,从而将图形窗口定格在屏幕当中。



将上面的代码添加到原有程序当中,我们就能实现图形窗口的停留,同时在用户关闭窗口时,退出程序。而实现方法就是首先定义一个SDL_Event类型的数据,然后通过SDL_PollEvent函数来监听。如果却有用户输入,则从阻塞状态中返回,同时SDL_Event也被赋予了代表某个事件的特定值。

SDL_Event是一个枚举类型,其中包含了SDL支持的所有实际事件。



而在获取输入的问题上,SDL采用了最通常的做法,使用一个SDL_EventQ结构体来描述输入队列。



而SDL_PollEvents函数则首先通过SDL_PumpEvents函数来处理硬件独立的事件后,再通过SDL_PeepEvents从队列中提取事件。可想而知,SDL_PumpEvents最终还是要调用相应SDL_VideoDevice内部的PumpEvents函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: