Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 11777025: cc: Implement DelegatingRender::drawFrame() method. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for-landing Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/io_surface_draw_quad.cc ('k') | cc/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layer_tree_host_impl.h" 5 #include "cc/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 m_renderer->receiveCompositorFrameAck(ack); 753 m_renderer->receiveCompositorFrameAck(ack);
754 } 754 }
755 755
756 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*) 756 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*)
757 { 757 {
758 m_client->onCanDrawStateChanged(canDraw()); 758 m_client->onCanDrawStateChanged(canDraw());
759 } 759 }
760 760
761 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const 761 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const
762 { 762 {
763 if (!rootScrollLayer())
764 return CompositorFrameMetadata();
765
766 CompositorFrameMetadata metadata; 763 CompositorFrameMetadata metadata;
767 metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScroll Layer()->scrollDelta();
768 if (!m_settings.pageScalePinchZoomEnabled)
769 metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.page_scale_fac tor());
770 metadata.page_scale_factor = m_pinchZoomViewport.total_page_scale_factor(); 764 metadata.page_scale_factor = m_pinchZoomViewport.total_page_scale_factor();
771 metadata.viewport_size = m_pinchZoomViewport.Bounds().size(); 765 metadata.viewport_size = m_pinchZoomViewport.Bounds().size();
772 metadata.root_layer_size = contentSize(); 766 metadata.root_layer_size = contentSize();
773 metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor() ; 767 metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor() ;
774 metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor() ; 768 metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor() ;
775 769
770 if (!rootScrollLayer())
771 return metadata;
772
773 metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScroll Layer()->scrollDelta();
774 if (!m_settings.pageScalePinchZoomEnabled)
775 metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.page_scale_fac tor());
776
776 return metadata; 777 return metadata;
777 } 778 }
778 779
779 void LayerTreeHostImpl::drawLayers(FrameData& frame) 780 void LayerTreeHostImpl::drawLayers(FrameData& frame)
780 { 781 {
781 TRACE_EVENT0("cc", "LayerTreeHostImpl::drawLayers"); 782 TRACE_EVENT0("cc", "LayerTreeHostImpl::drawLayers");
782 DCHECK(canDraw()); 783 DCHECK(canDraw());
783 DCHECK(!frame.renderPasses.empty()); 784 DCHECK(!frame.renderPasses.empty());
784 785
785 // FIXME: use the frame begin time from the overall compositor scheduler. 786 // FIXME: use the frame begin time from the overall compositor scheduler.
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 return false; 981 return false;
981 982
982 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out putSurface.get()); 983 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out putSurface.get());
983 if (!resourceProvider) 984 if (!resourceProvider)
984 return false; 985 return false;
985 986
986 if (m_settings.implSidePainting) 987 if (m_settings.implSidePainting)
987 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin gs.numRasterThreads)); 988 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin gs.numRasterThreads));
988 989
989 if (outputSurface->Capabilities().has_parent_compositor) 990 if (outputSurface->Capabilities().has_parent_compositor)
990 m_renderer = DelegatingRenderer::Create(this, resourceProvider.get()); 991 m_renderer = DelegatingRenderer::Create(this, outputSurface.get(), resou rceProvider.get());
991 else if (outputSurface->Context3D()) 992 else if (outputSurface->Context3D())
992 m_renderer = GLRenderer::create(this, outputSurface.get(), resourceProvi der.get()); 993 m_renderer = GLRenderer::create(this, outputSurface.get(), resourceProvi der.get());
993 else if (outputSurface->SoftwareDevice()) 994 else if (outputSurface->SoftwareDevice())
994 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), outp utSurface->SoftwareDevice()); 995 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), outp utSurface->SoftwareDevice());
995 if (!m_renderer) 996 if (!m_renderer)
996 return false; 997 return false;
997 998
998 setNeedsUpdateDrawProperties(); 999 setNeedsUpdateDrawProperties();
999 m_resourceProvider = resourceProvider.Pass(); 1000 m_resourceProvider = resourceProvider.Pass();
1000 m_outputSurface = outputSurface.Pass(); 1001 m_outputSurface = outputSurface.Pass();
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 } 1640 }
1640 1641
1641 skia::RefPtr<SkPicture> LayerTreeHostImpl::capturePicture() 1642 skia::RefPtr<SkPicture> LayerTreeHostImpl::capturePicture()
1642 { 1643 {
1643 LayerTreeImpl* tree = pendingTree() ? pendingTree() : activeTree(); 1644 LayerTreeImpl* tree = pendingTree() ? pendingTree() : activeTree();
1644 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); 1645 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer());
1645 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); 1646 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>();
1646 } 1647 }
1647 1648
1648 } // namespace cc 1649 } // namespace cc
OLDNEW
« no previous file with comments | « cc/io_surface_draw_quad.cc ('k') | cc/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698