Skip to content

Commit 6856e33

Browse files
author
pandamicro
committed
Fix canvas crash and rendering issues
1 parent b2c1542 commit 6856e33

File tree

7 files changed

+17
-13
lines changed

7 files changed

+17
-13
lines changed

cocos2d/clipping-nodes/CCClippingNodeCanvasRenderCmd.js

+4
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
var proto = cc.ClippingNode.CanvasRenderCmd.prototype = Object.create(cc.Node.CanvasRenderCmd.prototype);
3939
proto.constructor = cc.ClippingNode.CanvasRenderCmd;
4040

41+
proto.resetProgramByStencil = function () {
42+
43+
};
44+
4145
proto.initStencilBits = function () {
4246
};
4347

cocos2d/core/layers/CCLayerCanvasRenderCmd.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
this._cacheDirty = true;
6262
if (this._updateCache === 0)
6363
this._updateCache = 2;
64-
this._dirtyFlag = locFlag & flags.orderDirty ^ locFlag;
64+
this._dirtyFlag &= ~flags.orderDirty;
6565
}
6666

6767
this.originUpdateStatus();
@@ -365,7 +365,7 @@
365365
var flags = cc.Node._dirtyFlags, locFlag = this._dirtyFlag;
366366
if (locFlag & flags.gradientDirty) {
367367
this._dirtyFlag |= flags.colorDirty;
368-
this._dirtyFlag = locFlag & flags.gradientDirty ^ locFlag;
368+
this._dirtyFlag &= ~flags.gradientDirty;
369369
}
370370

371371
this.originUpdateStatus();
@@ -375,7 +375,7 @@
375375
var flags = cc.Node._dirtyFlags, locFlag = this._dirtyFlag;
376376
if (locFlag & flags.gradientDirty) {
377377
this._dirtyFlag |= flags.colorDirty;
378-
this._dirtyFlag = locFlag & flags.gradientDirty ^ locFlag;
378+
this._dirtyFlag &= ~flags.gradientDirty;
379379
}
380380

381381
this._originSyncStatus(parentCmd);

cocos2d/core/layers/CCLayerWebGLRenderCmd.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@
174174
if (locFlag & flags.gradientDirty) {
175175
this._dirtyFlag |= flags.colorDirty;
176176
this._updateVertex();
177-
this._dirtyFlag = locFlag & flags.gradientDirty ^ locFlag;
177+
this._dirtyFlag &= ~flags.gradientDirty;
178178
}
179179

180180
this.originUpdateStatus();
@@ -185,7 +185,7 @@
185185
if (locFlag & flags.gradientDirty) {
186186
this._dirtyFlag |= flags.colorDirty;
187187
this._updateVertex();
188-
this._dirtyFlag = locFlag & flags.gradientDirty ^ locFlag;
188+
this._dirtyFlag &= ~flags.gradientDirty;
189189
}
190190

191191
this._originSyncStatus(parentCmd);

cocos2d/core/sprites/CCSprite.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ cc.Sprite = cc.Node.extend(/** @lends cc.Sprite# */{
677677
var _t = this;
678678
if (typeof newFrame === 'string') {
679679
newFrame = cc.spriteFrameCache.getSpriteFrame(newFrame);
680-
cc.assert(newFrame, cc._LogInfos.Sprite_setSpriteFrame)
680+
cc.assert(newFrame, cc._LogInfos.Sprite_setSpriteFrame);
681681
}
682682
this._loader.clear();
683683

cocos2d/core/sprites/CCSpriteCanvasRenderCmd.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@
5151
proto._setTexture = function (texture) {
5252
var node = this._node;
5353
if (node._texture !== texture) {
54-
if (texture) {
55-
node._textureLoaded = texture._textureLoaded;
56-
} else {
57-
node._textureLoaded = false;
58-
}
54+
node._textureLoaded = texture ? texture._textureLoaded : false;
5955
node._texture = texture;
56+
57+
var texSize = texture._contentSize;
58+
var rect = cc.rect(0, 0, texSize.width, texSize.height);
59+
node.setTextureRect(rect);
6060
this._updateColor();
6161
}
6262
};

cocos2d/render-texture/CCRenderTextureCanvasRenderCmd.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
(function () {
2626
cc.RenderTexture.CanvasRenderCmd = function (renderableObject) {
2727
this._rootCtor(renderableObject);
28-
this._needDraw = true;
28+
this._needDraw = false;
2929
this._clearColorStr = "rgba(255,255,255,1)";
3030

3131
this._cacheCanvas = document.createElement('canvas');

extensions/ccui/base-classes/UIScale9SpriteCanvasRenderCmd.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
if (this._textureToRender === null || this._originalTexture !== locTexture) {
7171
this._textureToRender = this._originalTexture = locTexture;
7272
if (cc.Scale9Sprite.state.GRAY === this._state) {
73-
this._textureToRender = this._textureToRender._generateGrayTexture();
73+
this._textureToRender = this._textureToRender._switchToGray();
7474
}
7575
var color = node.getDisplayedColor();
7676
if (locTexture && (color.r !== 255 || color.g !==255 || color.b !== 255))

0 commit comments

Comments
 (0)