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

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

Issue 1775013003: Implement -webkit-box-reflect as a filter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase master Created 4 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 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n. 355 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n.
356 LayoutRect physicalBoundingBox(const LayoutPoint& offsetFromRoot) const; 356 LayoutRect physicalBoundingBox(const LayoutPoint& offsetFromRoot) const;
357 LayoutRect physicalBoundingBox(const PaintLayer* ancestorLayer) const; 357 LayoutRect physicalBoundingBox(const PaintLayer* ancestorLayer) const;
358 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const L ayoutPoint& offsetFromRoot) const; 358 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const L ayoutPoint& offsetFromRoot) const;
359 LayoutRect fragmentsBoundingBox(const PaintLayer* ancestorLayer) const; 359 LayoutRect fragmentsBoundingBox(const PaintLayer* ancestorLayer) const;
360 360
361 LayoutRect boundingBoxForCompositingOverlapTest() const; 361 LayoutRect boundingBoxForCompositingOverlapTest() const;
362 362
363 // If true, this layer's children are included in its bounds for overlap tes ting. 363 // If true, this layer's children are included in its bounds for overlap tes ting.
364 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. 364 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around.
365 bool overlapBoundsIncludeChildren() const { return hasFilter() && layoutObje ct()->style()->filter().hasFilterThatMovesPixels(); } 365 bool overlapBoundsIncludeChildren() const;
366 366
367 // MaybeIncludeTransformForAncestorLayer means that a transform on |ancestor Layer| may be applied to the bounding box, 367 // MaybeIncludeTransformForAncestorLayer means that a transform on |ancestor Layer| may be applied to the bounding box,
368 // in particular if paintsWithTransform() is true. 368 // in particular if paintsWithTransform() is true.
369 enum CalculateBoundsOptions { 369 enum CalculateBoundsOptions {
370 MaybeIncludeTransformForAncestorLayer, 370 MaybeIncludeTransformForAncestorLayer,
371 NeverIncludeTransformForAncestorLayer, 371 NeverIncludeTransformForAncestorLayer,
372 }; 372 };
373 LayoutRect boundingBoxForCompositing(const PaintLayer* ancestorLayer = 0, Ca lculateBoundsOptions = MaybeIncludeTransformForAncestorLayer) const; 373 LayoutRect boundingBoxForCompositing(const PaintLayer* ancestorLayer = 0, Ca lculateBoundsOptions = MaybeIncludeTransformForAncestorLayer) const;
374 374
375 LayoutUnit staticInlinePosition() const { return m_staticInlinePosition; } 375 LayoutUnit staticInlinePosition() const { return m_staticInlinePosition; }
(...skipping 21 matching lines...) Expand all
397 TransformationMatrix perspectiveTransform() const; 397 TransformationMatrix perspectiveTransform() const;
398 FloatPoint perspectiveOrigin() const; 398 FloatPoint perspectiveOrigin() const;
399 bool preserves3D() const { return layoutObject()->style()->transformStyle3D( ) == TransformStyle3DPreserve3D; } 399 bool preserves3D() const { return layoutObject()->style()->transformStyle3D( ) == TransformStyle3DPreserve3D; }
400 bool has3DTransform() const { return m_rareData && m_rareData->transform && !m_rareData->transform->isAffine(); } 400 bool has3DTransform() const { return m_rareData && m_rareData->transform && !m_rareData->transform->isAffine(); }
401 401
402 // FIXME: reflections should force transform-style to be flat in the style: https://bugs.webkit.org/show_bug.cgi?id=106959 402 // FIXME: reflections should force transform-style to be flat in the style: https://bugs.webkit.org/show_bug.cgi?id=106959
403 bool shouldPreserve3D() const { return !layoutObject()->hasReflection() && l ayoutObject()->style()->transformStyle3D() == TransformStyle3DPreserve3D; } 403 bool shouldPreserve3D() const { return !layoutObject()->hasReflection() && l ayoutObject()->style()->transformStyle3D() == TransformStyle3DPreserve3D; }
404 404
405 void filterNeedsPaintInvalidation(); 405 void filterNeedsPaintInvalidation();
406 bool hasFilter() const { return layoutObject()->hasFilter(); } 406 bool hasFilter() const { return layoutObject()->hasFilter(); }
407 bool hasFilterInducingProperty() const { return layoutObject()->hasFilterInd ucingProperty(); }
407 408
408 void* operator new(size_t); 409 void* operator new(size_t);
409 // Only safe to call from LayoutBoxModelObject::destroyLayer() 410 // Only safe to call from LayoutBoxModelObject::destroyLayer()
410 void operator delete(void*); 411 void operator delete(void*);
411 412
412 CompositingState compositingState() const; 413 CompositingState compositingState() const;
413 414
414 // This returns true if our document is in a phase of its lifestyle during w hich 415 // This returns true if our document is in a phase of its lifestyle during w hich
415 // compositing state may legally be read. 416 // compositing state may legally be read.
416 bool isAllowedToQueryCompositingState() const; 417 bool isAllowedToQueryCompositingState() const;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 458 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
458 459
459 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; } 460 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; }
460 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; } 461 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; }
461 462
462 FilterOperations computeFilterOperations(const ComputedStyle&) const; 463 FilterOperations computeFilterOperations(const ComputedStyle&) const;
463 FilterOperations computeBackdropFilterOperations(const ComputedStyle&) const ; 464 FilterOperations computeBackdropFilterOperations(const ComputedStyle&) const ;
464 bool paintsWithFilters() const; 465 bool paintsWithFilters() const;
465 bool paintsWithBackdropFilters() const; 466 bool paintsWithBackdropFilters() const;
466 FilterEffect* lastFilterEffect() const; 467 FilterEffect* lastFilterEffect() const;
468 bool hasFilterOutsets() const;
467 FilterOutsets filterOutsets() const; 469 FilterOutsets filterOutsets() const;
468 470
469 PaintLayerFilterInfo* filterInfo() const { return hasFilterInfo() ? PaintLay erFilterInfo::filterInfoForLayer(this) : 0; } 471 PaintLayerFilterInfo* filterInfo() const { return hasFilterInfo() ? PaintLay erFilterInfo::filterInfoForLayer(this) : 0; }
470 PaintLayerFilterInfo* ensureFilterInfo() { return PaintLayerFilterInfo::crea teFilterInfoForLayerIfNeeded(this); } 472 PaintLayerFilterInfo* ensureFilterInfo() { return PaintLayerFilterInfo::crea teFilterInfoForLayerIfNeeded(this); }
471 void removeFilterInfoIfNeeded() 473 void removeFilterInfoIfNeeded()
472 { 474 {
473 if (hasFilterInfo()) 475 if (hasFilterInfo())
474 PaintLayerFilterInfo::removeFilterInfoForLayer(this); 476 PaintLayerFilterInfo::removeFilterInfoForLayer(this);
475 } 477 }
476 478
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 868
867 } // namespace blink 869 } // namespace blink
868 870
869 #ifndef NDEBUG 871 #ifndef NDEBUG
870 // Outside the WebCore namespace for ease of invocation from gdb. 872 // Outside the WebCore namespace for ease of invocation from gdb.
871 void showLayerTree(const blink::PaintLayer*); 873 void showLayerTree(const blink::PaintLayer*);
872 void showLayerTree(const blink::LayoutObject*); 874 void showLayerTree(const blink::LayoutObject*);
873 #endif 875 #endif
874 876
875 #endif // Layer_h 877 #endif // Layer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698