Skip to content

Commit acd8c4c

Browse files
authored
Merge pull request #3357 from pandamicro/develop
Fix issues found in v3.12
2 parents beaa00b + 7f8ea8e commit acd8c4c

File tree

6 files changed

+49
-35
lines changed

6 files changed

+49
-35
lines changed

cocos2d/core/base-nodes/CCNodeCanvasRenderCmd.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ cc.Node.RenderCmd.prototype = {
178178
skx = 99999999;
179179
if (sky === Infinity)
180180
sky = 99999999;
181-
t.a = a + b * sky;
182-
t.b = b + a * sky;
183-
t.c = c + d * skx;
184-
t.d = d + c * skx;
181+
t.a = a + c * sky;
182+
t.b = b + d * sky;
183+
t.c = c + a * skx;
184+
t.d = d + b * skx;
185185
}
186186

187187
if (appX || appY) {
@@ -465,11 +465,9 @@ cc.Node.RenderCmd.prototype = {
465465
if (colorDirty || opacityDirty)
466466
this._updateColor();
467467

468-
if (locFlag & flags.transformDirty) {
468+
if (locFlag & flags.transformDirty)
469469
//update the transform
470470
this.transform(parentCmd);
471-
this._dirtyFlag = this._dirtyFlag & flags.transformDirty ^ this._dirtyFlag;
472-
}
473471

474472
if (locFlag & flags.orderDirty)
475473
this._dirtyFlag = this._dirtyFlag & flags.orderDirty ^ this._dirtyFlag;

cocos2d/tilemap/CCTMXLayerCanvasRenderCmd.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@
3333

3434
proto.visit = function (parentCmd) {
3535
var node = this._node, renderer = cc.renderer;
36-
// quick return if not visible
37-
if (!node._visible)
38-
return;
3936

4037
parentCmd = parentCmd || this.getParentRenderCmd();
41-
if (parentCmd)
38+
if (parentCmd) {
4239
this._curLevel = parentCmd._curLevel + 1;
40+
}
41+
42+
// quick return if not visible
43+
if (!node._visible)
44+
return;
4345

4446
if (isNaN(node._customZ)) {
4547
node._vertexZ = renderer.assignedZ;
@@ -49,7 +51,7 @@
4951
this._syncStatus(parentCmd);
5052

5153
// Visit children
52-
var children = node._children, child, cmd,
54+
var children = node._children, child,
5355
spTiles = node._spriteTiles,
5456
i, len = children.length;
5557
if (len > 0) {
@@ -58,8 +60,7 @@
5860
for (i = 0; i < len; i++) {
5961
child = children[i];
6062
if (child._localZOrder < 0) {
61-
cmd = child._renderCmd;
62-
cmd.visit(this);
63+
child._renderCmd.visit(this);
6364
}
6465
else {
6566
break;
@@ -74,7 +75,7 @@
7475
child._vertexZ = renderer.assignedZ;
7576
renderer.assignedZ += renderer.assignedZStep;
7677
}
77-
child._renderCmd.updateStatus(this, true);
78+
child._renderCmd.updateStatus();
7879
continue;
7980
}
8081
child._renderCmd.visit(this);

extensions/ccui/base-classes/UIWidgetRenderCmd.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ cc.game.addEventListener(cc.game.EVENT_RENDERER_INITED, function () {
4242

4343
proto.transform = function (parentCmd, recursive) {
4444
var node = this._node;
45-
46-
if (node._visible) {
45+
if (node._visible && node._running) {
4746
node._adaptRenderers();
4847
if(!this._usingLayoutComponent){
4948
var widgetParent = node.getWidgetParent();
@@ -80,7 +79,7 @@ cc.game.addEventListener(cc.game.EVENT_RENDERER_INITED, function () {
8079

8180
proto.transform = function(parentCmd, recursive){
8281
var node = this._node;
83-
if (node._visible) {
82+
if (node._visible && node._running) {
8483
node._adaptRenderers();
8584

8685
if(!this._usingLayoutComponent) {

extensions/cocostudio/armature/CCArmatureCanvasRenderCmd.js

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,34 @@
7575
var locChildren = this._node._children;
7676
for (var i = 0, len = locChildren.length; i< len; i++) {
7777
var selBone = locChildren[i];
78+
var boneCmd = selBone._renderCmd;
7879
if (selBone && selBone.getDisplayRenderNode) {
7980
var selNode = selBone.getDisplayRenderNode();
8081
if (selNode && selNode._renderCmd){
8182
var cmd = selNode._renderCmd;
8283
cmd.transform(null); //must be null, use transform in armature mode
8384

8485
//update displayNode's color and opacity, because skin didn't call visit()
86+
var flags = cc.Node._dirtyFlags, locFlag = cmd._dirtyFlag, boneFlag = boneCmd._dirtyFlag;
87+
var colorDirty = boneFlag & flags.colorDirty,
88+
opacityDirty = boneFlag & flags.opacityDirty;
89+
if (colorDirty)
90+
boneCmd._updateDisplayColor();
91+
if (opacityDirty)
92+
boneCmd._updateDisplayOpacity();
93+
if (colorDirty || opacityDirty)
94+
boneCmd._updateColor();
95+
8596
var parentColor = selBone._renderCmd._displayedColor, parentOpacity = selBone._renderCmd._displayedOpacity;
86-
var flags = cc.Node._dirtyFlags, locFlag = cmd._dirtyFlag;
87-
var colorDirty = locFlag & flags.colorDirty,
88-
opacityDirty = locFlag & flags.opacityDirty;
89-
if(colorDirty)
97+
colorDirty = locFlag & flags.colorDirty;
98+
opacityDirty = locFlag & flags.opacityDirty;
99+
if (colorDirty)
90100
cmd._updateDisplayColor(parentColor);
91-
if(opacityDirty)
101+
if (opacityDirty)
92102
cmd._updateDisplayOpacity(parentOpacity);
103+
if (colorDirty || opacityDirty) {
104+
cmd._updateColor();
105+
}
93106
}
94107
}
95108
}
@@ -120,27 +133,28 @@
120133
if (null === selNode)
121134
continue;
122135

136+
var boneCmd = selBone._renderCmd;
137+
boneCmd._syncStatus(this);
123138
switch (selBone.getDisplayRenderNodeType()) {
124139
case ccs.DISPLAY_TYPE_SPRITE:
125-
if(selNode instanceof ccs.Skin)
126-
this.updateChildPosition(selNode, selBone, alphaPremultiplied, alphaNonPremultipled);
140+
selNode.visit(boneCmd);
127141
break;
128142
case ccs.DISPLAY_TYPE_ARMATURE:
129143
selNode._renderCmd.rendering(ctx, scaleX, scaleY);
130144
break;
131145
default:
132-
selNode.visit(this);
146+
selNode.visit(boneCmd);
133147
break;
134148
}
135149
} else if(selBone instanceof cc.Node) {
136150
this._visitNormalChild(selBone);
137-
//selBone.visit(this);
151+
// selBone.visit(this);
138152
}
139153
}
140154
};
141155

142156
proto._visitNormalChild = function(childNode){
143-
if(childNode == null)
157+
if (!childNode)
144158
return;
145159

146160
var cmd = childNode._renderCmd;
@@ -181,7 +195,7 @@
181195
if (!node._visible)
182196
return;
183197

184-
this.updateStatus(parentCmd);
198+
this._syncStatus(parentCmd);
185199
node.sortAllChildren();
186200

187201
cc.renderer.pushRenderCommand(this._startRenderCmd);

extensions/cocostudio/armature/CCArmatureWebGLRenderCmd.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
switch (selBone.getDisplayRenderNodeType()) {
5353
case ccs.DISPLAY_TYPE_SPRITE:
5454
if (selNode instanceof ccs.Skin) {
55+
selBone._renderCmd._syncStatus(parentCmd);
5556
selNode.setShaderProgram(this._shaderProgram);
5657
this._updateColorAndOpacity(cmd, selBone); //because skin didn't call visit()
5758
cmd.transform(parentCmd);
@@ -76,7 +77,7 @@
7677
break;
7778
case ccs.DISPLAY_TYPE_ARMATURE:
7879
selNode.setShaderProgram(this._shaderProgram);
79-
cmd._parentCmd = this;
80+
cmd._parentCmd = parentCmd;
8081
// Continue rendering in default
8182
default:
8283
if (cmd.uploadData) {
@@ -119,6 +120,7 @@
119120
proto._updateColorAndOpacity = function(skinRenderCmd, bone){
120121
//update displayNode's color and opacity
121122
var parentColor = bone._renderCmd._displayedColor, parentOpacity = bone._renderCmd._displayedOpacity;
123+
122124
var flags = cc.Node._dirtyFlags, locFlag = skinRenderCmd._dirtyFlag;
123125
var colorDirty = locFlag & flags.colorDirty,
124126
opacityDirty = locFlag & flags.opacityDirty;

extensions/cocostudio/armature/CCBone.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -674,15 +674,15 @@ ccs.Bone.create = function (name) {
674674
};
675675

676676
ccs.Bone.RenderCmd = {
677-
_updateColor: function(){
677+
_updateColor: function () {
678678
var node = this._node;
679679
var display = node._displayManager.getDisplayRenderNode();
680680
if (display !== null) {
681681
var displayCmd = display._renderCmd;
682-
display.setColor(cc.color( node._tweenData.r, node._tweenData.g, node._tweenData.g));
683-
display.setOpacity(node._tweenData.a);
684-
displayCmd._syncDisplayColor(this._displayedColor);
685-
displayCmd._syncDisplayOpacity(this._displayedOpacity);
682+
display.setColor(this._displayedColor);
683+
display.setOpacity(this._displayedOpacity);
684+
displayCmd._syncDisplayColor(node._tweenData);
685+
displayCmd._syncDisplayOpacity(node._tweenData.a);
686686
displayCmd._updateColor();
687687
}
688688
}

0 commit comments

Comments
 (0)