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

Side by Side Diff: Source/core/layout/ClipRectsCache.h

Issue 1307203004: Revert "Reworks the clipping logic" and follow-up. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 3 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef ClipRectsCache_h 5 #ifndef ClipRectsCache_h
6 #define ClipRectsCache_h 6 #define ClipRectsCache_h
7 7
8 #include "core/layout/ClipRects.h" 8 #include "core/layout/ClipRects.h"
9 9
10 #if ENABLE(ASSERT) 10 #if ENABLE(ASSERT)
11 #include "core/layout/LayoutBox.h" // For OverlayScrollbarSizeRelevancy. 11 #include "core/layout/LayoutBox.h" // For OverlayScrollbarSizeRelevancy.
12 #endif 12 #endif
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class DeprecatedPaintLayer; 16 class DeprecatedPaintLayer;
17 17
18 // TODO: Because this is mostly empty, this should be moved to a better place
19 enum ClipRectsCacheSlot { 18 enum ClipRectsCacheSlot {
20 // Relative to the ancestor treated as the root (e.g. transformed layer). Us ed for hit testing. 19 // Relative to the ancestor treated as the root (e.g. transformed layer). Us ed for hit testing.
21 RootRelativeClipRects, 20 RootRelativeClipRects,
22 RootRelativeClipRectsIgnoringViewportClip, 21 RootRelativeClipRectsIgnoringViewportClip,
23 22
24 // Relative to the LayoutView's layer. Used for compositing overlap testing. 23 // Relative to the LayoutView's layer. Used for compositing overlap testing.
25 // Computed during the compositing update step (see CompositingInputsUpdater ::update).
26 AbsoluteClipRects, 24 AbsoluteClipRects,
27 25
28 // Relative to painting ancestor. Used for painting. 26 // Relative to painting ancestor. Used for painting.
29 PaintingClipRects, 27 PaintingClipRects,
30 PaintingClipRectsIgnoringOverflowClip, 28 PaintingClipRectsIgnoringOverflowClip,
31 29
32 NumberOfClipRectsCacheSlots, 30 NumberOfClipRectsCacheSlots,
33 UncachedClipRects, 31 UncachedClipRects,
34 }; 32 };
35 33
34 class ClipRectsCache {
35 WTF_MAKE_FAST_ALLOCATED(ClipRectsCache);
36 public:
37 struct Entry {
38 Entry()
39 : root(nullptr)
40 #if ENABLE(ASSERT)
41 , scrollbarRelevancy(IgnoreOverlayScrollbarSize)
42 #endif
43 {
44 }
45 const DeprecatedPaintLayer* root;
46 RefPtr<ClipRects> clipRects;
47 #if ENABLE(ASSERT)
48 OverlayScrollbarSizeRelevancy scrollbarRelevancy;
49 #endif
50 };
51 Entry& get(ClipRectsCacheSlot slot)
52 {
53 ASSERT(slot < NumberOfClipRectsCacheSlots);
54 return m_entries[slot];
55 }
56 void clear(ClipRectsCacheSlot slot)
57 {
58 ASSERT(slot < NumberOfClipRectsCacheSlots);
59 m_entries[slot] = Entry();
60 }
61 private:
62 Entry m_entries[NumberOfClipRectsCacheSlots];
63 };
64
36 } // namespace blink 65 } // namespace blink
37 66
38 #endif // ClipRectsCache_h 67 #endif // ClipRectsCache_h
OLDNEW
« no previous file with comments | « Source/core/layout/ClipRects.h ('k') | Source/core/layout/compositing/CompositingInputsUpdater.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698