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

Unified Diff: webkit/renderer/compositor_bindings/web_blend_mode.h

Issue 66263003: Renderer-compositor bindings for mix-blend-mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: extra checks for skia-blink blendMode conversions Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | webkit/renderer/compositor_bindings/web_compositing_reasons.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/renderer/compositor_bindings/web_blend_mode.h
diff --git a/webkit/renderer/compositor_bindings/web_blend_mode.h b/webkit/renderer/compositor_bindings/web_blend_mode.h
new file mode 100644
index 0000000000000000000000000000000000000000..24236ffe62256330ac1189d4595d074e80e4fb0c
--- /dev/null
+++ b/webkit/renderer/compositor_bindings/web_blend_mode.h
@@ -0,0 +1,106 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
+#define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
+
+#include "third_party/WebKit/public/platform/WebBlendMode.h"
+
+namespace webkit {
+
+inline SkXfermode::Mode BlendModeToSkia(blink::WebBlendMode blend_mode) {
+ switch (blend_mode) {
+ case blink::WebBlendModeNormal:
+ return SkXfermode::kSrcOver_Mode;
+ case blink::WebBlendModeMultiply:
+ return SkXfermode::kMultiply_Mode;
+ case blink::WebBlendModeScreen:
+ return SkXfermode::kScreen_Mode;
+ case blink::WebBlendModeOverlay:
+ return SkXfermode::kOverlay_Mode;
+ case blink::WebBlendModeDarken:
+ return SkXfermode::kDarken_Mode;
+ case blink::WebBlendModeLighten:
+ return SkXfermode::kLighten_Mode;
+ case blink::WebBlendModeColorDodge:
+ return SkXfermode::kColorDodge_Mode;
+ case blink::WebBlendModeColorBurn:
+ return SkXfermode::kColorBurn_Mode;
+ case blink::WebBlendModeHardLight:
+ return SkXfermode::kHardLight_Mode;
+ case blink::WebBlendModeSoftLight:
+ return SkXfermode::kSoftLight_Mode;
+ case blink::WebBlendModeDifference:
+ return SkXfermode::kDifference_Mode;
+ case blink::WebBlendModeExclusion:
+ return SkXfermode::kExclusion_Mode;
+ case blink::WebBlendModeHue:
+ return SkXfermode::kHue_Mode;
+ case blink::WebBlendModeSaturation:
+ return SkXfermode::kSaturation_Mode;
+ case blink::WebBlendModeColor:
+ return SkXfermode::kColor_Mode;
+ case blink::WebBlendModeLuminosity:
+ return SkXfermode::kLuminosity_Mode;
+ }
+ return SkXfermode::kSrcOver_Mode;
+}
+
+inline blink::WebBlendMode BlendModeFromSkia(SkXfermode::Mode blend_mode) {
+ switch (blend_mode) {
+ case SkXfermode::kSrcOver_Mode:
+ return blink::WebBlendModeNormal;
+ case SkXfermode::kMultiply_Mode:
+ return blink::WebBlendModeMultiply;
+ case SkXfermode::kScreen_Mode:
+ return blink::WebBlendModeScreen;
+ case SkXfermode::kOverlay_Mode:
+ return blink::WebBlendModeOverlay;
+ case SkXfermode::kDarken_Mode:
+ return blink::WebBlendModeDarken;
+ case SkXfermode::kLighten_Mode:
+ return blink::WebBlendModeLighten;
+ case SkXfermode::kColorDodge_Mode:
+ return blink::WebBlendModeColorDodge;
+ case SkXfermode::kColorBurn_Mode:
+ return blink::WebBlendModeColorBurn;
+ case SkXfermode::kHardLight_Mode:
+ return blink::WebBlendModeHardLight;
+ case SkXfermode::kSoftLight_Mode:
+ return blink::WebBlendModeSoftLight;
+ case SkXfermode::kDifference_Mode:
+ return blink::WebBlendModeDifference;
+ case SkXfermode::kExclusion_Mode:
+ return blink::WebBlendModeExclusion;
+ case SkXfermode::kHue_Mode:
+ return blink::WebBlendModeHue;
+ case SkXfermode::kSaturation_Mode:
+ return blink::WebBlendModeSaturation;
+ case SkXfermode::kColor_Mode:
+ return blink::WebBlendModeColor;
+ case SkXfermode::kLuminosity_Mode:
+ return blink::WebBlendModeLuminosity;
+
+ // these value are SkXfermodes, but no blend modes.
+ case SkXfermode::kClear_Mode:
+ case SkXfermode::kSrc_Mode:
+ case SkXfermode::kDst_Mode:
+ case SkXfermode::kDstOver_Mode:
+ case SkXfermode::kSrcIn_Mode:
+ case SkXfermode::kDstIn_Mode:
+ case SkXfermode::kSrcOut_Mode:
+ case SkXfermode::kDstOut_Mode:
+ case SkXfermode::kSrcATop_Mode:
+ case SkXfermode::kDstATop_Mode:
+ case SkXfermode::kXor_Mode:
+ case SkXfermode::kPlus_Mode:
+ case SkXfermode::kModulate_Mode:
+ NOTREACHED();
+ }
+ return blink::WebBlendModeNormal;
+}
+
+} // namespace webkit
+
+#endif // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_
« no previous file with comments | « no previous file | webkit/renderer/compositor_bindings/web_compositing_reasons.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698