| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include "cc/layers/picture_image_layer.h" | 7 #include "cc/layers/picture_image_layer.h" |
| 8 #include "cc/layers/solid_color_layer.h" | 8 #include "cc/layers/solid_color_layer.h" |
| 9 #include "cc/test/layer_tree_pixel_resource_test.h" | 9 #include "cc/test/layer_tree_pixel_resource_test.h" |
| 10 #include "cc/test/pixel_comparator.h" | 10 #include "cc/test/pixel_comparator.h" |
| 11 #include "third_party/skia/include/core/SkImage.h" | 11 #include "third_party/skia/include/core/SkImage.h" |
| 12 #include "third_party/skia/include/core/SkSurface.h" | 12 #include "third_party/skia/include/core/SkSurface.h" |
| 13 | 13 |
| 14 #if !defined(OS_ANDROID) | 14 #if !defined(OS_ANDROID) |
| 15 | 15 |
| 16 namespace cc { | 16 namespace cc { |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 SkXfermode::Mode const kBlendModes[] = { | 19 SkBlendMode const kBlendModes[] = { |
| 20 SkXfermode::kSrcOver_Mode, SkXfermode::kScreen_Mode, | 20 SkBlendMode::kSrcOver, SkBlendMode::kScreen, |
| 21 SkXfermode::kOverlay_Mode, SkXfermode::kDarken_Mode, | 21 SkBlendMode::kOverlay, SkBlendMode::kDarken, |
| 22 SkXfermode::kLighten_Mode, SkXfermode::kColorDodge_Mode, | 22 SkBlendMode::kLighten, SkBlendMode::kColorDodge, |
| 23 SkXfermode::kColorBurn_Mode, SkXfermode::kHardLight_Mode, | 23 SkBlendMode::kColorBurn, SkBlendMode::kHardLight, |
| 24 SkXfermode::kSoftLight_Mode, SkXfermode::kDifference_Mode, | 24 SkBlendMode::kSoftLight, SkBlendMode::kDifference, |
| 25 SkXfermode::kExclusion_Mode, SkXfermode::kMultiply_Mode, | 25 SkBlendMode::kExclusion, SkBlendMode::kMultiply, |
| 26 SkXfermode::kHue_Mode, SkXfermode::kSaturation_Mode, | 26 SkBlendMode::kHue, SkBlendMode::kSaturation, |
| 27 SkXfermode::kColor_Mode, SkXfermode::kLuminosity_Mode}; | 27 SkBlendMode::kColor, SkBlendMode::kLuminosity}; |
| 28 | 28 |
| 29 SkColor kCSSTestColors[] = { | 29 SkColor kCSSTestColors[] = { |
| 30 0xffff0000, // red | 30 0xffff0000, // red |
| 31 0xff00ff00, // lime | 31 0xff00ff00, // lime |
| 32 0xff0000ff, // blue | 32 0xff0000ff, // blue |
| 33 0xff00ffff, // aqua | 33 0xff00ffff, // aqua |
| 34 0xffff00ff, // fuchsia | 34 0xffff00ff, // fuchsia |
| 35 0xffffff00, // yellow | 35 0xffffff00, // yellow |
| 36 0xff008000, // green | 36 0xff008000, // green |
| 37 0xff800000, // maroon | 37 0xff800000, // maroon |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 layer->SetFilters(filter_operations); | 176 layer->SetFilters(filter_operations); |
| 177 } | 177 } |
| 178 | 178 |
| 179 void CreateBlendingColorLayers(int lane_width, | 179 void CreateBlendingColorLayers(int lane_width, |
| 180 int lane_height, | 180 int lane_height, |
| 181 scoped_refptr<Layer> background, | 181 scoped_refptr<Layer> background, |
| 182 RenderPassOptions flags) { | 182 RenderPassOptions flags) { |
| 183 const int kLanesCount = kBlendModesCount + 4; | 183 const int kLanesCount = kBlendModesCount + 4; |
| 184 const SkColor kMiscOpaqueColor = 0xffc86464; | 184 const SkColor kMiscOpaqueColor = 0xffc86464; |
| 185 const SkColor kMiscTransparentColor = 0x80c86464; | 185 const SkColor kMiscTransparentColor = 0x80c86464; |
| 186 const SkXfermode::Mode kCoeffBlendMode = SkXfermode::kScreen_Mode; | 186 const SkBlendMode kCoeffBlendMode = SkBlendMode::kScreen; |
| 187 const SkXfermode::Mode kShaderBlendMode = SkXfermode::kColorBurn_Mode; | 187 const SkBlendMode kShaderBlendMode = SkBlendMode::kColorBurn; |
| 188 // add vertical lanes with each of the blend modes | 188 // add vertical lanes with each of the blend modes |
| 189 for (int i = 0; i < kLanesCount; ++i) { | 189 for (int i = 0; i < kLanesCount; ++i) { |
| 190 gfx::Rect child_rect(i * lane_width, 0, lane_width, lane_height); | 190 gfx::Rect child_rect(i * lane_width, 0, lane_width, lane_height); |
| 191 SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode; | 191 SkBlendMode blend_mode = SkBlendMode::kSrcOver; |
| 192 float opacity = 1.f; | 192 float opacity = 1.f; |
| 193 SkColor color = kMiscOpaqueColor; | 193 SkColor color = kMiscOpaqueColor; |
| 194 | 194 |
| 195 if (i < kBlendModesCount) { | 195 if (i < kBlendModesCount) { |
| 196 blend_mode = kBlendModes[i]; | 196 blend_mode = kBlendModes[i]; |
| 197 } else if (i == kBlendModesCount) { | 197 } else if (i == kBlendModesCount) { |
| 198 blend_mode = kCoeffBlendMode; | 198 blend_mode = kCoeffBlendMode; |
| 199 opacity = 0.5f; | 199 opacity = 0.5f; |
| 200 } else if (i == kBlendModesCount + 1) { | 200 } else if (i == kBlendModesCount + 1) { |
| 201 blend_mode = kCoeffBlendMode; | 201 blend_mode = kCoeffBlendMode; |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 RunBlendingWithRenderPass( | 492 RunBlendingWithRenderPass( |
| 493 GL_ZERO_COPY_RECT_DRAW, | 493 GL_ZERO_COPY_RECT_DRAW, |
| 494 FILE_PATH_LITERAL("blending_render_pass_mask.png"), | 494 FILE_PATH_LITERAL("blending_render_pass_mask.png"), |
| 495 kUseMasks | kUseAntialiasing | kUseColorMatrix | kForceShaders); | 495 kUseMasks | kUseAntialiasing | kUseColorMatrix | kForceShaders); |
| 496 } | 496 } |
| 497 | 497 |
| 498 } // namespace | 498 } // namespace |
| 499 } // namespace cc | 499 } // namespace cc |
| 500 | 500 |
| 501 #endif // OS_ANDROID | 501 #endif // OS_ANDROID |
| OLD | NEW |