| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/BaseRenderingContext2D.h" | 5 #include "modules/canvas2d/BaseRenderingContext2D.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionMessages.h" | 7 #include "bindings/core/v8/ExceptionMessages.h" |
| 8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
| 9 #include "core/css/cssom/CSSURLImageValue.h" | 9 #include "core/css/cssom/CSSURLImageValue.h" |
| 10 #include "core/css/parser/CSSParser.h" | 10 #include "core/css/parser/CSSParser.h" |
| (...skipping 1813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1824 is_source_over = mode == SkBlendMode::kSrcOver; | 1824 is_source_over = mode == SkBlendMode::kSrcOver; |
| 1825 if (!is_source_over && mode != SkBlendMode::kSrc && | 1825 if (!is_source_over && mode != SkBlendMode::kSrc && |
| 1826 mode != SkBlendMode::kClear) | 1826 mode != SkBlendMode::kClear) |
| 1827 return; // The code below only knows how to handle Src, SrcOver, and | 1827 return; // The code below only knows how to handle Src, SrcOver, and |
| 1828 // Clear | 1828 // Clear |
| 1829 | 1829 |
| 1830 alpha = flags->getAlpha(); | 1830 alpha = flags->getAlpha(); |
| 1831 | 1831 |
| 1832 if (is_source_over && | 1832 if (is_source_over && |
| 1833 image_type == CanvasRenderingContext2DState::kNoImage) { | 1833 image_type == CanvasRenderingContext2DState::kNoImage) { |
| 1834 PaintShader* shader = flags->getShader(); | 1834 if (flags->HasShader()) { |
| 1835 if (shader) { | 1835 if (flags->ShaderIsOpaque() && alpha == 0xFF) |
| 1836 if (shader->isOpaque() && alpha == 0xFF) | |
| 1837 GetImageBuffer()->WillOverwriteCanvas(); | 1836 GetImageBuffer()->WillOverwriteCanvas(); |
| 1838 return; | 1837 return; |
| 1839 } | 1838 } |
| 1840 } | 1839 } |
| 1841 } | 1840 } |
| 1842 | 1841 |
| 1843 if (is_source_over) { | 1842 if (is_source_over) { |
| 1844 // With source over, we need to certify that alpha == 0xFF for all pixels | 1843 // With source over, we need to certify that alpha == 0xFF for all pixels |
| 1845 if (image_type == CanvasRenderingContext2DState::kNonOpaqueImage) | 1844 if (image_type == CanvasRenderingContext2DState::kNonOpaqueImage) |
| 1846 return; | 1845 return; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1878 num_filters(0), | 1877 num_filters(0), |
| 1879 num_get_image_data_calls(0), | 1878 num_get_image_data_calls(0), |
| 1880 area_get_image_data_calls(0.0), | 1879 area_get_image_data_calls(0.0), |
| 1881 num_put_image_data_calls(0), | 1880 num_put_image_data_calls(0), |
| 1882 area_put_image_data_calls(0.0), | 1881 area_put_image_data_calls(0.0), |
| 1883 num_clear_rect_calls(0), | 1882 num_clear_rect_calls(0), |
| 1884 num_draw_focus_calls(0), | 1883 num_draw_focus_calls(0), |
| 1885 num_frames_since_reset(0) {} | 1884 num_frames_since_reset(0) {} |
| 1886 | 1885 |
| 1887 } // namespace blink | 1886 } // namespace blink |
| OLD | NEW |