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

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 12045002: Delete zoomed_viewport_offset_ and its users. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add imports for DisabledTest and rebase to 179449 Created 7 years, 10 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
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.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 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 748
749 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*) 749 void LayerTreeHostImpl::OnCanDrawStateChangedForTree(LayerTreeImpl*)
750 { 750 {
751 m_client->onCanDrawStateChanged(canDraw()); 751 m_client->onCanDrawStateChanged(canDraw());
752 } 752 }
753 753
754 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const 754 CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const
755 { 755 {
756 CompositorFrameMetadata metadata; 756 CompositorFrameMetadata metadata;
757 metadata.page_scale_factor = m_pinchZoomViewport.total_page_scale_factor(); 757 metadata.page_scale_factor = m_pinchZoomViewport.total_page_scale_factor();
758 metadata.viewport_size = m_pinchZoomViewport.ZoomedViewport().size(); 758 metadata.viewport_size = activeTree()->ScrollableViewportSize();
759 metadata.root_layer_size = activeTree()->ScrollableSize(); 759 metadata.root_layer_size = activeTree()->ScrollableSize();
760 metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor() ; 760 metadata.min_page_scale_factor = m_pinchZoomViewport.min_page_scale_factor() ;
761 metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor() ; 761 metadata.max_page_scale_factor = m_pinchZoomViewport.max_page_scale_factor() ;
762 if (m_topControlsManager) { 762 if (m_topControlsManager) {
763 metadata.location_bar_offset = gfx::Vector2dF(0.f, m_topControlsManager- >controls_top_offset()); 763 metadata.location_bar_offset = gfx::Vector2dF(0.f, m_topControlsManager- >controls_top_offset());
764 metadata.location_bar_content_translation = gfx::Vector2dF(0.f, m_topCon trolsManager->content_top_offset()); 764 metadata.location_bar_content_translation = gfx::Vector2dF(0.f, m_topCon trolsManager->content_top_offset());
765 } 765 }
766 766
767 if (!rootScrollLayer()) 767 if (!rootScrollLayer())
768 return metadata; 768 return metadata;
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 return; 1158 return;
1159 1159
1160 m_pinchZoomViewport.set_page_scale_delta(delta); 1160 m_pinchZoomViewport.set_page_scale_delta(delta);
1161 1161
1162 updateMaxScrollOffset(); 1162 updateMaxScrollOffset();
1163 activeTree()->set_needs_update_draw_properties(); 1163 activeTree()->set_needs_update_draw_properties();
1164 if (pendingTree()) 1164 if (pendingTree())
1165 pendingTree()->set_needs_update_draw_properties(); 1165 pendingTree()->set_needs_update_draw_properties();
1166 } 1166 }
1167 1167
1168 gfx::Vector2dF LayerTreeHostImpl::scrollPinchZoomViewport(gfx::Vector2dF delta)
1169 {
1170 gfx::Vector2dF overflow = m_pinchZoomViewport.ApplyScroll(delta);
1171 activeTree()->set_needs_update_draw_properties();
1172 if (pendingTree())
1173 pendingTree()->set_needs_update_draw_properties();
1174 return overflow;
1175 }
1176
1177 void LayerTreeHostImpl::updateMaxScrollOffset() 1168 void LayerTreeHostImpl::updateMaxScrollOffset()
1178 { 1169 {
1179 activeTree()->UpdateMaxScrollOffset(); 1170 activeTree()->UpdateMaxScrollOffset();
1180 } 1171 }
1181 1172
1182 void LayerTreeHostImpl::setActiveTreeNeedsUpdateDrawProperties() 1173 void LayerTreeHostImpl::setActiveTreeNeedsUpdateDrawProperties()
1183 { 1174 {
1184 activeTree()->set_needs_update_draw_properties(); 1175 activeTree()->set_needs_update_draw_properties();
1185 } 1176 }
1186 1177
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 return gfx::Vector2dF(); 1273 return gfx::Vector2dF();
1283 1274
1284 // localStartPoint and localEndPoint are in content space but we want to mov e them to layer space for scrolling. 1275 // localStartPoint and localEndPoint are in content space but we want to mov e them to layer space for scrolling.
1285 float widthScale = 1 / layerImpl->contentsScaleX(); 1276 float widthScale = 1 / layerImpl->contentsScaleX();
1286 float heightScale = 1 / layerImpl->contentsScaleY(); 1277 float heightScale = 1 / layerImpl->contentsScaleY();
1287 localStartPoint.Scale(widthScale, heightScale); 1278 localStartPoint.Scale(widthScale, heightScale);
1288 localEndPoint.Scale(widthScale, heightScale); 1279 localEndPoint.Scale(widthScale, heightScale);
1289 1280
1290 // Apply the scroll delta. 1281 // Apply the scroll delta.
1291 gfx::Vector2dF previousDelta = layerImpl->scrollDelta(); 1282 gfx::Vector2dF previousDelta = layerImpl->scrollDelta();
1292 gfx::Vector2dF unscrolled = layerImpl->scrollBy(localEndPoint - localStartPo int); 1283 layerImpl->scrollBy(localEndPoint - localStartPoint);
1293 gfx::Vector2dF scrollAmount = localEndPoint - localStartPoint;
1294
1295 gfx::Vector2dF viewportAppliedPan;
1296 if (m_settings.pageScalePinchZoomEnabled && layerImpl == rootScrollLayer())
1297 viewportAppliedPan = unscrolled - scrollPinchZoomViewport(unscrolled);
1298 1284
1299 // Get the end point in the layer's content space so we can apply its screen SpaceTransform. 1285 // Get the end point in the layer's content space so we can apply its screen SpaceTransform.
1300 gfx::PointF actualLocalEndPoint = localStartPoint + layerImpl->scrollDelta() + viewportAppliedPan - previousDelta; 1286 gfx::PointF actualLocalEndPoint = localStartPoint + layerImpl->scrollDelta() - previousDelta;
1301 gfx::PointF actualLocalContentEndPoint = gfx::ScalePoint(actualLocalEndPoint , 1 / widthScale, 1 / heightScale); 1287 gfx::PointF actualLocalContentEndPoint = gfx::ScalePoint(actualLocalEndPoint , 1 / widthScale, 1 / heightScale);
1302 1288
1303 // Calculate the applied scroll delta in viewport space coordinates. 1289 // Calculate the applied scroll delta in viewport space coordinates.
1304 gfx::PointF actualScreenSpaceEndPoint = MathUtil::mapPoint(layerImpl->screen SpaceTransform(), actualLocalContentEndPoint, endClipped); 1290 gfx::PointF actualScreenSpaceEndPoint = MathUtil::mapPoint(layerImpl->screen SpaceTransform(), actualLocalContentEndPoint, endClipped);
1305 DCHECK(!endClipped); 1291 DCHECK(!endClipped);
1306 if (endClipped) 1292 if (endClipped)
1307 return gfx::Vector2dF(); 1293 return gfx::Vector2dF();
1308 gfx::PointF actualViewportEndPoint = gfx::ScalePoint(actualScreenSpaceEndPoi nt, 1 / scaleFromViewportToScreenSpace); 1294 gfx::PointF actualViewportEndPoint = gfx::ScalePoint(actualScreenSpaceEndPoi nt, 1 / scaleFromViewportToScreenSpace);
1309 return actualViewportEndPoint - viewportPoint; 1295 return actualViewportEndPoint - viewportPoint;
1310 } 1296 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 gfx::PointF newScaleAnchor = gfx::ScalePoint(anchor, 1 / pageScaleDelta); 1392 gfx::PointF newScaleAnchor = gfx::ScalePoint(anchor, 1 / pageScaleDelta);
1407 gfx::Vector2dF move = previousScaleAnchor - newScaleAnchor; 1393 gfx::Vector2dF move = previousScaleAnchor - newScaleAnchor;
1408 1394
1409 m_previousPinchAnchor = anchor; 1395 m_previousPinchAnchor = anchor;
1410 1396
1411 if (m_settings.pageScalePinchZoomEnabled) { 1397 if (m_settings.pageScalePinchZoomEnabled) {
1412 // Compute the application of the delta with respect to the current page zoom of the page. 1398 // Compute the application of the delta with respect to the current page zoom of the page.
1413 move.Scale(1 / m_pinchZoomViewport.page_scale_factor()); 1399 move.Scale(1 / m_pinchZoomViewport.page_scale_factor());
1414 } 1400 }
1415 1401
1416 gfx::Vector2dF scrollOverflow = m_settings.pageScalePinchZoomEnabled ? scrol lPinchZoomViewport(move) : move; 1402 rootScrollLayer()->scrollBy(move);
1417 rootScrollLayer()->scrollBy(scrollOverflow);
1418 1403
1419 if (rootScrollLayer()->scrollbarAnimationController()) 1404 if (rootScrollLayer()->scrollbarAnimationController())
1420 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureUpdate (base::TimeTicks::Now()); 1405 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureUpdate (base::TimeTicks::Now());
1421 1406
1422 m_client->setNeedsCommitOnImplThread(); 1407 m_client->setNeedsCommitOnImplThread();
1423 m_client->setNeedsRedrawOnImplThread(); 1408 m_client->setNeedsRedrawOnImplThread();
1424 m_client->renewTreePriority(); 1409 m_client->renewTreePriority();
1425 } 1410 }
1426 1411
1427 void LayerTreeHostImpl::pinchGestureEnd() 1412 void LayerTreeHostImpl::pinchGestureEnd()
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1486 activeTree()->RootScrollLayer()->setSentScrollDelta(scroll.scrollDelta); 1471 activeTree()->RootScrollLayer()->setSentScrollDelta(scroll.scrollDelta);
1487 scrollInfo->pageScaleDelta = pageScale / m_pinchZoomViewport.page_scale_fact or(); 1472 scrollInfo->pageScaleDelta = pageScale / m_pinchZoomViewport.page_scale_fact or();
1488 m_pinchZoomViewport.set_sent_page_scale_delta(scrollInfo->pageScaleDelta); 1473 m_pinchZoomViewport.set_sent_page_scale_delta(scrollInfo->pageScaleDelta);
1489 } 1474 }
1490 1475
1491 static void collectScrollDeltas(ScrollAndScaleSet* scrollInfo, LayerImpl* layerI mpl) 1476 static void collectScrollDeltas(ScrollAndScaleSet* scrollInfo, LayerImpl* layerI mpl)
1492 { 1477 {
1493 if (!layerImpl) 1478 if (!layerImpl)
1494 return; 1479 return;
1495 1480
1496 if (!layerImpl->scrollDelta().IsZero()) { 1481 gfx::Vector2d scrollDelta = gfx::ToFlooredVector2d(layerImpl->scrollDelta()) ;
1497 gfx::Vector2d scrollDelta = gfx::ToFlooredVector2d(layerImpl->scrollDelt a()); 1482 if (!scrollDelta.IsZero()) {
1498 LayerTreeHostCommon::ScrollUpdateInfo scroll; 1483 LayerTreeHostCommon::ScrollUpdateInfo scroll;
1499 scroll.layerId = layerImpl->id(); 1484 scroll.layerId = layerImpl->id();
1500 scroll.scrollDelta = scrollDelta; 1485 scroll.scrollDelta = scrollDelta;
1501 scrollInfo->scrolls.push_back(scroll); 1486 scrollInfo->scrolls.push_back(scroll);
1502 layerImpl->setSentScrollDelta(scrollDelta); 1487 layerImpl->setSentScrollDelta(scrollDelta);
1503 } 1488 }
1504 1489
1505 for (size_t i = 0; i < layerImpl->children().size(); ++i) 1490 for (size_t i = 0; i < layerImpl->children().size(); ++i)
1506 collectScrollDeltas(scrollInfo, layerImpl->children()[i]); 1491 collectScrollDeltas(scrollInfo, layerImpl->children()[i]);
1507 } 1492 }
1508 1493
1509 scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::processScrollDeltas() 1494 scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::processScrollDeltas()
1510 { 1495 {
1511 scoped_ptr<ScrollAndScaleSet> scrollInfo(new ScrollAndScaleSet()); 1496 scoped_ptr<ScrollAndScaleSet> scrollInfo(new ScrollAndScaleSet());
1512 1497
1513 if (m_pinchGestureActive || m_pageScaleAnimation) { 1498 if (!m_settings.pageScalePinchZoomEnabled && (m_pinchGestureActive || m_page ScaleAnimation)) {
1514 scrollInfo->pageScaleDelta = 1; 1499 scrollInfo->pageScaleDelta = 1;
1515 m_pinchZoomViewport.set_sent_page_scale_delta(1); 1500 m_pinchZoomViewport.set_sent_page_scale_delta(1);
1516 // FIXME(aelias): Make pinch-zoom painting optimization compatible with 1501 if (m_pinchGestureActive)
1517 // compositor-side scaling.
1518 if (!m_settings.pageScalePinchZoomEnabled && m_pinchGestureActive)
1519 computePinchZoomDeltas(scrollInfo.get()); 1502 computePinchZoomDeltas(scrollInfo.get());
1520 else if (m_pageScaleAnimation.get()) 1503 else if (m_pageScaleAnimation.get())
1521 computeDoubleTapZoomDeltas(scrollInfo.get()); 1504 computeDoubleTapZoomDeltas(scrollInfo.get());
1522 return scrollInfo.Pass(); 1505 return scrollInfo.Pass();
1523 } 1506 }
1524 1507
1525 collectScrollDeltas(scrollInfo.get(), rootLayer()); 1508 collectScrollDeltas(scrollInfo.get(), rootLayer());
1526 scrollInfo->pageScaleDelta = m_pinchZoomViewport.page_scale_delta(); 1509 scrollInfo->pageScaleDelta = m_pinchZoomViewport.page_scale_delta();
1527 m_pinchZoomViewport.set_sent_page_scale_delta(scrollInfo->pageScaleDelta); 1510 m_pinchZoomViewport.set_sent_page_scale_delta(scrollInfo->pageScaleDelta);
1528 1511
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
1755 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); 1738 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer());
1756 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); 1739 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>();
1757 } 1740 }
1758 1741
1759 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) 1742 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime)
1760 { 1743 {
1761 m_paintTimeCounter->SavePaintTime(totalPaintTime); 1744 m_paintTimeCounter->SavePaintTime(totalPaintTime);
1762 } 1745 }
1763 1746
1764 } // namespace cc 1747 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698