summaryrefslogtreecommitdiffstats
path: root/cc/layer_tree_host_impl.cc
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 03:41:00 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 03:41:00 +0000
commit05469638c90c61f273420773ab3139d4286a7fb0 (patch)
tree06c32018843396f67cc7e71ef7ffecde9faec103 /cc/layer_tree_host_impl.cc
parent658ce05d1f2ec2717f3c00c9b21934373010ca35 (diff)
downloadchromium_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.cc15
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())