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

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

Issue 2727093002: Account for perspective and preserve-3d in mapToVisualRectInAncestorSpace (Closed)
Patch Set: none Created 3 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 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) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2009 Google Inc. All rights reserved. 8 * Copyright (C) 2009 Google Inc. All rights reserved.
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 27 matching lines...) Expand all
38 #include "core/layout/SubtreeLayoutScope.h" 38 #include "core/layout/SubtreeLayoutScope.h"
39 #include "core/layout/api/HitTestAction.h" 39 #include "core/layout/api/HitTestAction.h"
40 #include "core/layout/api/SelectionState.h" 40 #include "core/layout/api/SelectionState.h"
41 #include "core/layout/compositing/CompositingState.h" 41 #include "core/layout/compositing/CompositingState.h"
42 #include "core/loader/resource/ImageResourceObserver.h" 42 #include "core/loader/resource/ImageResourceObserver.h"
43 #include "core/paint/LayerHitTestRects.h" 43 #include "core/paint/LayerHitTestRects.h"
44 #include "core/paint/PaintPhase.h" 44 #include "core/paint/PaintPhase.h"
45 #include "core/style/ComputedStyle.h" 45 #include "core/style/ComputedStyle.h"
46 #include "platform/geometry/FloatQuad.h" 46 #include "platform/geometry/FloatQuad.h"
47 #include "platform/geometry/LayoutRect.h" 47 #include "platform/geometry/LayoutRect.h"
48 #include "platform/geometry/TransformState.h"
48 #include "platform/graphics/CompositingReasons.h" 49 #include "platform/graphics/CompositingReasons.h"
49 #include "platform/graphics/PaintInvalidationReason.h" 50 #include "platform/graphics/PaintInvalidationReason.h"
50 #include "platform/graphics/paint/DisplayItemClient.h" 51 #include "platform/graphics/paint/DisplayItemClient.h"
51 #include "platform/transforms/TransformationMatrix.h" 52 #include "platform/transforms/TransformationMatrix.h"
52 #include "wtf/AutoReset.h" 53 #include "wtf/AutoReset.h"
53 54
54 namespace blink { 55 namespace blink {
55 56
56 class AffineTransform; 57 class AffineTransform;
57 class Cursor; 58 class Cursor;
58 class HitTestLocation; 59 class HitTestLocation;
59 class HitTestRequest; 60 class HitTestRequest;
60 class HitTestResult; 61 class HitTestResult;
61 class InlineBox; 62 class InlineBox;
62 class LayoutBoxModelObject; 63 class LayoutBoxModelObject;
63 class LayoutBlock; 64 class LayoutBlock;
64 class LayoutFlowThread; 65 class LayoutFlowThread;
65 class LayoutGeometryMap; 66 class LayoutGeometryMap;
66 class LayoutMultiColumnSpannerPlaceholder; 67 class LayoutMultiColumnSpannerPlaceholder;
67 class LayoutView; 68 class LayoutView;
68 class ObjectPaintProperties; 69 class ObjectPaintProperties;
69 class PaintLayer; 70 class PaintLayer;
70 class PseudoStyleRequest; 71 class PseudoStyleRequest;
71 class TransformState;
72 72
73 struct PaintInfo; 73 struct PaintInfo;
74 struct PaintInvalidatorContext; 74 struct PaintInvalidatorContext;
75 75
76 enum CursorDirective { SetCursorBasedOnStyle, SetCursor, DoNotSetCursor }; 76 enum CursorDirective { SetCursorBasedOnStyle, SetCursor, DoNotSetCursor };
77 77
78 enum HitTestFilter { HitTestAll, HitTestSelf, HitTestDescendants }; 78 enum HitTestFilter { HitTestAll, HitTestSelf, HitTestDescendants };
79 79
80 enum MarkingBehavior { 80 enum MarkingBehavior {
81 MarkOnlyThis, 81 MarkOnlyThis,
(...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after
1395 // |ancestor| itself if |ancestor| scrolls overflow. 1395 // |ancestor| itself if |ancestor| scrolls overflow.
1396 // The output rect is suitable for purposes such as paint invalidation. 1396 // The output rect is suitable for purposes such as paint invalidation.
1397 // 1397 //
1398 // If visualRectFlags has the EdgeInclusive bit set, clipping operations will 1398 // If visualRectFlags has the EdgeInclusive bit set, clipping operations will
1399 // use/ LayoutRect::inclusiveIntersect, and the return value of 1399 // use/ LayoutRect::inclusiveIntersect, and the return value of
1400 // inclusiveIntersect will be propagated to the return value of this method. 1400 // inclusiveIntersect will be propagated to the return value of this method.
1401 // Otherwise, clipping operations will use LayoutRect::intersect, and the 1401 // Otherwise, clipping operations will use LayoutRect::intersect, and the
1402 // return value will be true only if the clipped rect has non-zero area. 1402 // return value will be true only if the clipped rect has non-zero area.
1403 // See the documentation for LayoutRect::inclusiveIntersect for more 1403 // See the documentation for LayoutRect::inclusiveIntersect for more
1404 // information. 1404 // information.
1405 virtual bool mapToVisualRectInAncestorSpace( 1405 bool mapToVisualRectInAncestorSpace(
1406 const LayoutBoxModelObject* ancestor, 1406 const LayoutBoxModelObject* ancestor,
1407 LayoutRect&, 1407 LayoutRect&,
1408 VisualRectFlags = DefaultVisualRectFlags) const; 1408 VisualRectFlags = DefaultVisualRectFlags) const;
1409 1409
1410 // Do not call this method directly. Call mapToVisualRectInAncestorSpace
1411 // instead.
1412 virtual bool mapToVisualRectInAncestorSpaceInternal(
1413 const LayoutBoxModelObject* ancestor,
1414 TransformState&,
1415 VisualRectFlags = DefaultVisualRectFlags) const;
1416
1410 // Allows objects to adjust |visualEffect|, which is in the space of the 1417 // Allows objects to adjust |visualEffect|, which is in the space of the
1411 // paint invalidation container, for any special raster effects that might 1418 // paint invalidation container, for any special raster effects that might
1412 // expand the rastered pixel area. Returns true if the rect is expanded. 1419 // expand the rastered pixel area. Returns true if the rect is expanded.
1413 virtual bool adjustVisualRectForRasterEffects(LayoutRect& visualRect) const { 1420 virtual bool adjustVisualRectForRasterEffects(LayoutRect& visualRect) const {
1414 return false; 1421 return false;
1415 } 1422 }
1416 1423
1417 // Return the offset to the column in which the specified point (in 1424 // Return the offset to the column in which the specified point (in
1418 // flow-thread coordinates) lives. This is used to convert a flow-thread point 1425 // flow-thread coordinates) lives. This is used to convert a flow-thread point
1419 // to a point in the containing coordinate space. 1426 // to a point in the containing coordinate space.
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
2774 CORE_EXPORT void showLineTree(const blink::LayoutObject*); 2781 CORE_EXPORT void showLineTree(const blink::LayoutObject*);
2775 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); 2782 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1);
2776 // We don't make object2 an optional parameter so that showLayoutTree 2783 // We don't make object2 an optional parameter so that showLayoutTree
2777 // can be called from gdb easily. 2784 // can be called from gdb easily.
2778 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, 2785 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1,
2779 const blink::LayoutObject* object2); 2786 const blink::LayoutObject* object2);
2780 2787
2781 #endif 2788 #endif
2782 2789
2783 #endif // LayoutObject_h 2790 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698