Advertisement

解析Android渲染流程

阅读量:

每一个View对应一个RenderNode,一个独立的GLES20RecordingCanvas。

2.父视图的DisplayList包含所有子视图的DisplayList。

在实施硬件加速与非硬件加速时,Canvas呈现不同的特性。其中,在硬件加速场景下采用标准的Canvas实现方式,在非硬件加速场景下则基于GLES20RecordingCanvas架构设计。具体而言,在GLES20RecordingCanvas对象上所执行的绘图操作并未实际呈现图形,并且将这些绘图操作整合到DisplayList列表中进行批量渲染处理以提高效率

gles20_canvas_gles20canvas_drawarc()
android_view_gles20canvas_drawarc()
renderer->draw_arc(left,top,right,bottom,start_angle,sweep_angle"use_center",paint)
display_list_renderer::draw_arc()
addDrawOp(new (alloc()) DrawArcOp(left,top,right,bottom,start_angle,sweep_angle"use_center",paint))

基于GLES20标准开发的RecordingCanvas类继承自Hard

全部评论 (0)

还没有任何评论哟~