3、cocos2d-x窗口应用程序集成win32消息机制流程分析
bombing提醒您分析源码的时候,要带着问题去分析;分析明白以下三个问题,基本上对cocos2d-x集成win32消息机制大体流程了。
问题1:win平台下,cocos2d-x框架源码中,那个类完成了win窗口类注册;
问题2:win平台下,cocos2d-x框架源码中,那个类完成win窗口消息循环;
问题3:win平台下,cocos2d-x框架源码中,那个类完成win窗口过程回调函数处理。
过程如下:
1)第24行CCEGLView* eglView= CCEGLView::sharedOpenGLView();
该函数会调用步骤2)
2) boolCCEGLView::Create()函数,完成win窗口类注册;其中279、299行为关键代码。
其中,CCEGLView::Create()会调用 CheckTouchSupport()函数,该函数动态加载系统函数,是应用程序加载动态库的重要方法之一,注意学习。
其中,CCEGLView::Create()会调用 CheckTouchSupport()函数,该函数动态加载系统函数,是应用程序加载动态库的重要方法之一,注意学习。
3)CCApplication类run()完成win消息循环接受处理。代码如下:
4)CCEGLView类的WindowProc函数,完成win窗口过程回调实现。函数运行如下:
LRESULT CCEGLView::WindowProc(UINT message, WPARAMwParam, LPARAM lParam)。该函数有众多关键性代码。
触屏回调、鼠标按键、键盘按键、应用程序后台处理等均有对应处理流程。
综上:
1)在main.pp程序入口_tWinMain()函数中,执行CCEGLView类对象初始化过程中,创建了win窗口类,然后注册窗口类,并注册消息回到函数WindowProc;
2)CCApplication的run函数进行消息循环处理。
至此:cocos2d-x win应用程序创建流程分析完毕。