OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |