clippingnode 原理

clippingnode继承自node,主要做了两件事,第一是设置模板的缓冲值(以stencil为参考),这些过程都在visit中完成。

通过onBeforeVisit函数:


通过绘制一个全屏的矩形,将模板缓冲置为0,有一个问题是:不绘制具体的图形不能把模板缓冲置为0吗?


然后设置模板的绘制


然后进行具体的模板绘制,根据上面设置的条件,模板所有值都不会通过测试,然后模板缓冲会被置为模板的mask值


最后通过onAfterDrawStencil绘制clippingnode


这里有个迷惑的地方,为什么参考值不是mask_layer,而是_mask_layer_le,主要是clippingnode的孩子可能也是一个clippingnode



总结一下:

clippingnode的visit函数,先以模板为参考设置模板缓冲值,然后再根据设置绘制clippingnode

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容