[]关于getGraphicBounds的代码原理
edit:
看了好久,现在_getCmdPoints大概明白了,就是根据绘图cmd列表,计算不同的边框,放到一起。
现有还两个疑问:
代码最后这里:
为什么rst超过200长的时候,直接取了边框,而8~200之间却算了个凸包呢?
_getCmdPoints只在Graphics.as(某新版到了GraphicsBounds.as)里面有调用,而且最后都会到Rectangle._getWrapRec去,得到4个点,那么这里对rst的分类处理是什么用的啊?
@cuixueying
-------------------------------
原问题:通过文档和一些实践,我知道了getBounds和getGraphicBounds是性能比较耗的两个方法。为了搞清楚底层,我查看了其源码。但水平和时间有限,不太能看懂。
只知道getBounds考虑style,transform等, 还可能递归算所有子节点;两个函数都可能调到_getCmdPoints(最看不懂的地方)。
另一方面,我做了点测试发现getBounds没有把drawLine这种范围算进去,getGraphicBounds没有考虑旋转等。
这里想问下这两方法各自到底做了些什么?里面哪些是耗性能的关键呢?
只要解释到让我能用图示传达给别人的程度就可以了。
不胜感激!
看了好久,现在_getCmdPoints大概明白了,就是根据绘图cmd列表,计算不同的边框,放到一起。
现有还两个疑问:
代码最后这里:
为什么rst超过200长的时候,直接取了边框,而8~200之间却算了个凸包呢?
_getCmdPoints只在Graphics.as(某新版到了GraphicsBounds.as)里面有调用,而且最后都会到Rectangle._getWrapRec去,得到4个点,那么这里对rst的分类处理是什么用的啊?
@cuixueying
-------------------------------
原问题:通过文档和一些实践,我知道了getBounds和getGraphicBounds是性能比较耗的两个方法。为了搞清楚底层,我查看了其源码。但水平和时间有限,不太能看懂。
只知道getBounds考虑style,transform等, 还可能递归算所有子节点;两个函数都可能调到_getCmdPoints(最看不懂的地方)。
另一方面,我做了点测试发现getBounds没有把drawLine这种范围算进去,getGraphicBounds没有考虑旋转等。
这里想问下这两方法各自到底做了些什么?里面哪些是耗性能的关键呢?
只要解释到让我能用图示传达给别人的程度就可以了。
不胜感激!
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
nalley
赞同来自:
------------
edit:
哦好像cmd数组有好多种格式,这里的0不是texture咯?