Skip to content

Commit 936cbea

Browse files
committed
Issue cocos2d#2416: Add SpriteBatchNode RenderCmd
1 parent 2905deb commit 936cbea

File tree

5 files changed

+48
-23
lines changed

5 files changed

+48
-23
lines changed

cocos2d/core/renderer/RendererWebGL.js

-18
Original file line numberDiff line numberDiff line change
@@ -170,24 +170,6 @@ cc.ParticleRenderCmdWebGL.prototype.rendering = function (ctx) {
170170
gl.drawElements(gl.TRIANGLES, _t._particleIdx * 6, gl.UNSIGNED_SHORT, 0);
171171
};
172172

173-
cc.SpriteBatchNodeRenderCmdWebGL = function (node) {
174-
this._node = node;
175-
};
176-
177-
cc.SpriteBatchNodeRenderCmdWebGL.prototype.rendering = function (ctx) {
178-
var node = this._node;
179-
if (node.textureAtlas.totalQuads === 0)
180-
return;
181-
182-
//cc.nodeDrawSetup(this);
183-
node._shaderProgram.use();
184-
node._shaderProgram._setUniformForMVPMatrixWithMat4(node._stackMatrix);
185-
node._arrayMakeObjectsPerformSelector(node._children, cc.Node._stateCallbackType.updateTransform);
186-
cc.glBlendFunc(node._blendFunc.src, node._blendFunc.dst);
187-
188-
node.textureAtlas.drawQuads();
189-
};
190-
191173
cc.AtlasNodeRenderCmdWebGL = function (node) {
192174
this._node = node;
193175
};

cocos2d/core/sprites/CCSpriteBatchNode.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -412,11 +412,8 @@ cc.SpriteBatchNode = cc.Node.extend(/** @lends cc.SpriteBatchNode# */{
412412
} else if (fileImage instanceof cc.Texture2D)
413413
texture2D = fileImage;
414414
texture2D && this.initWithTexture(texture2D, capacity);
415-
},
416415

417-
_initRendererCmd: function(){
418-
if(cc._renderType === cc._RENDER_TYPE_WEBGL)
419-
this._rendererCmd = new cc.SpriteBatchNodeRenderCmdWebGL(this);
416+
this._rendererCmd = new cc.SpriteBatchNode.WebGLRenderCmd(this);
420417
},
421418

422419
/**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/****************************************************************************
2+
Copyright (c) 2013-2014 Chukong Technologies Inc.
3+
4+
http://www.cocos2d-x.org
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in
14+
all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
THE SOFTWARE.
23+
****************************************************************************/
24+
25+
cc.SpriteBatchNode.WebGLRenderCmd = function(renderableObject){
26+
cc.Node.WebGLRenderCmd.call(this, renderableObject);
27+
this._needDraw = true;
28+
};
29+
30+
cc.SpriteBatchNode.WebGLRenderCmd.prototype = Object.create(cc.Node.WebGLRenderCmd.prototype);
31+
cc.SpriteBatchNode.WebGLRenderCmd.prototype.constructor = cc.SpriteBatchNode.WebGLRenderCmd;
32+
33+
cc.SpriteBatchNode.WebGLRenderCmd.prototype.rendering = function (ctx) {
34+
var node = this._node;
35+
if (node.textureAtlas.totalQuads === 0)
36+
return;
37+
38+
//cc.nodeDrawSetup(this);
39+
node._shaderProgram.use();
40+
node._shaderProgram._setUniformForMVPMatrixWithMat4(node._stackMatrix);
41+
node._arrayMakeObjectsPerformSelector(node._children, cc.Node._stateCallbackType.updateTransform);
42+
cc.glBlendFunc(node._blendFunc.src, node._blendFunc.dst);
43+
44+
node.textureAtlas.drawQuads();
45+
};

cocos2d/tilemap/CCTMXLayerRenderCmd.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,4 @@ cc.TMXLayer.WebGLRenderCmd = function(renderableObject){
100100
this._needDraw = true;
101101
};
102102

103-
cc.TMXLayer.WebGLRenderCmd.prototype.rendering = cc.SpriteBatchNodeRenderCmdWebGL.prototype.rendering;
103+
cc.TMXLayer.WebGLRenderCmd.prototype.rendering = cc.SpriteBatchNode.WebGLRenderCmd.prototype.rendering;

moduleConfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
"cocos2d/core/sprites/CCSprite.js",
100100
"cocos2d/core/sprites/CCSpriteRenderCmd.js",
101101
"cocos2d/core/sprites/CCSpriteBatchNode.js",
102+
"cocos2d/core/sprites/CCSpriteBatchNodeRenderCmd.js",
102103
"cocos2d/core/sprites/CCBakeSprite.js",
103104
"cocos2d/core/sprites/CCAnimation.js",
104105
"cocos2d/core/sprites/CCAnimationCache.js",

0 commit comments

Comments
 (0)