Skip to content

Commit db6d7da

Browse files
committed
Merge pull request cocos2d#1435 from dingpinglv/Iss3501_ReleaseV2.2.2
fixed cocos2d#3501: Modify sprite's draw for better performance.
2 parents 2706f11 + bd317c6 commit db6d7da

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

cocos2d/core/labelTTF/CCLabelTTF.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -905,6 +905,7 @@ cc.LabelTTF = cc.Sprite.extend(/** @lends cc.LabelTTF# */{
905905
locTextureCoordRect.y = rect.y;
906906
locTextureCoordRect.width = rect.width;
907907
locTextureCoordRect.height = rect.height;
908+
locTextureCoordRect.validRect = !(locTextureCoordRect.width === 0 || locTextureCoordRect.height === 0);
908909

909910
var relativeOffset = this._unflippedOffsetPositionFromCenter;
910911
if (this._flippedX)

cocos2d/core/sprite_nodes/CCSprite.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -979,7 +979,7 @@ cc.Sprite = cc.NodeRGBA.extend(/** @lends cc.Sprite# */{
979979
this._newTextureWhenChangeColor = false;
980980
this._textureLoaded = true;
981981
this._loadedEventListeners = [];
982-
this._textureRect_Canvas = {x: 0, y: 0, width: 0, height:0};
982+
this._textureRect_Canvas = {x: 0, y: 0, width: 0, height:0, validRect: false};
983983
this._drawSize_Canvas = cc.size(0, 0);
984984

985985
if (fileName) {
@@ -1394,13 +1394,13 @@ cc.Sprite = cc.NodeRGBA.extend(/** @lends cc.Sprite# */{
13941394

13951395
this.setContentSize(untrimmedSize);
13961396
this.setVertexRect(rect);
1397-
//this._textureRect_Canvas = cc.RECT_POINTS_TO_PIXELS(rect); //this._setTextureCoords(rect);
1398-
var locTextureRect = this._textureRect_Canvas;
1399-
var scaleFactor = cc.CONTENT_SCALE_FACTOR();
1397+
1398+
var locTextureRect = this._textureRect_Canvas, scaleFactor = cc.CONTENT_SCALE_FACTOR();
14001399
locTextureRect.x = 0 | (rect.x * scaleFactor);
14011400
locTextureRect.y = 0 | (rect.y * scaleFactor);
14021401
locTextureRect.width = 0 | (rect.width * scaleFactor);
14031402
locTextureRect.height = 0 | (rect.height * scaleFactor);
1403+
locTextureRect.validRect = !(locTextureRect.width === 0 || locTextureRect.height === 0);
14041404

14051405
var relativeOffset = this._unflippedOffsetPositionFromCenter;
14061406
if (this._flippedX)
@@ -1891,7 +1891,7 @@ cc.Sprite = cc.NodeRGBA.extend(/** @lends cc.Sprite# */{
18911891

18921892
_changeTextureColor: function () {
18931893
var locElement, locTexture = this._texture, locRect = this._textureRect_Canvas; //this.getTextureRect();
1894-
if (locTexture && locRect.width > 0 && this._originalTexture) {
1894+
if (locTexture && locRect.validRect && this._originalTexture) {
18951895
locElement = locTexture.getHtmlElementObj();
18961896
if (!locElement)
18971897
return;
@@ -2099,7 +2099,7 @@ cc.Sprite = cc.NodeRGBA.extend(/** @lends cc.Sprite# */{
20992099
flipXOffset *= locEGL_ScaleX;
21002100
flipYOffset *= locEGL_ScaleY;
21012101

2102-
if (this._texture && locTextureCoord.width > 0) {
2102+
if (this._texture && locTextureCoord.validRect) {
21032103
var image = this._texture.getHtmlElementObj();
21042104
if (this._colorized) {
21052105
context.drawImage(image,

cocos2d/progress_timer/CCProgressTimer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ cc.ProgressTimer = cc.NodeRGBA.extend(/** @lends cc.ProgressTimer# */{
462462
}
463463

464464
//draw sprite
465-
if (locSprite._texture && locRect.width > 0) {
465+
if (locSprite._texture && locRect.validRect) {
466466
var image = locSprite._texture.getHtmlElementObj();
467467
if (this._colorized) {
468468
context.drawImage(image,

0 commit comments

Comments
 (0)