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

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 1314 matching lines...) Expand 10 before | Expand all | Expand 10 after
1396 // |ancestor| itself if |ancestor| scrolls overflow. 1396 // |ancestor| itself if |ancestor| scrolls overflow.
1397 // The output rect is suitable for purposes such as paint invalidation. 1397 // The output rect is suitable for purposes such as paint invalidation.
1398 // 1398 //
1399 // If visualRectFlags has the EdgeInclusive bit set, clipping operations will 1399 // If visualRectFlags has the EdgeInclusive bit set, clipping operations will
1400 // use/ LayoutRect::inclusiveIntersect, and the return value of 1400 // use/ LayoutRect::inclusiveIntersect, and the return value of
1401 // inclusiveIntersect will be propagated to the return value of this method. 1401 // inclusiveIntersect will be propagated to the return value of this method.
1402 // Otherwise, clipping operations will use LayoutRect::intersect, and the 1402 // Otherwise, clipping operations will use LayoutRect::intersect, and the
1403 // return value will be true only if the clipped rect has non-zero area. 1403 // return value will be true only if the clipped rect has non-zero area.
1404 // See the documentation for LayoutRect::inclusiveIntersect for more 1404 // See the documentation for LayoutRect::inclusiveIntersect for more
1405 // information. 1405 // information.
1406 virtual bool mapToVisualRectInAncestorSpace( 1406 bool mapToVisualRectInAncestorSpace(
1407 const LayoutBoxModelObject* ancestor, 1407 const LayoutBoxModelObject* ancestor,
1408 LayoutRect&, 1408 LayoutRect&,
1409 VisualRectFlags = DefaultVisualRectFlags) const; 1409 VisualRectFlags = DefaultVisualRectFlags) const;
1410 1410
1411 // Do not call this method directly. Call mapToVisualRectInAncestorSpace
1412 // instead.
1413 virtual bool mapToVisualRectInAncestorSpaceInternal(
1414 const LayoutBoxModelObject* ancestor,
1415 TransformState&,
1416 VisualRectFlags = DefaultVisualRectFlags) const;
1417
1411 // Allows objects to adjust |visualEffect|, which is in the space of the 1418 // Allows objects to adjust |visualEffect|, which is in the space of the
1412 // paint invalidation container, for any special raster effects that might 1419 // paint invalidation container, for any special raster effects that might
1413 // expand the rastered pixel area. Returns true if the rect is expanded. 1420 // expand the rastered pixel area. Returns true if the rect is expanded.
1414 virtual bool adjustVisualRectForRasterEffects(LayoutRect& visualRect) const { 1421 virtual bool adjustVisualRectForRasterEffects(LayoutRect& visualRect) const {
1415 return false; 1422 return false;
1416 } 1423 }
1417 1424
1418 // Return the offset to the column in which the specified point (in 1425 // Return the offset to the column in which the specified point (in
1419 // flow-thread coordinates) lives. This is used to convert a flow-thread point 1426 // flow-thread coordinates) lives. This is used to convert a flow-thread point
1420 // to a point in the containing coordinate space. 1427 // to a point in the containing coordinate space.
(...skipping 1348 matching lines...) Expand 10 before | Expand all | Expand 10 after
2769 CORE_EXPORT void showLineTree(const blink::LayoutObject*); 2776 CORE_EXPORT void showLineTree(const blink::LayoutObject*);
2770 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); 2777 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1);
2771 // We don't make object2 an optional parameter so that showLayoutTree 2778 // We don't make object2 an optional parameter so that showLayoutTree
2772 // can be called from gdb easily. 2779 // can be called from gdb easily.
2773 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, 2780 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1,
2774 const blink::LayoutObject* object2); 2781 const blink::LayoutObject* object2);
2775 2782
2776 #endif 2783 #endif
2777 2784
2778 #endif // LayoutObject_h 2785 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutInline.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698