界面上有一个层容器(UIPanel),它的“填充颜色”属性设置成了“无颜色”,那么在渲染绘制阶段,它会被绘制一次吗?
如果设置的是“单色”或者“渐变色”,肯定会参与绘制的。
如果“无颜色”也参与绘制,那太浪费了。
有没有同学研究过这个问题?
不会因为看不见,而不去渲染的.
感谢版主的回答哈。
这个“无颜色”的UIPanel也参与渲染绘制,也就是它会修改它所能够覆盖的BackBuffer的像素值。
但是,绘制前与绘制后没有变化,因为它是无颜色的。这个好浪费啊。
渲染优化的一个方向不就是尽量少的修改BackBuffer的像素值吗?
查看了一下源码,这个问题搞清楚了。
UIPanel是继承自UIWidget,UIWidget继承自CCNode,所以UIPanel会维护一个子节点列表。
如果UIPanel的“填充颜色”属性设置成“单色”,则该UIPanel的第一个子节点是一个CCLayerColor对象,这个CCLayerColor对象就是负责绘制“单色”的。
如果UIPanel的“填充颜色”属性设置成“无颜色”,则该UIPanel的子节点列表中就不会多增加一个CCLayerColor对象。在这种情况下,UIPanel充当的就是一个容器,它本身不参与渲染绘制,它的子节点可以参与渲染绘制。
会。。。。。
1024 1024