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

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 11644008: Migrate from MathUtil::inverse() to gfx::Transform::GetInverse() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 float opacity = 1; 491 float opacity = 1;
492 SharedQuadState* sharedQuadState = quadCuller.useSharedQuadState(SharedQuadS tate::Create()); 492 SharedQuadState* sharedQuadState = quadCuller.useSharedQuadState(SharedQuadS tate::Create());
493 sharedQuadState->SetAll(rootLayer->drawTransform(), 493 sharedQuadState->SetAll(rootLayer->drawTransform(),
494 rootTargetRect, 494 rootTargetRect,
495 rootTargetRect, 495 rootTargetRect,
496 rootTargetRect, 496 rootTargetRect,
497 false, 497 false,
498 opacity); 498 opacity);
499 499
500 AppendQuadsData appendQuadsData; 500 AppendQuadsData appendQuadsData;
501 gfx::Transform transformToLayerSpace = MathUtil::inverse(rootLayer->screenSp aceTransform()); 501 gfx::Transform transformToLayerSpace(gfx::Transform::kSkipInitialization);
502 rootLayer->screenSpaceTransform().GetInverse(&transformToLayerSpace);
danakj 2012/12/19 05:23:06 You can DCHECK the return value here instead of Is
502 for (Region::Iterator fillRects(fillRegion); fillRects.has_rect(); fillRects .next()) { 503 for (Region::Iterator fillRects(fillRegion); fillRects.has_rect(); fillRects .next()) {
503 // The root layer transform is composed of translations and scales only, 504 // The root layer transform is composed of translations and scales only,
504 // no perspective, so mapping is sufficient. 505 // no perspective, so mapping is sufficient.
505 gfx::Rect layerRect = MathUtil::mapClippedRect(transformToLayerSpace, fi llRects.rect()); 506 gfx::Rect layerRect = MathUtil::mapClippedRect(transformToLayerSpace, fi llRects.rect());
506 // Skip the quad culler and just append the quads directly to avoid 507 // Skip the quad culler and just append the quads directly to avoid
507 // occlusion checks. 508 // occlusion checks.
508 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); 509 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
509 quad->SetNew(sharedQuadState, layerRect, screenBackgroundColor); 510 quad->SetNew(sharedQuadState, layerRect, screenBackgroundColor);
510 quadCuller.append(quad.PassAs<DrawQuad>(), appendQuadsData); 511 quadCuller.append(quad.PassAs<DrawQuad>(), appendQuadsData);
511 } 512 }
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 return ScrollStarted; 1302 return ScrollStarted;
1302 } 1303 }
1303 return ScrollIgnored; 1304 return ScrollIgnored;
1304 } 1305 }
1305 1306
1306 static gfx::Vector2dF scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewp ort, LayerImpl& layerImpl, float scaleFromViewportToScreenSpace, gfx::PointF vie wportPoint, gfx::Vector2dF viewportDelta) 1307 static gfx::Vector2dF scrollLayerWithViewportSpaceDelta(PinchZoomViewport* viewp ort, LayerImpl& layerImpl, float scaleFromViewportToScreenSpace, gfx::PointF vie wportPoint, gfx::Vector2dF viewportDelta)
1307 { 1308 {
1308 // Layers with non-invertible screen space transforms should not have passed the scroll hit 1309 // Layers with non-invertible screen space transforms should not have passed the scroll hit
1309 // test in the first place. 1310 // test in the first place.
1310 DCHECK(layerImpl.screenSpaceTransform().IsInvertible()); 1311 DCHECK(layerImpl.screenSpaceTransform().IsInvertible());
1311 gfx::Transform inverseScreenSpaceTransform = MathUtil::inverse(layerImpl.scr eenSpaceTransform()); 1312 gfx::Transform inverseScreenSpaceTransform(gfx::Transform::kSkipInitializati on);
1313 layerImpl.screenSpaceTransform().GetInverse(&inverseScreenSpaceTransform);
danakj 2012/12/19 05:23:06 Can DCHECK here instead of IsInvertible also.
1312 1314
1313 gfx::PointF screenSpacePoint = gfx::ScalePoint(viewportPoint, scaleFromViewp ortToScreenSpace); 1315 gfx::PointF screenSpacePoint = gfx::ScalePoint(viewportPoint, scaleFromViewp ortToScreenSpace);
1314 1316
1315 gfx::Vector2dF screenSpaceDelta = viewportDelta; 1317 gfx::Vector2dF screenSpaceDelta = viewportDelta;
1316 screenSpaceDelta.Scale(scaleFromViewportToScreenSpace); 1318 screenSpaceDelta.Scale(scaleFromViewportToScreenSpace);
1317 1319
1318 // First project the scroll start and end points to local layer space to fin d the scroll delta 1320 // First project the scroll start and end points to local layer space to fin d the scroll delta
1319 // in layer coordinates. 1321 // in layer coordinates.
1320 bool startClipped, endClipped; 1322 bool startClipped, endClipped;
1321 gfx::PointF screenSpaceEndPoint = screenSpacePoint + screenSpaceDelta; 1323 gfx::PointF screenSpaceEndPoint = screenSpacePoint + screenSpaceDelta;
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
1757 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController(); 1759 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController();
1758 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); 1760 double monotonicTime = (time - base::TimeTicks()).InSecondsF();
1759 if (scrollbarController && scrollbarController->animate(monotonicTime)) 1761 if (scrollbarController && scrollbarController->animate(monotonicTime))
1760 m_client->setNeedsRedrawOnImplThread(); 1762 m_client->setNeedsRedrawOnImplThread();
1761 1763
1762 for (size_t i = 0; i < layer->children().size(); ++i) 1764 for (size_t i = 0; i < layer->children().size(); ++i)
1763 animateScrollbarsRecursive(layer->children()[i], time); 1765 animateScrollbarsRecursive(layer->children()[i], time);
1764 } 1766 }
1765 1767
1766 } // namespace cc 1768 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698