| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 #include "core/paint/BoxReflectionUtils.h" | 74 #include "core/paint/BoxReflectionUtils.h" |
| 75 #include "core/paint/FilterEffectBuilder.h" | 75 #include "core/paint/FilterEffectBuilder.h" |
| 76 #include "core/paint/ObjectPaintInvalidator.h" | 76 #include "core/paint/ObjectPaintInvalidator.h" |
| 77 #include "core/paint/PaintTiming.h" | 77 #include "core/paint/PaintTiming.h" |
| 78 #include "platform/LengthFunctions.h" | 78 #include "platform/LengthFunctions.h" |
| 79 #include "platform/RuntimeEnabledFeatures.h" | 79 #include "platform/RuntimeEnabledFeatures.h" |
| 80 #include "platform/TraceEvent.h" | 80 #include "platform/TraceEvent.h" |
| 81 #include "platform/geometry/FloatPoint3D.h" | 81 #include "platform/geometry/FloatPoint3D.h" |
| 82 #include "platform/geometry/FloatRect.h" | 82 #include "platform/geometry/FloatRect.h" |
| 83 #include "platform/geometry/TransformState.h" | 83 #include "platform/geometry/TransformState.h" |
| 84 #include "platform/graphics/CompositorFilterOperations.h" |
| 84 #include "platform/graphics/filters/Filter.h" | 85 #include "platform/graphics/filters/Filter.h" |
| 85 #include "platform/graphics/filters/SourceGraphic.h" | 86 #include "platform/graphics/filters/SkiaImageFilterBuilder.h" |
| 86 #include "platform/transforms/ScaleTransformOperation.h" | 87 #include "platform/transforms/ScaleTransformOperation.h" |
| 87 #include "platform/transforms/TransformationMatrix.h" | 88 #include "platform/transforms/TransformationMatrix.h" |
| 88 #include "platform/transforms/TranslateTransformOperation.h" | 89 #include "platform/transforms/TranslateTransformOperation.h" |
| 89 #include "public/platform/Platform.h" | |
| 90 #include "wtf/PtrUtil.h" | 90 #include "wtf/PtrUtil.h" |
| 91 #include "wtf/StdLibExtras.h" | 91 #include "wtf/StdLibExtras.h" |
| 92 #include "wtf/allocator/Partitions.h" | 92 #include "wtf/allocator/Partitions.h" |
| 93 #include "wtf/text/CString.h" | 93 #include "wtf/text/CString.h" |
| 94 | 94 |
| 95 namespace blink { | 95 namespace blink { |
| 96 | 96 |
| 97 namespace { | 97 namespace { |
| 98 | 98 |
| 99 static CompositingQueryMode gCompositingQueryMode = | 99 static CompositingQueryMode gCompositingQueryMode = |
| (...skipping 2576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2676 bool PaintLayer::scrollsOverflow() const | 2676 bool PaintLayer::scrollsOverflow() const |
| 2677 { | 2677 { |
| 2678 if (PaintLayerScrollableArea* scrollableArea = this->getScrollableArea()) | 2678 if (PaintLayerScrollableArea* scrollableArea = this->getScrollableArea()) |
| 2679 return scrollableArea->scrollsOverflow(); | 2679 return scrollableArea->scrollsOverflow(); |
| 2680 | 2680 |
| 2681 return false; | 2681 return false; |
| 2682 } | 2682 } |
| 2683 | 2683 |
| 2684 namespace { | 2684 namespace { |
| 2685 | 2685 |
| 2686 FilterOperations computeFilterOperationsHandleReferenceFilters(const FilterOpera
tions& filters, float effectiveZoom, Node* enclosingNode) | 2686 FilterOperations resolveReferenceFilters(const FilterOperations& filters, float
effectiveZoom, Node* enclosingNode) |
| 2687 { | 2687 { |
| 2688 if (filters.hasReferenceFilter()) { | 2688 if (filters.hasReferenceFilter()) { |
| 2689 for (size_t i = 0; i < filters.size(); ++i) { | 2689 for (size_t i = 0; i < filters.size(); ++i) { |
| 2690 FilterOperation* filterOperation = filters.operations().at(i).get(); | 2690 FilterOperation* filterOperation = filters.operations().at(i).get(); |
| 2691 if (filterOperation->type() != FilterOperation::REFERENCE) | 2691 if (filterOperation->type() != FilterOperation::REFERENCE) |
| 2692 continue; | 2692 continue; |
| 2693 ReferenceFilterOperation& referenceOperation = toReferenceFilterOper
ation(*filterOperation); | 2693 ReferenceFilterOperation& referenceOperation = toReferenceFilterOper
ation(*filterOperation); |
| 2694 // FIXME: Cache the Filter if it didn't change. | 2694 // FIXME: Cache the Filter if it didn't change. |
| 2695 Filter* referenceFilter = FilterEffectBuilder::buildReferenceFilter(
referenceOperation, nullptr, nullptr, nullptr, *toElement(enclosingNode), nullpt
r, effectiveZoom); | 2695 Filter* referenceFilter = FilterEffectBuilder::buildReferenceFilter(
referenceOperation, nullptr, nullptr, nullptr, *toElement(enclosingNode), nullpt
r, effectiveZoom); |
| 2696 referenceOperation.setFilter(referenceFilter); | 2696 referenceOperation.setFilter(referenceFilter); |
| 2697 } | 2697 } |
| 2698 } | 2698 } |
| 2699 return filters; | 2699 return filters; |
| 2700 } | 2700 } |
| 2701 | 2701 |
| 2702 } // unnamed namespace | 2702 } // unnamed namespace |
| 2703 | 2703 |
| 2704 FilterOperations PaintLayer::computeFilterOperations(const ComputedStyle& style)
const | 2704 FilterOperations PaintLayer::computeFilterOperations(const ComputedStyle& style)
const |
| 2705 { | 2705 { |
| 2706 FilterOperations filterOperations = style.filter(); | 2706 FilterOperations filterOperations = style.filter(); |
| 2707 if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && layoutObject()->
hasReflection() && layoutObject()->isBox()) { | 2707 if (RuntimeEnabledFeatures::cssBoxReflectFilterEnabled() && layoutObject()->
hasReflection() && layoutObject()->isBox()) { |
| 2708 BoxReflection reflection = boxReflectionForPaintLayer(*this, style); | 2708 BoxReflection reflection = boxReflectionForPaintLayer(*this, style); |
| 2709 filterOperations.operations().append(BoxReflectFilterOperation::create(r
eflection)); | 2709 filterOperations.operations().append(BoxReflectFilterOperation::create(r
eflection)); |
| 2710 } | 2710 } |
| 2711 return computeFilterOperationsHandleReferenceFilters(filterOperations, style
.effectiveZoom(), enclosingNode()); | 2711 return resolveReferenceFilters(filterOperations, style.effectiveZoom(), encl
osingNode()); |
| 2712 } | 2712 } |
| 2713 | 2713 |
| 2714 FilterOperations PaintLayer::computeBackdropFilterOperations(const ComputedStyle
& style) const | 2714 CompositorFilterOperations PaintLayer::createCompositorFilterOperationsForFilter
(const ComputedStyle& style) |
| 2715 { | 2715 { |
| 2716 return computeFilterOperationsHandleReferenceFilters(style.backdropFilter(),
style.effectiveZoom(), enclosingNode()); | 2716 return SkiaImageFilterBuilder::buildFilterOperations(computeFilterOperations
(style)); |
| 2717 } |
| 2718 |
| 2719 CompositorFilterOperations PaintLayer::createCompositorFilterOperationsForBackdr
opFilter(const ComputedStyle& style) |
| 2720 { |
| 2721 FilterOperations operations = resolveReferenceFilters(style.backdropFilter()
, style.effectiveZoom(), enclosingNode()); |
| 2722 return SkiaImageFilterBuilder::buildFilterOperations(operations); |
| 2717 } | 2723 } |
| 2718 | 2724 |
| 2719 PaintLayerFilterInfo& PaintLayer::ensureFilterInfo() | 2725 PaintLayerFilterInfo& PaintLayer::ensureFilterInfo() |
| 2720 { | 2726 { |
| 2721 PaintLayerRareData& rareData = ensureRareData(); | 2727 PaintLayerRareData& rareData = ensureRareData(); |
| 2722 if (!rareData.filterInfo) | 2728 if (!rareData.filterInfo) |
| 2723 rareData.filterInfo = new PaintLayerFilterInfo(this); | 2729 rareData.filterInfo = new PaintLayerFilterInfo(this); |
| 2724 return *rareData.filterInfo; | 2730 return *rareData.filterInfo; |
| 2725 } | 2731 } |
| 2726 | 2732 |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2980 | 2986 |
| 2981 void showLayerTree(const blink::LayoutObject* layoutObject) | 2987 void showLayerTree(const blink::LayoutObject* layoutObject) |
| 2982 { | 2988 { |
| 2983 if (!layoutObject) { | 2989 if (!layoutObject) { |
| 2984 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n"); | 2990 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n"); |
| 2985 return; | 2991 return; |
| 2986 } | 2992 } |
| 2987 showLayerTree(layoutObject->enclosingLayer()); | 2993 showLayerTree(layoutObject->enclosingLayer()); |
| 2988 } | 2994 } |
| 2989 #endif | 2995 #endif |
| OLD | NEW |