| 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::transformColorSpace( | 79 PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::transformColorSpace( |
| 80 SkImageFilter* input, ColorSpace srcColorSpace, ColorSpace dstColorSpace) { | 80 SkImageFilter* input, ColorSpace srcColorSpace, ColorSpace dstColorSpace) { |
| 81 | 81 |
| 82 RefPtr<SkColorFilter> colorFilter = ImageBuffer::createColorSpaceFilter(srcC
olorSpace, dstColorSpace); | 82 RefPtr<SkColorFilter> colorFilter = ImageBuffer::createColorSpaceFilter(srcC
olorSpace, dstColorSpace); |
| 83 if (!colorFilter) | 83 if (!colorFilter) |
| 84 return input; | 84 return input; |
| 85 | 85 |
| 86 return adoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), input)); | 86 return adoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), input)); |
| 87 } | 87 } |
| 88 | 88 |
| 89 void SkiaImageFilterBuilder::buildFilterOperations(const FilterOperations& opera
tions, blink::WebFilterOperations* filters) | 89 void SkiaImageFilterBuilder::buildFilterOperations(const FilterOperations& opera
tions, WebFilterOperations* filters) |
| 90 { | 90 { |
| 91 ColorSpace currentColorSpace = ColorSpaceDeviceRGB; | 91 ColorSpace currentColorSpace = ColorSpaceDeviceRGB; |
| 92 SkImageFilter* const nullFilter = 0; | 92 SkImageFilter* const nullFilter = 0; |
| 93 | 93 |
| 94 for (size_t i = 0; i < operations.size(); ++i) { | 94 for (size_t i = 0; i < operations.size(); ++i) { |
| 95 const FilterOperation& op = *operations.at(i); | 95 const FilterOperation& op = *operations.at(i); |
| 96 switch (op.type()) { | 96 switch (op.type()) { |
| 97 case FilterOperation::REFERENCE: { | 97 case FilterOperation::REFERENCE: { |
| 98 RefPtr<SkImageFilter> filter; | 98 RefPtr<SkImageFilter> filter; |
| 99 ReferenceFilter* referenceFilter = toReferenceFilterOperation(op).fi
lter(); | 99 ReferenceFilter* referenceFilter = toReferenceFilterOperation(op).fi
lter(); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 } | 165 } |
| 166 break; | 166 break; |
| 167 } | 167 } |
| 168 case FilterOperation::BLUR: { | 168 case FilterOperation::BLUR: { |
| 169 float pixelRadius = toBlurFilterOperation(op).stdDeviation().getFloa
tValue(); | 169 float pixelRadius = toBlurFilterOperation(op).stdDeviation().getFloa
tValue(); |
| 170 filters->appendBlurFilter(pixelRadius); | 170 filters->appendBlurFilter(pixelRadius); |
| 171 break; | 171 break; |
| 172 } | 172 } |
| 173 case FilterOperation::DROP_SHADOW: { | 173 case FilterOperation::DROP_SHADOW: { |
| 174 const DropShadowFilterOperation& drop = toDropShadowFilterOperation(
op); | 174 const DropShadowFilterOperation& drop = toDropShadowFilterOperation(
op); |
| 175 filters->appendDropShadowFilter(blink::WebPoint(drop.x(), drop.y()),
drop.stdDeviation(), drop.color().rgb()); | 175 filters->appendDropShadowFilter(WebPoint(drop.x(), drop.y()), drop.s
tdDeviation(), drop.color().rgb()); |
| 176 break; | 176 break; |
| 177 } | 177 } |
| 178 case FilterOperation::NONE: | 178 case FilterOperation::NONE: |
| 179 break; | 179 break; |
| 180 } | 180 } |
| 181 } | 181 } |
| 182 if (currentColorSpace != ColorSpaceDeviceRGB) { | 182 if (currentColorSpace != ColorSpaceDeviceRGB) { |
| 183 // Transform to device color space at the end of processing, if required | 183 // Transform to device color space at the end of processing, if required |
| 184 RefPtr<SkImageFilter> filter = transformColorSpace(nullFilter, currentCo
lorSpace, ColorSpaceDeviceRGB); | 184 RefPtr<SkImageFilter> filter = transformColorSpace(nullFilter, currentCo
lorSpace, ColorSpaceDeviceRGB); |
| 185 filters->appendReferenceFilter(filter.get()); | 185 filters->appendReferenceFilter(filter.get()); |
| 186 } | 186 } |
| 187 } | 187 } |
| 188 | 188 |
| 189 PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildTransform(const AffineTra
nsform& transform, SkImageFilter* input) | 189 PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildTransform(const AffineTra
nsform& transform, SkImageFilter* input) |
| 190 { | 190 { |
| 191 return adoptRef(SkMatrixImageFilter::Create(affineTransformToSkMatrix(transf
orm), SkPaint::kHigh_FilterLevel, input)); | 191 return adoptRef(SkMatrixImageFilter::Create(affineTransformToSkMatrix(transf
orm), SkPaint::kHigh_FilterLevel, input)); |
| 192 } | 192 } |
| 193 | 193 |
| 194 }; | 194 } // namespace blink |
| OLD | NEW |