简介
事件处理: 一个完整的GUI程序,需要处理各种事件,如按键,鼠标,窗口操作等。
一般这种程序会设计成一个与底层交互的事件驱动模型。
即操作系统底层不断发送事件【内核层】,
而在程序用一个循环不断处理各种事件【应用层】。
事件处理流程
各个GUI都是采用这样模型来实现,SDL抽象这个模型,采用SDL_event来抽象表示具体的事件。
事件处理函数最终还是使用SDL库。
首先定义一个SDL_Event类型的数据,通过SDL_PollEvent函数来监听消息,即从底层来提取事件。
事件处理允许程序响应来自用户的输入,而等待相应的时候,程序就会阻塞,从而将图形窗口定格在屏幕当中。如果有用户输入,则从阻塞状态中返回,同时SDL_Event也被赋予了代表某个事件的特定值。
SDL_PollEvents()函数的功能是事件轮询。
首先通过SDL_PumpEvents函数来处理硬件独立的事件后,再通过SDL_PeepEvents从队列中提取事件。
另外还有两个事件处理函数:
SDL_WaitEvent()必须等到有一个事件才返回,而SDL_Po