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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 1777613002: Add localToAbsoluteTransform and localToAncestorTransform. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 2400 matching lines...) Expand 10 before | Expand all | Expand 10 after
2411 LayoutRect containerRect = LayoutRect(containerQuad.boundingBox()); 2411 LayoutRect containerRect = LayoutRect(containerQuad.boundingBox());
2412 if (containerRect.isEmpty()) { 2412 if (containerRect.isEmpty()) {
2413 rects.remove(i--); 2413 rects.remove(i--);
2414 continue; 2414 continue;
2415 } 2415 }
2416 containerRect.moveBy(postOffset); 2416 containerRect.moveBy(postOffset);
2417 rects[i] = containerRect; 2417 rects[i] = containerRect;
2418 } 2418 }
2419 } 2419 }
2420 2420
2421 TransformationMatrix LayoutObject::localToAncestorTransform(const LayoutBoxModel Object* ancestor, MapCoordinatesFlags mode, bool* wasFixed) const
2422 {
2423 TransformState transformState(TransformState::ApplyTransformDirection);
2424 mapLocalToAncestor(ancestor, transformState, mode | ApplyContainerFlip | Use Transforms, wasFixed);
2425 return transformState.accumulatedTransform();
2426 }
2427
2421 FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& loca lPoint, PaintLayer** backingLayer) 2428 FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& loca lPoint, PaintLayer** backingLayer)
2422 { 2429 {
2423 const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintIn validation(); 2430 const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintIn validation();
2424 ASSERT(paintInvalidationContainer.layer()); 2431 ASSERT(paintInvalidationContainer.layer());
2425 2432
2426 if (backingLayer) 2433 if (backingLayer)
2427 *backingLayer = paintInvalidationContainer.layer(); 2434 *backingLayer = paintInvalidationContainer.layer();
2428 FloatPoint containerPoint = localToAncestorPoint(FloatPoint(localPoint), &pa intInvalidationContainer, TraverseDocumentBoundaries); 2435 FloatPoint containerPoint = localToAncestorPoint(FloatPoint(localPoint), &pa intInvalidationContainer, TraverseDocumentBoundaries);
2429 2436
2430 // A layoutObject can have no invalidation backing if it is from a detached frame, 2437 // A layoutObject can have no invalidation backing if it is from a detached frame,
(...skipping 1300 matching lines...) Expand 10 before | Expand all | Expand 10 after
3731 const blink::LayoutObject* root = object1; 3738 const blink::LayoutObject* root = object1;
3732 while (root->parent()) 3739 while (root->parent())
3733 root = root->parent(); 3740 root = root->parent();
3734 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3741 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3735 } else { 3742 } else {
3736 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3743 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3737 } 3744 }
3738 } 3745 }
3739 3746
3740 #endif 3747 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698