资料:https://blog.csdn.net/luoshengyang/article/details/51348829
总结来说,分块的光栅化过程包含了以下三个主要的步骤:
1. 根据分块的可见性,将它们划分到不同的Bin中。
2. 根据内存限制策略,从优先级较高的Bin中选集出需要光栅化的分块。
3. 为每一个需要光栅化的分块分配光栅化内存,并且分别为它们创建光栅化任务。
光栅化任务的执行过程又主要分为以下两个步骤:
1. 创建画布。画布以前面分配的光栅化内存为后端存储。
2. 调用画布提供的绘制接口执行以前记录的绘制命令。这些绘制命令就作用在前面分配的光栅化内存中。也就是前面分配的光栅化内存保存了分块的光栅化结果。
当所有标记为Acquired For Activation的分块都光栅化完成之后,就会触发一个ACTION_ACTIVATE_PENDING_TREE操作,也就是将CC Pending Layer Tree激活为CC Active Layer Tree。
创建光栅化线程:
void SchedulerWorkerPoolImpl::Start(
const SchedulerWorkerPoolParams& params,
int max_background_tasks,
scoped_refptr<TaskRunner> service_thread_task_runner,
SchedulerWorkerObserver* scheduler_