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

Unified 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 side-by-side diff with in-line comments
Download patch
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..4f9b6e624d8c47667c9254218ae1460834eccfd5
--- /dev/null
+++ b/webkit/renderer/compositor_bindings/web_blend_mode.h
@@ -0,0 +1,94 @@
+// 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(WebKit::WebBlendMode blend_mode) {
+ switch (blend_mode) {
+ case WebKit::WebBlendModeNormal:
+ return SkXfermode::kSrcOver_Mode;
+ case WebKit::WebBlendModeMultiply:
+ return SkXfermode::kMultiply_Mode;
+ case WebKit::WebBlendModeScreen:
+ return SkXfermode::kScreen_Mode;
+ case WebKit::WebBlendModeOverlay:
+ return SkXfermode::kOverlay_Mode;
+ case WebKit::WebBlendModeDarken:
+ return SkXfermode::kDarken_Mode;
+ case WebKit::WebBlendModeLighten:
+ return SkXfermode::kLighten_Mode;
+ case WebKit::WebBlendModeColorDodge:
+ return SkXfermode::kColorDodge_Mode;
+ case WebKit::WebBlendModeColorBurn:
+ return SkXfermode::kColorBurn_Mode;
+ case WebKit::WebBlendModeHardLight:
+ return SkXfermode::kHardLight_Mode;
+ case WebKit::WebBlendModeSoftLight:
+ return SkXfermode::kSoftLight_Mode;
+ case WebKit::WebBlendModeDifference:
+ return SkXfermode::kDifference_Mode;
+ case WebKit::WebBlendModeExclusion:
+ return SkXfermode::kExclusion_Mode;
+ case WebKit::WebBlendModeHue:
+ return SkXfermode::kHue_Mode;
+ case WebKit::WebBlendModeSaturation:
+ return SkXfermode::kSaturation_Mode;
+ case WebKit::WebBlendModeColor:
+ return SkXfermode::kColor_Mode;
+ case WebKit::WebBlendModeLuminosity:
+ return SkXfermode::kLuminosity_Mode;
+ default:
+ NOTREACHED();
+ }
+ return SkXfermode::kSrcOver_Mode;
+}
+
+inline WebKit::WebBlendMode BlendModeFromSkia(SkXfermode::Mode blend_mode) {
+ switch (blend_mode) {
+ case SkXfermode::kSrcOver_Mode:
+ return WebKit::WebBlendModeNormal;
+ case SkXfermode::kMultiply_Mode:
+ return WebKit::WebBlendModeMultiply;
+ case SkXfermode::kScreen_Mode:
+ return WebKit::WebBlendModeScreen;
+ case SkXfermode::kOverlay_Mode:
+ return WebKit::WebBlendModeOverlay;
+ case SkXfermode::kDarken_Mode:
+ return WebKit::WebBlendModeDarken;
+ case SkXfermode::kLighten_Mode:
+ return WebKit::WebBlendModeLighten;
+ case SkXfermode::kColorDodge_Mode:
+ return WebKit::WebBlendModeColorDodge;
+ case SkXfermode::kColorBurn_Mode:
+ return WebKit::WebBlendModeColorBurn;
+ case SkXfermode::kHardLight_Mode:
+ return WebKit::WebBlendModeHardLight;
+ case SkXfermode::kSoftLight_Mode:
+ return WebKit::WebBlendModeSoftLight;
+ case SkXfermode::kDifference_Mode:
+ return WebKit::WebBlendModeDifference;
+ case SkXfermode::kExclusion_Mode:
+ return WebKit::WebBlendModeExclusion;
+ case SkXfermode::kHue_Mode:
+ return WebKit::WebBlendModeHue;
+ case SkXfermode::kSaturation_Mode:
+ return WebKit::WebBlendModeSaturation;
+ case SkXfermode::kColor_Mode:
+ return WebKit::WebBlendModeColor;
+ case SkXfermode::kLuminosity_Mode:
+ return WebKit::WebBlendModeLuminosity;
+ default:
+ NOTREACHED();
+ }
+ return WebKit::WebBlendModeNormal;
+}
+
+} // namespace webkit
+
+#endif // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_BLEND_MODE_H_

Powered by Google App Engine
This is Rietveld 408576698