diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 03:41:00 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-16 03:41:00 +0000 |
commit | 05469638c90c61f273420773ab3139d4286a7fb0 (patch) | |
tree | 06c32018843396f67cc7e71ef7ffecde9faec103 /cc/layer_tree_host_impl.cc | |
parent | 658ce05d1f2ec2717f3c00c9b21934373010ca35 (diff) | |
download | chromium_src-05469638c90c61f273420773ab3139d4286a7fb0.zip chromium_src-05469638c90c61f273420773ab3139d4286a7fb0.tar.gz chromium_src-05469638c90c61f273420773ab3139d4286a7fb0.tar.bz2 |
cc: Implement DelegatingRender::drawFrame() method.
The method sends the render passes it is given to the parent compositor via
the output surface. It should include a valid frame metadata with it.
Tests:
DelegatingRendererTestDraw.runSingleThread
DelegatingRendererTestDraw.runMultiThread
DelegatingRendererTestResources.runSingleThread
DelegatingRendererTestResources.runMultiThread
R=piman
BUG=123444
Review URL: https://codereview.chromium.org/11777025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177073 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layer_tree_host_impl.cc')
-rw-r--r-- | cc/layer_tree_host_impl.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc index 39ef482..22e08a1 100644 --- a/cc/layer_tree_host_impl.cc +++ b/cc/layer_tree_host_impl.cc @@ -760,19 +760,20 @@ void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*) CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const { - if (!rootScrollLayer()) - return CompositorFrameMetadata(); - CompositorFrameMetadata metadata; - metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScrollLayer()->scrollDelta(); - if (!m_settings.pageScalePinchZoomEnabled) - metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.page_scale_factor()); metadata.page_scale_factor = m_pinchZoomViewport.total_page_scale_factor(); metadata.viewport_size = m_pinchZoomViewport.Bounds().size(); metadata.root_layer_size = contentSize(); metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor(); metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor(); + if (!rootScrollLayer()) + return metadata; + + metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScrollLayer()->scrollDelta(); + if (!m_settings.pageScalePinchZoomEnabled) + metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.page_scale_factor()); + return metadata; } @@ -990,7 +991,7 @@ bool LayerTreeHostImpl::initializeRenderer(scoped_ptr<OutputSurface> outputSurfa m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settings.numRasterThreads)); if (outputSurface->Capabilities().has_parent_compositor) - m_renderer = DelegatingRenderer::Create(this, resourceProvider.get()); + m_renderer = DelegatingRenderer::Create(this, outputSurface.get(), resourceProvider.get()); else if (outputSurface->Context3D()) m_renderer = GLRenderer::create(this, outputSurface.get(), resourceProvider.get()); else if (outputSurface->SoftwareDevice()) |