每个CL_Win32Window创建时候都会相应的添加到CL_DisplayMessageQueue_Win32队列中(析构时删除).
CL_DisplayMessageQueue_Win32::process_message中会获取消息并派发消息.
而后遍历所有的窗口调用窗口对应的输入接口对象(CL_InputContext)进行处理.
CL_Win32Window在创建时设置了自己的消息处理函数static_window_proc,
处理函数在收到自己的消息时调用处理函数CL_Win32Window::window_proc进行处理.
window_proc根据不同的消息类型进行分流后加入CL_InputDevice的事件栈,等待程序调用CL_InputContext::process_messages进行处理.
一个疑问:CL_InputContext_Impl中其他的函数都加了线程互斥,如处理函数process_messages,add_mouse等,只有函数received_event没有加,这样能支持多线程操作?
posted on 2010-06-30 16:34
我风 阅读(294)
评论(0) 编辑 收藏 引用 所属分类:
ClanLib