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