|
60 | 60 | scaleX = scaleX || cc.view.getScaleX(); |
61 | 61 | scaleY = scaleY ||cc.view.getScaleY(); |
62 | 62 | var wrapper = ctx || cc._renderContext, context = wrapper.getContext(); |
63 | | - var t = this._transform; //note: use local transform |
64 | | - wrapper.save(); |
65 | | - context.transform(t.a, t.b, t.c, t.d, t.tx * scaleX, -t.ty * scaleY); |
66 | | - context.beginPath(); |
| 63 | + |
| 64 | + wrapper.setTransform(this._transform, scaleX, scaleY); |
67 | 65 | for (var i = 0; i < stencil._buffer.length; i++) { |
68 | 66 | var vertices = stencil._buffer[i].verts; |
69 | 67 | //TODO: need support circle etc |
|
75 | 73 | for (var j = 1, len = vertices.length; j < len; j++) |
76 | 74 | context.lineTo(vertices[j].x * scaleX, -vertices[j].y * scaleY); |
77 | 75 | } |
78 | | - wrapper.restore(); |
79 | 76 | }; |
80 | 77 | }else{ |
81 | 78 | stencil._parent = this._node; |
|
94 | 91 | locCacheCtx.drawImage(canvas, 0, 0); //save the result to shareCache canvas |
95 | 92 | } else { |
96 | 93 | wrapper.save(); |
97 | | - wrapper.save(); //save for clip |
| 94 | + context.beginPath(); //save for clip |
98 | 95 | //Because drawNode's content size is zero |
99 | 96 | wrapper.setTransform(this._worldTransform, scaleX, scaleY); |
| 97 | + |
| 98 | + if (this._node.inverted) { |
| 99 | + context.setTransform(1, 0, 0, 1, 0, 0); |
| 100 | + context.rect(0, 0, context.canvas.width, context.canvas.height); |
| 101 | + context.clip(); |
| 102 | + } |
100 | 103 | } |
101 | 104 | }; |
102 | 105 |
|
|
123 | 126 | //hack |
124 | 127 | this._setStencilCompositionOperation(node._stencil); |
125 | 128 | } else { |
126 | | - wrapper.restore(); //it use for |
127 | | - if (node.inverted) { |
128 | | - var canvas = context.canvas; |
129 | | - wrapper.save(); |
130 | | - context.setTransform(1, 0, 0, 1, 0, 0); |
131 | | - |
132 | | - context.moveTo(0, 0); |
133 | | - context.lineTo(0, canvas.height); |
134 | | - context.lineTo(canvas.width, canvas.height); |
135 | | - context.lineTo(canvas.width, 0); |
136 | | - context.lineTo(0, 0); |
137 | | - |
138 | | - wrapper.restore(); |
139 | | - } |
140 | | - context.closePath(); |
141 | 129 | context.clip(); |
142 | 130 | } |
143 | 131 | }; |
|
0 commit comments