- Director::mainLoop() 调用 Director::drawScene
- Director::drawScene() 调用 Scene::visit
- Scene::visit去遍历所有儿子节点,在儿子节点的visit函数中调用虚函数draw实现绘制
- 精灵类:重载了Node::draw,在精灵类的draw函数里,它把自己的绘制包装成一个渲染命令,调用Renderer::addCommand函数,将命令加入到命令队列
- 最后由Randerer::render函数进行绘制,这个函数由另外一个线程调用,这样可以提高效率
Node的visit和draw函数都是虚函数,可以通过重写虚函数来实现不同的绘制,重写visit会影响整个层(包括子节点),但是重写draw只影响自己
详细的流程可以看以下博文

本文详细介绍了Cocos2d-x3.2的渲染流程,从Director::mainLoop()调用开始,通过Director::drawScene、Scene::visit和Node::draw等关键函数,实现精灵类的绘制。重点阐述了Node类的visit和draw函数的使用,以及如何通过重载这些虚函数来实现不同的绘制效果。同时,文章深入探讨了OpenGLES渲染管线与着色器的基础知识。
1174

被折叠的 条评论
为什么被折叠?



