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

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: nits 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
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 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698