| 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 2705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2716 FilterOperations RenderLayer::computeFilterOperations(const RenderStyle* style) | 2716 FilterOperations RenderLayer::computeFilterOperations(const RenderStyle* style) |
| 2717 { | 2717 { |
| 2718 const FilterOperations& filters = style->filter(); | 2718 const FilterOperations& filters = style->filter(); |
| 2719 if (filters.hasReferenceFilter()) { | 2719 if (filters.hasReferenceFilter()) { |
| 2720 for (size_t i = 0; i < filters.size(); ++i) { | 2720 for (size_t i = 0; i < filters.size(); ++i) { |
| 2721 FilterOperation* filterOperation = filters.operations().at(i).get(); | 2721 FilterOperation* filterOperation = filters.operations().at(i).get(); |
| 2722 if (filterOperation->type() != FilterOperation::REFERENCE) | 2722 if (filterOperation->type() != FilterOperation::REFERENCE) |
| 2723 continue; | 2723 continue; |
| 2724 ReferenceFilterOperation* referenceOperation = toReferenceFilterOper
ation(filterOperation); | 2724 ReferenceFilterOperation* referenceOperation = toReferenceFilterOper
ation(filterOperation); |
| 2725 // FIXME: Cache the ReferenceFilter if it didn't change. | 2725 // FIXME: Cache the ReferenceFilter if it didn't change. |
| 2726 RefPtr<ReferenceFilter> referenceFilter = ReferenceFilter::create(st
yle->effectiveZoom()); | 2726 RefPtrWillBeRawPtr<ReferenceFilter> referenceFilter = ReferenceFilte
r::create(style->effectiveZoom()); |
| 2727 referenceFilter->setLastEffect(ReferenceFilterBuilder::build(referen
ceFilter.get(), renderer(), referenceFilter->sourceGraphic(), | 2727 referenceFilter->setLastEffect(ReferenceFilterBuilder::build(referen
ceFilter.get(), renderer(), referenceFilter->sourceGraphic(), |
| 2728 referenceOperation)); | 2728 referenceOperation)); |
| 2729 referenceOperation->setFilter(referenceFilter.release()); | 2729 referenceOperation->setFilter(referenceFilter.release()); |
| 2730 } | 2730 } |
| 2731 } | 2731 } |
| 2732 | 2732 |
| 2733 return filters; | 2733 return filters; |
| 2734 } | 2734 } |
| 2735 | 2735 |
| 2736 void RenderLayer::updateOrRemoveFilterClients() | 2736 void RenderLayer::updateOrRemoveFilterClients() |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2755 // Don't delete the whole filter info here, because we might use it | 2755 // Don't delete the whole filter info here, because we might use it |
| 2756 // for loading CSS shader files. | 2756 // for loading CSS shader files. |
| 2757 if (RenderLayerFilterInfo* filterInfo = this->filterInfo()) | 2757 if (RenderLayerFilterInfo* filterInfo = this->filterInfo()) |
| 2758 filterInfo->setRenderer(nullptr); | 2758 filterInfo->setRenderer(nullptr); |
| 2759 | 2759 |
| 2760 return; | 2760 return; |
| 2761 } | 2761 } |
| 2762 | 2762 |
| 2763 RenderLayerFilterInfo* filterInfo = ensureFilterInfo(); | 2763 RenderLayerFilterInfo* filterInfo = ensureFilterInfo(); |
| 2764 if (!filterInfo->renderer()) { | 2764 if (!filterInfo->renderer()) { |
| 2765 RefPtr<FilterEffectRenderer> filterRenderer = FilterEffectRenderer::crea
te(); | 2765 RefPtrWillBeRawPtr<FilterEffectRenderer> filterRenderer = FilterEffectRe
nderer::create(); |
| 2766 filterInfo->setRenderer(filterRenderer.release()); | 2766 filterInfo->setRenderer(filterRenderer.release()); |
| 2767 } | 2767 } |
| 2768 | 2768 |
| 2769 // If the filter fails to build, remove it from the layer. It will still att
empt to | 2769 // If the filter fails to build, remove it from the layer. It will still att
empt to |
| 2770 // go through regular processing (e.g. compositing), but never apply anythin
g. | 2770 // go through regular processing (e.g. compositing), but never apply anythin
g. |
| 2771 if (!filterInfo->renderer()->build(renderer(), computeFilterOperations(rende
rer()->style()))) | 2771 if (!filterInfo->renderer()->build(renderer(), computeFilterOperations(rende
rer()->style()))) |
| 2772 filterInfo->setRenderer(nullptr); | 2772 filterInfo->setRenderer(nullptr); |
| 2773 } | 2773 } |
| 2774 | 2774 |
| 2775 void RenderLayer::filterNeedsPaintInvalidation() | 2775 void RenderLayer::filterNeedsPaintInvalidation() |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2854 } | 2854 } |
| 2855 } | 2855 } |
| 2856 | 2856 |
| 2857 void showLayerTree(const blink::RenderObject* renderer) | 2857 void showLayerTree(const blink::RenderObject* renderer) |
| 2858 { | 2858 { |
| 2859 if (!renderer) | 2859 if (!renderer) |
| 2860 return; | 2860 return; |
| 2861 showLayerTree(renderer->enclosingLayer()); | 2861 showLayerTree(renderer->enclosingLayer()); |
| 2862 } | 2862 } |
| 2863 #endif | 2863 #endif |
| OLD | NEW |