1. 程式人生 > >chromium:LoadUrl之後會發生那些事情之 cc::drawLayers

chromium:LoadUrl之後會發生那些事情之 cc::drawLayers

ThreadProxy::BeginMainFrame()

--->Proxy::ImplThreadTaskRunner()->PostTask(

      FROM_HERE,

      base::Bind(&ThreadProxy::StartCommitOnImplThread,

                        impl_thread_weak_ptr_,

                        &completion,

                        queue.release()));

Call Stack:

#0   cc::ResourceProvider::PrepareSendToParent(const std::vector<unsigned int,std::allocator<unsigned int> > & resources, std::vector<cc::TransferableResource,std::allocator<cc::TransferableResource> > * list) 

#1   cc::DelegatingRenderer::DrawFrame(cc::ScopedPtrVector<cc::RenderPass> * render_passes_in_draw_order, float device_scale_factor, const gfx::Rect & device_viewport_rect, const gfx::Rect & device_clip_rect, bool disable_picture_quad_image_filtering)

#2   cc::LayerTreeHostImpl::DrawLayers(cc::LayerTreeHostImpl::FrameData * frame)

#3   cc::ThreadProxy::DrawSwapInternal(bool forced_draw)

#4   cc::ThreadProxy::ScheduledActionDrawAndSwapIfPossible()

#5   cc::Scheduler::DrawAndSwapIfPossible()

#6   cc::Scheduler::ProcessScheduledActions()

#7   cc::Scheduler::OnBeginImplFrameDeadline()

本文是在content_shell下的呼叫棧,所以LayerTreeHostImpl中的renderer_DelegatingRendererDrawLayers中的DrawFrame呼叫的是DelegatingRenderer::DrawFrame