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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerClipper.h

Issue 2781863005: Account for filter bounds for backgroundRect during PaintLayer painting (Closed)
Patch Set: none Created 3 years, 8 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) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 ClipRects& storeClipRectsInCache(const ClipRectsContext&, 209 ClipRects& storeClipRectsInCache(const ClipRectsContext&,
210 ClipRects* parentClipRects, 210 ClipRects* parentClipRects,
211 const ClipRects&) const; 211 const ClipRects&) const;
212 212
213 void getOrCalculateClipRects(const ClipRectsContext&, ClipRects&) const; 213 void getOrCalculateClipRects(const ClipRectsContext&, ClipRects&) const;
214 214
215 ALWAYS_INLINE bool shouldClipOverflow(const ClipRectsContext&) const; 215 ALWAYS_INLINE bool shouldClipOverflow(const ClipRectsContext&) const;
216 ALWAYS_INLINE bool shouldRespectOverflowClip(const ClipRectsContext&) const; 216 ALWAYS_INLINE bool shouldRespectOverflowClip(const ClipRectsContext&) const;
217 217
218 // Returned clip rect in |output| is in the space of the context's rootLayer. 218 // Returned clip rect in |output| is in the space of the context's rootLayer.
219 ALWAYS_INLINE void calculateClipRectWithGeometryMapper( 219 ALWAYS_INLINE void calculateBackgroundClipRectWithGeometryMapper(
220 const ClipRectsContext&, 220 const ClipRectsContext&,
221 bool isForeground,
222 ClipRect& output) const; 221 ClipRect& output) const;
223 // Mutates the given rect into a rect in the space of the context's 222 ALWAYS_INLINE void calculateForegroundClipRectWithGeometryMapper(
224 // rootLayer. 223 const ClipRectsContext&,
225 ALWAYS_INLINE void mapLocalToRootWithGeometryMapper(const ClipRectsContext&, 224 ClipRect& output) const;
226 LayoutRect&) const; 225
226 ALWAYS_INLINE void initializeCommonClipRectState(
227 const ClipRectsContext&,
228 PropertyTreeState& descendantPropertyTreeState,
229 PropertyTreeState& ancestorPropertyTreeState) const;
230
227 // Same as calculateRects, but using GeometryMapper. 231 // Same as calculateRects, but using GeometryMapper.
228 ALWAYS_INLINE void calculateRectsWithGeometryMapper( 232 ALWAYS_INLINE void calculateRectsWithGeometryMapper(
229 const ClipRectsContext&, 233 const ClipRectsContext&,
230 const LayoutRect& paintDirtyRect, 234 const LayoutRect& paintDirtyRect,
231 LayoutRect& layerBounds, 235 LayoutRect& layerBounds,
232 ClipRect& backgroundRect, 236 ClipRect& backgroundRect,
233 ClipRect& foregroundRect, 237 ClipRect& foregroundRect,
234 const LayoutPoint* offsetFromRoot = 0) const; 238 const LayoutPoint* offsetFromRoot = 0) const;
235 239
236 void ALWAYS_INLINE 240 // Returns the visual rect of m_layer in local space. This includes
237 applyOverflowClipToBackgroundRectWithGeometryMapper(const ClipRectsContext&, 241 // filter effects.
238 ClipRect&) const; 242 ALWAYS_INLINE LayoutRect localVisualRect() const;
239 243
240 const PaintLayer& m_layer; 244 const PaintLayer& m_layer;
241 GeometryMapper* m_geometryMapper; 245 GeometryMapper* m_geometryMapper;
242 246
243 friend class PaintLayerClipperTest; 247 friend class PaintLayerClipperTest;
244 }; 248 };
245 249
246 } // namespace blink 250 } // namespace blink
247 251
248 #endif // LayerClipper_h 252 #endif // LayerClipper_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698