Skip to content

Commit 7c9a8b5

Browse files
committed
Improve image loader and fix issues
1 parent 0ff97d0 commit 7c9a8b5

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

Diff for: CCBoot.js

+6
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,12 @@ cc.loader = (function () {
903903
else if (option !== undefined)
904904
callback = option;
905905

906+
var texture = this.getRes(url);
907+
if (texture) {
908+
callback && callback(null, texture);
909+
return null;
910+
}
911+
906912
var queue = _queue[url];
907913
if (queue) {
908914
queue.callbacks.push(callback);

Diff for: cocos2d/core/platform/CCLoaders.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,8 @@ cc._imgLoader = {
5454
callback = function (err, img) {
5555
if (err)
5656
return cb(err);
57-
58-
var tex = cc.textureCache.getTextureForKey(url) || new cc.Texture2D();
59-
tex.url = url;
60-
tex.initWithElement(img);
61-
tex.handleLoadedTexture();
62-
cc.textureCache.cacheImage(url, tex);
57+
58+
var tex = cc.textureCache.handleLoadedTexture(url, img);
6359
cb(null, tex);
6460
};
6561
}

Diff for: cocos2d/core/textures/CCTexture2D.js

+1
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ cc.game.addEventListener(cc.game.EVENT_RENDERER_INITED, function () {
227227
},
228228

229229
releaseTexture: function () {
230+
this._htmlElementObj = null;
230231
cc.loader.release(this.url);
231232
},
232233

Diff for: cocos2d/core/textures/CCTextureCache.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ cc.game.addEventListener(cc.game.EVENT_RENDERER_INITED, function () {
323323
}
324324
tex.initWithElement(img);
325325
tex.handleLoadedTexture();
326+
return tex;
326327
};
327328

328329
/**
@@ -366,12 +367,7 @@ cc.game.addEventListener(cc.game.EVENT_RENDERER_INITED, function () {
366367
if (err)
367368
return cb && cb.call(target, err);
368369

369-
cc.textureCache.handleLoadedTexture(url, img);
370-
var texResult = locTexs[url];
371-
if (!cc.loader.cache[url]) {
372-
cc.loader.cache[url] = texResult;
373-
}
374-
370+
var texResult = cc.textureCache.handleLoadedTexture(url, img);
375371
cb && cb.call(target, texResult);
376372
});
377373

Diff for: cocos2d/core/textures/TexturesWebGL.js

+3-6
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ cc._tmp.WebGLTexture2D = function () {
8383
releaseTexture: function () {
8484
if (this._webTextureObj)
8585
cc._renderContext.deleteTexture(this._webTextureObj);
86+
this._htmlElementObj = null;
8687
cc.loader.release(this.url);
8788
},
8889

@@ -871,6 +872,7 @@ cc._tmp.WebGLTextureCache = function () {
871872
else {
872873
tex.handleLoadedTexture();
873874
}
875+
return tex;
874876
};
875877

876878
/**
@@ -916,12 +918,7 @@ cc._tmp.WebGLTextureCache = function () {
916918
if (err)
917919
return cb && cb.call(target, err);
918920

919-
if (!cc.loader.cache[url]) {
920-
cc.loader.cache[url] = img;
921-
}
922-
cc.textureCache.handleLoadedTexture(url);
923-
924-
var texResult = locTexs[url];
921+
var texResult = cc.textureCache.handleLoadedTexture(url, img);
925922
cb && cb.call(target, texResult);
926923
});
927924

0 commit comments

Comments
 (0)