widget渲染核心
2021-04-30 18:05:32 0 举报
flutter,Widget渲染图形化
作者其他创作
大纲/内容
Flutter
RenderObjectText
build()
WidgetText
完成关联的渲染对象创建
通过widget直接渲染对象,会有性能问题因为widget本身是不可变的,每次都需要重建
加工成GPU数据
ElementText
视图结构数据
State
WidgetColumn
StatelessWidget(无状态组件)
3:检查dirty,触发element的update方法
RenderObject
RenderObjectImage
State<StatefulWidget>容器
RenderObjectRow
ElementColumn
创建RenderObject实现布局和绘制
Model(数据更新)
5:更新关联对象
ElementRow
setState()
GPU
WidgetRow
ui线程使用dart构建
CPU线程
ElementImage
Widget
1:配置数据变化
同步widget信息生成
Flutter最底层渲染
不可变的
可变的
OpenGL
RenderObjectColumn
Skia2D图像引擎
调用
数据
createState
7:VSync合成视图数据
Skia引擎
2:标记dirty
提供数据进行渲染
遍历widget树生成Element树
进行以上过程
提交
Element
4:使用最新widget数据
6:通过,layout方法和paint方法完成布局和绘制
遍历
createElement
图层合成
mount_diry=false
StatefulWidget(有状态组件)
WidgetImage
交给Skia引擎合成和渲染
收藏
0 条评论
下一页