From 38f3b6d141300942462453cde9eb25ad6ba934bc Mon Sep 17 00:00:00 2001
From: 06wj <06wj@163.com>
Date: Mon, 12 Jun 2017 15:11:47 +0800
Subject: [PATCH] feat: add CanvasRenderer blendmode support
---
examples/blendMode.html | 93 ++++++++++++++++++++++++++++++++++
src/renderer/CanvasRenderer.js | 3 ++
src/renderer/Renderer.js | 1 +
src/view/View.js | 1 +
4 files changed, 98 insertions(+)
create mode 100644 examples/blendMode.html
diff --git a/examples/blendMode.html b/examples/blendMode.html
new file mode 100644
index 00000000..be667bbc
--- /dev/null
+++ b/examples/blendMode.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+ BlendMode - Hilo Example
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/renderer/CanvasRenderer.js b/src/renderer/CanvasRenderer.js
index 3628d760..5f79fbfc 100644
--- a/src/renderer/CanvasRenderer.js
+++ b/src/renderer/CanvasRenderer.js
@@ -45,6 +45,9 @@ var CanvasRenderer = Class.create(/** @lends CanvasRenderer.prototype */{
if(target === this.stage){
this.context.clearRect(0, 0, target.width, target.height);
}
+ if(target.blendMode !== this.blendMode){
+ this.context.globalCompositeOperation = this.blendMode = target.blendMode;
+ }
this.context.save();
return true;
}
diff --git a/src/renderer/Renderer.js b/src/renderer/Renderer.js
index 9ede3f99..8a651d9c 100644
--- a/src/renderer/Renderer.js
+++ b/src/renderer/Renderer.js
@@ -35,6 +35,7 @@ var Renderer = Class.create(/** @lends Renderer.prototype */{
renderType:null,
canvas: null,
stage: null,
+ blendMode:'source-over',
/**
* @language=en
diff --git a/src/view/View.js b/src/view/View.js
index a70a3325..12e8da3f 100644
--- a/src/view/View.js
+++ b/src/view/View.js
@@ -105,6 +105,7 @@ return Class.create(/** @lends View.prototype */{
boundsArea: null,
parent: null,
depth: -1,
+ blendMode:'source-over',
/**
* @language=en