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 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 m_renderer->receiveCompositorFrameAck(ack); | 851 m_renderer->receiveCompositorFrameAck(ack); |
852 } | 852 } |
853 | 853 |
854 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*) | 854 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*) |
855 { | 855 { |
856 m_client->onCanDrawStateChanged(canDraw()); | 856 m_client->onCanDrawStateChanged(canDraw()); |
857 } | 857 } |
858 | 858 |
859 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const | 859 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const |
860 { | 860 { |
861 if (!rootScrollLayer()) | |
862 return CompositorFrameMetadata(); | |
863 | |
864 CompositorFrameMetadata metadata; | 861 CompositorFrameMetadata metadata; |
865 metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScroll
Layer()->scrollDelta(); | |
866 if (!m_settings.pageScalePinchZoomEnabled) | |
867 metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.pageScaleFacto
r()); | |
868 metadata.page_scale_factor = m_pinchZoomViewport.totalPageScaleFactor(); | 862 metadata.page_scale_factor = m_pinchZoomViewport.totalPageScaleFactor(); |
869 metadata.viewport_size = m_pinchZoomViewport.bounds().size(); | 863 metadata.viewport_size = m_pinchZoomViewport.bounds().size(); |
870 metadata.root_layer_size = contentSize(); | 864 metadata.root_layer_size = contentSize(); |
871 metadata.min_page_scale_factor = m_pinchZoomViewport.minPageScaleFactor(); | 865 metadata.min_page_scale_factor = m_pinchZoomViewport.minPageScaleFactor(); |
872 metadata.max_page_scale_factor = m_pinchZoomViewport.maxPageScaleFactor(); | 866 metadata.max_page_scale_factor = m_pinchZoomViewport.maxPageScaleFactor(); |
873 | 867 |
| 868 if (!rootScrollLayer()) |
| 869 return metadata; |
| 870 |
| 871 metadata.root_scroll_offset = rootScrollLayer()->scrollOffset() + rootScroll
Layer()->scrollDelta(); |
| 872 if (!m_settings.pageScalePinchZoomEnabled) |
| 873 metadata.root_scroll_offset.Scale(1 / m_pinchZoomViewport.pageScaleFacto
r()); |
| 874 |
874 return metadata; | 875 return metadata; |
875 } | 876 } |
876 | 877 |
877 void LayerTreeHostImpl::drawLayers(FrameData& frame) | 878 void LayerTreeHostImpl::drawLayers(FrameData& frame) |
878 { | 879 { |
879 TRACE_EVENT0("cc", "LayerTreeHostImpl::drawLayers"); | 880 TRACE_EVENT0("cc", "LayerTreeHostImpl::drawLayers"); |
880 DCHECK(canDraw()); | 881 DCHECK(canDraw()); |
881 DCHECK(!frame.renderPasses.isEmpty()); | 882 DCHECK(!frame.renderPasses.isEmpty()); |
882 | 883 |
883 // FIXME: use the frame begin time from the overall compositor scheduler. | 884 // FIXME: use the frame begin time from the overall compositor scheduler. |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1068 return false; | 1069 return false; |
1069 | 1070 |
1070 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out
putSurface.get()); | 1071 scoped_ptr<ResourceProvider> resourceProvider = ResourceProvider::create(out
putSurface.get()); |
1071 if (!resourceProvider) | 1072 if (!resourceProvider) |
1072 return false; | 1073 return false; |
1073 | 1074 |
1074 if (m_settings.implSidePainting) | 1075 if (m_settings.implSidePainting) |
1075 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin
gs.numRasterThreads)); | 1076 m_tileManager.reset(new TileManager(this, resourceProvider.get(), m_settin
gs.numRasterThreads)); |
1076 | 1077 |
1077 if (outputSurface->Capabilities().has_parent_compositor) | 1078 if (outputSurface->Capabilities().has_parent_compositor) |
1078 m_renderer = DelegatingRenderer::Create(this, resourceProvider.get()); | 1079 m_renderer = DelegatingRenderer::Create(this, outputSurface.get(), resou
rceProvider.get()); |
1079 else if (outputSurface->Context3D()) | 1080 else if (outputSurface->Context3D()) |
1080 m_renderer = GLRenderer::create(this, outputSurface.get(), resourceProvi
der.get()); | 1081 m_renderer = GLRenderer::create(this, outputSurface.get(), resourceProvi
der.get()); |
1081 else if (outputSurface->SoftwareDevice()) | 1082 else if (outputSurface->SoftwareDevice()) |
1082 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), outp
utSurface->SoftwareDevice()); | 1083 m_renderer = SoftwareRenderer::create(this, resourceProvider.get(), outp
utSurface->SoftwareDevice()); |
1083 if (!m_renderer) | 1084 if (!m_renderer) |
1084 return false; | 1085 return false; |
1085 | 1086 |
1086 setNeedsUpdateDrawProperties(); | 1087 setNeedsUpdateDrawProperties(); |
1087 m_resourceProvider = resourceProvider.Pass(); | 1088 m_resourceProvider = resourceProvider.Pass(); |
1088 m_outputSurface = outputSurface.Pass(); | 1089 m_outputSurface = outputSurface.Pass(); |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1701 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio
nController(); | 1702 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio
nController(); |
1702 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); | 1703 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); |
1703 if (scrollbarController && scrollbarController->animate(monotonicTime)) | 1704 if (scrollbarController && scrollbarController->animate(monotonicTime)) |
1704 m_client->setNeedsRedrawOnImplThread(); | 1705 m_client->setNeedsRedrawOnImplThread(); |
1705 | 1706 |
1706 for (size_t i = 0; i < layer->children().size(); ++i) | 1707 for (size_t i = 0; i < layer->children().size(); ++i) |
1707 animateScrollbarsRecursive(layer->children()[i], time); | 1708 animateScrollbarsRecursive(layer->children()[i], time); |
1708 } | 1709 } |
1709 | 1710 |
1710 } // namespace cc | 1711 } // namespace cc |
OLD | NEW |