| 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 |