OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 for (size_t i = 0; i < operations.size(); ++i) { | 107 for (size_t i = 0; i < operations.size(); ++i) { |
108 const FilterOperation& op = *operations.at(i); | 108 const FilterOperation& op = *operations.at(i); |
109 switch (op.type()) { | 109 switch (op.type()) { |
110 case FilterOperation::REFERENCE: { | 110 case FilterOperation::REFERENCE: { |
111 Filter* referenceFilter = toReferenceFilterOperation(op).getFilter()
; | 111 Filter* referenceFilter = toReferenceFilterOperation(op).getFilter()
; |
112 if (referenceFilter && referenceFilter->lastEffect()) { | 112 if (referenceFilter && referenceFilter->lastEffect()) { |
113 populateSourceGraphicImageFilters(referenceFilter->getSourceGrap
hic(), nullptr, currentColorSpace); | 113 populateSourceGraphicImageFilters(referenceFilter->getSourceGrap
hic(), nullptr, currentColorSpace); |
114 | 114 |
115 FilterEffect* filterEffect = referenceFilter->lastEffect(); | 115 FilterEffect* filterEffect = referenceFilter->lastEffect(); |
116 currentColorSpace = filterEffect->operatingColorSpace(); | 116 currentColorSpace = filterEffect->operatingColorSpace(); |
117 filterEffect->determineFilterPrimitiveSubregion(MapRectForward); | 117 filterEffect->determineMaximumEffectRect(MapRectForward); |
118 filters->appendReferenceFilter(SkiaImageFilterBuilder::build(fil
terEffect, currentColorSpace)); | 118 filters->appendReferenceFilter(SkiaImageFilterBuilder::build(fil
terEffect, currentColorSpace)); |
119 } | 119 } |
120 break; | 120 break; |
121 } | 121 } |
122 case FilterOperation::GRAYSCALE: | 122 case FilterOperation::GRAYSCALE: |
123 case FilterOperation::SEPIA: | 123 case FilterOperation::SEPIA: |
124 case FilterOperation::SATURATE: | 124 case FilterOperation::SATURATE: |
125 case FilterOperation::HUE_ROTATE: { | 125 case FilterOperation::HUE_ROTATE: { |
126 float amount = toBasicColorMatrixFilterOperation(op).amount(); | 126 float amount = toBasicColorMatrixFilterOperation(op).amount(); |
127 switch (op.type()) { | 127 switch (op.type()) { |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 } else { | 208 } else { |
209 maskedInput = input; | 209 maskedInput = input; |
210 } | 210 } |
211 sk_sp<SkImageFilter> flipImageFilter = SkImageFilter::MakeMatrixFilter( | 211 sk_sp<SkImageFilter> flipImageFilter = SkImageFilter::MakeMatrixFilter( |
212 reflection.reflectionMatrix(), kLow_SkFilterQuality, std::move(maskedInp
ut)); | 212 reflection.reflectionMatrix(), kLow_SkFilterQuality, std::move(maskedInp
ut)); |
213 return SkXfermodeImageFilter::Make(nullptr, std::move(flipImageFilter), std:
:move(input), nullptr); | 213 return SkXfermodeImageFilter::Make(nullptr, std::move(flipImageFilter), std:
:move(input), nullptr); |
214 } | 214 } |
215 | 215 |
216 } // namespace SkiaImageFilterBuilder | 216 } // namespace SkiaImageFilterBuilder |
217 } // namespace blink | 217 } // namespace blink |
OLD | NEW |