123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- var t = require;
- var e = module;
- var i = exports;
- Object.defineProperty(i, "__esModule", {value: !0}), (i.ResRecycle = void 0);
- const o = t("App"),
- a = "_global_tag_";
- class s {
- constructor() {
- (this.texturesToClean = {}),
- (this.assets = {}),
- (this.urlRef = {}),
- (this.urlsToClean = {}),
- (this._isAutoRelease = !1);
- }
- addUrl(t, e = a) {
- this.urlRef[t] ? this.urlRef[t]++ : (this.urlRef[t] = 1),
- this.urlsToClean[e]
- ? this.urlsToClean[e].includes(t) || this.urlsToClean[e].push(t)
- : (this.urlsToClean[e] = [t]);
- }
- decRefByUrl(t, e) {
- var i;
- !this.urlsToClean[e] ||
- (-1 < (i = this.urlsToClean[e].indexOf(t)) &&
- (this.urlsToClean[e].splice(i, 1),
- this.urlRef[t]--,
- this.urlRef[t] <= 0 && (delete this.urlRef[t], o.default.ResManager.releaseAsset(t, cc.SpriteFrame))));
- }
- clearUrlByTag(t = a) {
- var e = this.urlsToClean[t];
- if (e) {
- delete this.urlsToClean[t];
- var i = e.length;
- for (let t = 0; t < i; t++) {
- var s = e[t];
- this.urlRef[s]--, this.urlRef[s] <= 0 && o.default.ResManager.releaseAsset(s, cc.SpriteFrame);
- }
- }
- }
- addRef(t) {
- this.assets[t._uuid]
- ? this.assets[t._uuid].refCount++
- : (t.addRef(), (this.assets[t._uuid] = {asset: t, refCount: 1}));
- }
- clearAssets() {
- for (const t in this.assets)
- this.assets[t].refCount <= 0 && (this.assets[t].asset.decRef(), delete this.assets[t]);
- }
- decRef(t) {
- this.assets[t._uuid] && this.assets[t._uuid].refCount--;
- }
- startAutoRelease() {
- this.clearAssets(), this._isAutoRelease || o.default.TimerManager.doTimer(3e4, 0, this.clearAssets, this);
- }
- static getInstance() {
- let t = s.__instance;
- return (t = t || (s.__instance = new s())), t;
- }
- destroy() {
- this.cleanupAll(), (s.__instance = null);
- }
- addTexture(t, e = a) {
- if (t) {
- const i = (this.texturesToClean[e] = this.texturesToClean[e] || {}),
- s = String(t._uuid);
- (i[s] = t), cc.log(1, "add", e, t.loaded, s.substring(0, 8));
- }
- }
- addSpriteFrame(t, e) {
- t && t.isValid && (t = t.getTexture()) && this.addTexture(t, e);
- }
- addSprite(t, e) {
- t.spriteFrame && this.addSpriteFrame(t.spriteFrame, e);
- }
- addNode(t, e) {
- if (t) {
- const i = t.getComponent(cc.Sprite);
- if (i && i.isValid) {
- const t = i.spriteFrame;
- t && t.isValid && ((i.spriteFrame = null), (i.spriteFrame = t), this.addSpriteFrame(t, e));
- }
- }
- }
- removeTexture(t, e = a) {
- if (t && this.texturesToClean) {
- const i = this.texturesToClean[e];
- i && delete i[t._uuid];
- }
- }
- removeSpriteFrame(t, e) {
- t && t.isValid && (t = t.getTexture()) && this.removeTexture(t, e);
- }
- removeSprite(t, e) {
- t.spriteFrame && this.removeSpriteFrame(t.spriteFrame, e);
- }
- removeNode(t, e) {
- if (t) {
- t = t.getComponent(cc.Sprite);
- if (t && t.isValid) {
- const i = t.spriteFrame;
- i && i.isValid && this.removeSpriteFrame(i, e);
- }
- }
- }
- cleanup(t = a) {
- if (this.texturesToClean) {
- var e = this.texturesToClean[t];
- if (e) {
- for (const s in e) {
- var i = e[s];
- i.loaded
- ? (cc.log(2, "clean", t, i.loaded, s.substring(0, 8)), this.cleanupImageCache(i))
- : console.warn(3, "cleanup", t, i.loaded, s.substring(0, 8));
- }
- delete this.texturesToClean[t];
- }
- }
- }
- cleanupImageCache(t) {
- (t.loaded = !1),
- t._image && (t._cleanupImageCache(), (t._image = null)),
- t._texture && (t._texture.destroy(), (t._texture = null));
- }
- cleanupAll() {
- if (this.texturesToClean) {
- for (const t in this.texturesToClean) this.cleanup(t);
- this.texturesToClean = null;
- }
- }
- }
- i.ResRecycle = s;
|