| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "modules/canvas2d/CanvasRenderingContext2DState.h" | 7 #include "modules/canvas2d/CanvasRenderingContext2DState.h" |
| 8 | 8 |
| 9 #include "core/css/CSSFontSelector.h" | 9 #include "core/css/CSSFontSelector.h" |
| 10 #include "core/css/resolver/FilterOperationResolver.h" | 10 #include "core/css/resolver/FilterOperationResolver.h" |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 if (!m_resolvedFilter) { | 334 if (!m_resolvedFilter) { |
| 335 RefPtr<ComputedStyle> filterStyle = ComputedStyle::create(); | 335 RefPtr<ComputedStyle> filterStyle = ComputedStyle::create(); |
| 336 // Must set font in case the filter uses any font-relative units (em, ex
) | 336 // Must set font in case the filter uses any font-relative units (em, ex
) |
| 337 filterStyle->setFont(font); | 337 filterStyle->setFont(font); |
| 338 | 338 |
| 339 StyleResolverState resolverState(styleResolutionHost->document(), styleR
esolutionHost, filterStyle.get()); | 339 StyleResolverState resolverState(styleResolutionHost->document(), styleR
esolutionHost, filterStyle.get()); |
| 340 resolverState.setStyle(filterStyle); | 340 resolverState.setStyle(filterStyle); |
| 341 | 341 |
| 342 // TODO(junov): crbug.com/502877 Feed m_fillStyle and m_strokeStyle into
FillPaint and | 342 // TODO(junov): crbug.com/502877 Feed m_fillStyle and m_strokeStyle into
FillPaint and |
| 343 // StrokePaint respectively for filters that reference SVG. | 343 // StrokePaint respectively for filters that reference SVG. |
| 344 StyleBuilder::applyProperty(CSSPropertyWebkitFilter, resolverState, m_fi
lterValue.get()); | 344 StyleBuilder::applyProperty(CSSPropertyWebkitFilter, resolverState, *m_f
ilterValue); |
| 345 RefPtrWillBeRawPtr<FilterEffectBuilder> filterEffectBuilder = FilterEffe
ctBuilder::create(); | 345 RefPtrWillBeRawPtr<FilterEffectBuilder> filterEffectBuilder = FilterEffe
ctBuilder::create(); |
| 346 const float effectiveZoom = 1.0f; // Deliberately ignore zoom on the can
vas element | 346 const float effectiveZoom = 1.0f; // Deliberately ignore zoom on the can
vas element |
| 347 filterEffectBuilder->build(styleResolutionHost, filterStyle->filter(), e
ffectiveZoom); | 347 filterEffectBuilder->build(styleResolutionHost, filterStyle->filter(), e
ffectiveZoom); |
| 348 | 348 |
| 349 SkiaImageFilterBuilder imageFilterBuilder; | 349 SkiaImageFilterBuilder imageFilterBuilder; |
| 350 RefPtrWillBeRawPtr<FilterEffect> lastEffect = filterEffectBuilder->lastE
ffect(); | 350 RefPtrWillBeRawPtr<FilterEffect> lastEffect = filterEffectBuilder->lastE
ffect(); |
| 351 m_resolvedFilter = imageFilterBuilder.build(lastEffect.get(), ColorSpace
DeviceRGB); | 351 m_resolvedFilter = imageFilterBuilder.build(lastEffect.get(), ColorSpace
DeviceRGB); |
| 352 } | 352 } |
| 353 | 353 |
| 354 return m_resolvedFilter.get(); | 354 return m_resolvedFilter.get(); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 m_shadowBlur = shadowBlur; | 427 m_shadowBlur = shadowBlur; |
| 428 shadowParameterChanged(); | 428 shadowParameterChanged(); |
| 429 } | 429 } |
| 430 | 430 |
| 431 void CanvasRenderingContext2DState::setShadowColor(SkColor shadowColor) | 431 void CanvasRenderingContext2DState::setShadowColor(SkColor shadowColor) |
| 432 { | 432 { |
| 433 m_shadowColor = shadowColor; | 433 m_shadowColor = shadowColor; |
| 434 shadowParameterChanged(); | 434 shadowParameterChanged(); |
| 435 } | 435 } |
| 436 | 436 |
| 437 void CanvasRenderingContext2DState::setFilter(PassRefPtrWillBeRawPtr<CSSValue> f
ilterValue) | 437 void CanvasRenderingContext2DState::setFilter(CSSValue filterValue) |
| 438 { | 438 { |
| 439 m_filterValue = filterValue; | 439 m_filterValue = filterValue; |
| 440 m_resolvedFilter.clear(); | 440 m_resolvedFilter.clear(); |
| 441 } | 441 } |
| 442 | 442 |
| 443 void CanvasRenderingContext2DState::setGlobalComposite(SkXfermode::Mode mode) | 443 void CanvasRenderingContext2DState::setGlobalComposite(SkXfermode::Mode mode) |
| 444 { | 444 { |
| 445 m_strokePaint.setXfermodeMode(mode); | 445 m_strokePaint.setXfermodeMode(mode); |
| 446 m_fillPaint.setXfermodeMode(mode); | 446 m_fillPaint.setXfermodeMode(mode); |
| 447 m_imagePaint.setXfermodeMode(mode); | 447 m_imagePaint.setXfermodeMode(mode); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 paint->setLooper(0); | 523 paint->setLooper(0); |
| 524 paint->setImageFilter(shadowAndForegroundImageFilter()); | 524 paint->setImageFilter(shadowAndForegroundImageFilter()); |
| 525 return paint; | 525 return paint; |
| 526 } | 526 } |
| 527 paint->setLooper(shadowAndForegroundDrawLooper()); | 527 paint->setLooper(shadowAndForegroundDrawLooper()); |
| 528 paint->setImageFilter(0); | 528 paint->setImageFilter(0); |
| 529 return paint; | 529 return paint; |
| 530 } | 530 } |
| 531 | 531 |
| 532 } // blink | 532 } // blink |
| OLD | NEW |