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 |