每個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
我風 閱讀(310)
評論(0) 編輯 收藏 引用 所屬分類:
ClanLib