| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/canvas2d/CanvasRenderingContext2DState.h" | 5 #include "modules/canvas2d/CanvasRenderingContext2DState.h" |
| 6 | 6 |
| 7 #include "core/css/CSSFontSelector.h" | 7 #include "core/css/CSSFontSelector.h" |
| 8 #include "core/css/resolver/FilterOperationResolver.h" | 8 #include "core/css/resolver/FilterOperationResolver.h" |
| 9 #include "core/css/resolver/StyleBuilder.h" | 9 #include "core/css/resolver/StyleBuilder.h" |
| 10 #include "core/css/resolver/StyleResolverState.h" | 10 #include "core/css/resolver/StyleResolverState.h" |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 | 299 |
| 300 FilterEffectBuilder filter_effect_builder( | 300 FilterEffectBuilder filter_effect_builder( |
| 301 FloatRect((FloatPoint()), FloatSize(canvas_size)), | 301 FloatRect((FloatPoint()), FloatSize(canvas_size)), |
| 302 1.0f, // Deliberately ignore zoom on the canvas element. | 302 1.0f, // Deliberately ignore zoom on the canvas element. |
| 303 &fill_flags_for_filter, &stroke_flags_for_filter); | 303 &fill_flags_for_filter, &stroke_flags_for_filter); |
| 304 | 304 |
| 305 FilterEffect* last_effect = | 305 FilterEffect* last_effect = |
| 306 filter_effect_builder.BuildFilterEffect(operations); | 306 filter_effect_builder.BuildFilterEffect(operations); |
| 307 if (last_effect) { | 307 if (last_effect) { |
| 308 resolved_filter_ = | 308 resolved_filter_ = |
| 309 SkiaImageFilterBuilder::Build(last_effect, kColorSpaceDeviceRGB); | 309 SkiaImageFilterBuilder::Build(last_effect, kInterpolationSpaceSRGB); |
| 310 } | 310 } |
| 311 | 311 |
| 312 return resolved_filter_; | 312 return resolved_filter_; |
| 313 } | 313 } |
| 314 | 314 |
| 315 sk_sp<SkImageFilter> CanvasRenderingContext2DState::GetFilter( | 315 sk_sp<SkImageFilter> CanvasRenderingContext2DState::GetFilter( |
| 316 Element* style_resolution_host, | 316 Element* style_resolution_host, |
| 317 IntSize canvas_size, | 317 IntSize canvas_size, |
| 318 CanvasRenderingContext2D* context) const { | 318 CanvasRenderingContext2D* context) const { |
| 319 if (!filter_value_) | 319 if (!filter_value_) |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 | 352 |
| 353 FilterEffectBuilder filter_effect_builder( | 353 FilterEffectBuilder filter_effect_builder( |
| 354 style_resolution_host, | 354 style_resolution_host, |
| 355 FloatRect((FloatPoint()), FloatSize(canvas_size)), | 355 FloatRect((FloatPoint()), FloatSize(canvas_size)), |
| 356 1.0f, // Deliberately ignore zoom on the canvas element. | 356 1.0f, // Deliberately ignore zoom on the canvas element. |
| 357 &fill_flags_for_filter, &stroke_flags_for_filter); | 357 &fill_flags_for_filter, &stroke_flags_for_filter); |
| 358 | 358 |
| 359 if (FilterEffect* last_effect = | 359 if (FilterEffect* last_effect = |
| 360 filter_effect_builder.BuildFilterEffect(filter_style->Filter())) { | 360 filter_effect_builder.BuildFilterEffect(filter_style->Filter())) { |
| 361 resolved_filter_ = | 361 resolved_filter_ = |
| 362 SkiaImageFilterBuilder::Build(last_effect, kColorSpaceDeviceRGB); | 362 SkiaImageFilterBuilder::Build(last_effect, kInterpolationSpaceSRGB); |
| 363 if (resolved_filter_) { | 363 if (resolved_filter_) { |
| 364 context->UpdateFilterReferences(filter_style->Filter()); | 364 context->UpdateFilterReferences(filter_style->Filter()); |
| 365 if (last_effect->OriginTainted()) | 365 if (last_effect->OriginTainted()) |
| 366 context->SetOriginTainted(); | 366 context->SetOriginTainted(); |
| 367 } | 367 } |
| 368 } | 368 } |
| 369 } | 369 } |
| 370 | 370 |
| 371 return resolved_filter_; | 371 return resolved_filter_; |
| 372 } | 372 } |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 flags->setLooper(0); | 598 flags->setLooper(0); |
| 599 flags->setImageFilter(ShadowAndForegroundImageFilter()); | 599 flags->setImageFilter(ShadowAndForegroundImageFilter()); |
| 600 return flags; | 600 return flags; |
| 601 } | 601 } |
| 602 flags->setLooper(sk_ref_sp(ShadowAndForegroundDrawLooper())); | 602 flags->setLooper(sk_ref_sp(ShadowAndForegroundDrawLooper())); |
| 603 flags->setImageFilter(0); | 603 flags->setImageFilter(0); |
| 604 return flags; | 604 return flags; |
| 605 } | 605 } |
| 606 | 606 |
| 607 } // namespace blink | 607 } // namespace blink |
| OLD | NEW |