Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(340)

Side by Side Diff: webkit/renderer/compositor_bindings/web_blend_mode.h

Issue 23455060: mix-blend-mode implementation for accelerated layers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding compositor pixel tests, clang-format Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
6 #define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
7
8 #include "third_party/WebKit/public/platform/WebBlendMode.h"
9
10 namespace webkit {
11
12 inline SkXfermode::Mode BlendModeToSkia(WebKit::WebBlendMode blend_mode) {
13 switch (blend_mode) {
14 case WebKit::WebBlendModeNormal:
15 return SkXfermode::kSrcOver_Mode;
16 case WebKit::WebBlendModeMultiply:
17 return SkXfermode::kMultiply_Mode;
18 case WebKit::WebBlendModeScreen:
19 return SkXfermode::kScreen_Mode;
20 case WebKit::WebBlendModeOverlay:
21 return SkXfermode::kOverlay_Mode;
22 case WebKit::WebBlendModeDarken:
23 return SkXfermode::kDarken_Mode;
24 case WebKit::WebBlendModeLighten:
25 return SkXfermode::kLighten_Mode;
26 case WebKit::WebBlendModeColorDodge:
27 return SkXfermode::kColorDodge_Mode;
28 case WebKit::WebBlendModeColorBurn:
29 return SkXfermode::kColorBurn_Mode;
30 case WebKit::WebBlendModeHardLight:
31 return SkXfermode::kHardLight_Mode;
32 case WebKit::WebBlendModeSoftLight:
33 return SkXfermode::kSoftLight_Mode;
34 case WebKit::WebBlendModeDifference:
35 return SkXfermode::kDifference_Mode;
36 case WebKit::WebBlendModeExclusion:
37 return SkXfermode::kExclusion_Mode;
38 case WebKit::WebBlendModeHue:
39 return SkXfermode::kHue_Mode;
40 case WebKit::WebBlendModeSaturation:
41 return SkXfermode::kSaturation_Mode;
42 case WebKit::WebBlendModeColor:
43 return SkXfermode::kColor_Mode;
44 case WebKit::WebBlendModeLuminosity:
45 return SkXfermode::kLuminosity_Mode;
46 default:
47 NOTREACHED();
48 }
49 return SkXfermode::kSrcOver_Mode;
50 }
51
52 inline WebKit::WebBlendMode BlendModeFromSkia(SkXfermode::Mode blend_mode) {
53 switch (blend_mode) {
54 case SkXfermode::kSrcOver_Mode:
55 return WebKit::WebBlendModeNormal;
56 case SkXfermode::kMultiply_Mode:
57 return WebKit::WebBlendModeMultiply;
58 case SkXfermode::kScreen_Mode:
59 return WebKit::WebBlendModeScreen;
60 case SkXfermode::kOverlay_Mode:
61 return WebKit::WebBlendModeOverlay;
62 case SkXfermode::kDarken_Mode:
63 return WebKit::WebBlendModeDarken;
64 case SkXfermode::kLighten_Mode:
65 return WebKit::WebBlendModeLighten;
66 case SkXfermode::kColorDodge_Mode:
67 return WebKit::WebBlendModeColorDodge;
68 case SkXfermode::kColorBurn_Mode:
69 return WebKit::WebBlendModeColorBurn;
70 case SkXfermode::kHardLight_Mode:
71 return WebKit::WebBlendModeHardLight;
72 case SkXfermode::kSoftLight_Mode:
73 return WebKit::WebBlendModeSoftLight;
74 case SkXfermode::kDifference_Mode:
75 return WebKit::WebBlendModeDifference;
76 case SkXfermode::kExclusion_Mode:
77 return WebKit::WebBlendModeExclusion;
78 case SkXfermode::kHue_Mode:
79 return WebKit::WebBlendModeHue;
80 case SkXfermode::kSaturation_Mode:
81 return WebKit::WebBlendModeSaturation;
82 case SkXfermode::kColor_Mode:
83 return WebKit::WebBlendModeColor;
84 case SkXfermode::kLuminosity_Mode:
85 return WebKit::WebBlendModeLuminosity;
86 default:
87 NOTREACHED();
88 }
89 return WebKit::WebBlendModeNormal;
90 }
91
92 } // namespace webkit
93
94 #endif // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698