@galacean/engine-loader 0.9.0-beta.80 → 0.9.0-beta.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4117,6 +4117,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4117
4117
  _this = Loader.apply(this, arguments) || this;
4118
4118
  _this._tempRect = new miniprogram$1.Rect();
4119
4119
  _this._tempVec2 = new miniprogram$1.Vector2();
4120
+ _this._tempVec4 = new miniprogram$1.Vector4();
4120
4121
  return _this;
4121
4122
  }
4122
4123
  var _proto = SpriteAtlasLoader.prototype;
@@ -4134,57 +4135,65 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4134
4135
  }));
4135
4136
  chainPromises.push(configPromise);
4136
4137
  configPromise.then(function(atlasData) {
4137
- var atlasItems = atlasData.atlasItems, format = atlasData.format;
4138
- var atlasItemsLen = atlasItems.length;
4139
- var imagePromises = miniprogram.AssetPromise.all(atlasItems.map(function(param) {
4140
- var img = param.img;
4141
- return _this.request(GLTFUtil.parseRelativeUrl(item.url, img), _extends({}, item, {
4142
- type: "image"
4143
- }));
4144
- }));
4145
- chainPromises.push(imagePromises);
4146
- return imagePromises.then(function(imgs) {
4147
- var engine = resourceManager.engine;
4148
- // Generate a SpriteAtlas object.
4149
- var tempRect = _this._tempRect, tempVec2 = _this._tempVec2;
4150
- var spriteAtlas = new miniprogram.SpriteAtlas(engine);
4151
- for(var i = 0; i < atlasItemsLen; i++){
4152
- // Generate Texture2D according to configuration.
4153
- var originalImg = imgs[i];
4154
- var width = originalImg.width, height = originalImg.height;
4155
- var texture = new miniprogram.Texture2D(engine, width, height, format);
4156
- texture.setImageSource(originalImg);
4157
- texture.generateMipmaps();
4158
- // Generate all the sprites on this texture.
4159
- var atlasItem = atlasItems[i];
4160
- var sprites = atlasItem.sprites;
4161
- var sourceWidthReciprocal = 1.0 / width;
4162
- var sourceHeightReciprocal = 1.0 / height;
4163
- for(var j = sprites.length - 1; j >= 0; j--){
4164
- var atlasSprite = sprites[j];
4165
- var region = atlasSprite.region, atlasRegionOffset = atlasSprite.atlasRegionOffset, atlasRegion = atlasSprite.atlasRegion, id = atlasSprite.id, pivot = atlasSprite.pivot;
4166
- var sprite = new miniprogram.Sprite(engine, texture, region ? tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? tempVec2.set(pivot.x, pivot.y) : undefined, undefined, atlasSprite.name);
4167
- sprite.atlasRegion.set(atlasRegion.x * sourceWidthReciprocal, atlasRegion.y * sourceHeightReciprocal, atlasRegion.w * sourceWidthReciprocal, atlasRegion.h * sourceHeightReciprocal);
4168
- atlasSprite.atlasRotated && (sprite.atlasRotated = true);
4169
- if (atlasRegionOffset) {
4170
- var offsetLeft = atlasRegionOffset.x, offsetTop = atlasRegionOffset.y, offsetRight = atlasRegionOffset.z, offsetBottom = atlasRegionOffset.w;
4171
- sprite.atlasRegionOffset.set(offsetLeft * sourceWidthReciprocal, offsetTop * sourceHeightReciprocal, offsetRight * sourceWidthReciprocal, offsetBottom * sourceHeightReciprocal);
4138
+ var _loop = function(i) {
4139
+ var atlasItem = atlasItems[i];
4140
+ if (atlasItem.img) {
4141
+ chainPromises.push(resourceManager.load({
4142
+ url: atlasItem.img,
4143
+ type: miniprogram.AssetType.Texture2D,
4144
+ params: {
4145
+ format: format,
4146
+ mipmap: mipmap
4172
4147
  }
4173
- if (id !== undefined) {
4148
+ }).then(function(texture) {
4149
+ anisoLevel && (texture.anisoLevel = anisoLevel);
4150
+ filterMode !== undefined && (texture.filterMode = filterMode);
4151
+ wrapModeU !== undefined && (texture.wrapModeU = wrapModeU);
4152
+ wrapModeV !== undefined && (texture.wrapModeV = wrapModeV);
4153
+ for(var i = 0; i < atlasItem.sprites.length; i++){
4174
4154
  // @ts-ignore
4175
- sprite._assetID = id;
4155
+ spriteAtlas._addSprite(_this._makeSprite(engine, atlasItem.sprites[i], texture));
4176
4156
  }
4157
+ }).catch(reject));
4158
+ } else {
4159
+ for(var i1 = 0; i1 < atlasItem.sprites.length; i1++){
4177
4160
  // @ts-ignore
4178
- spriteAtlas._addSprite(sprite);
4161
+ spriteAtlas._addSprite(_this._makeSprite(engine, atlasItem.sprites[i1]));
4179
4162
  }
4180
4163
  }
4164
+ };
4165
+ var atlasItems = atlasData.atlasItems, mipmap = atlasData.mipmap, anisoLevel = atlasData.anisoLevel, filterMode = atlasData.filterMode, wrapModeU = atlasData.wrapModeU, wrapModeV = atlasData.wrapModeV, format = atlasData.format;
4166
+ var atlasItemsLen = atlasItems ? atlasItems.length : 0;
4167
+ var engine = resourceManager.engine;
4168
+ var spriteAtlas = new miniprogram.SpriteAtlas(engine);
4169
+ if (atlasItemsLen < 0) {
4181
4170
  resolve(spriteAtlas);
4182
- });
4183
- }).catch(function(e) {
4184
- reject(e);
4185
- });
4171
+ return;
4172
+ }
4173
+ chainPromises.length = 0;
4174
+ for(var i = 0; i < atlasItems.length; i++)_loop(i);
4175
+ miniprogram.AssetPromise.all(chainPromises).then(function() {
4176
+ resolve(spriteAtlas);
4177
+ }).catch(reject);
4178
+ }).catch(reject);
4186
4179
  });
4187
4180
  };
4181
+ _proto._makeSprite = function _makeSprite(engine, config, texture) {
4182
+ // Generate a SpriteAtlas object.
4183
+ var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
4184
+ var sprite = new miniprogram.Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
4185
+ if (texture) {
4186
+ var invW = 1 / texture.width;
4187
+ var invH = 1 / texture.height;
4188
+ sprite.atlasRegion.set(atlasRegion.x * invW, atlasRegion.y * invH, atlasRegion.w * invW, atlasRegion.h * invH);
4189
+ if (atlasRegionOffset) {
4190
+ var offsetLeft = atlasRegionOffset.x, offsetTop = atlasRegionOffset.y, offsetRight = atlasRegionOffset.z, offsetBottom = atlasRegionOffset.w;
4191
+ sprite.atlasRegionOffset.set(offsetLeft * invW, offsetTop * invH, offsetRight * invW, offsetBottom * invH);
4192
+ }
4193
+ config.atlasRotated && (sprite.atlasRotated = true);
4194
+ }
4195
+ return sprite;
4196
+ };
4188
4197
  return SpriteAtlasLoader;
4189
4198
  }(miniprogram.Loader);
4190
4199
  SpriteAtlasLoader = __decorate([
@@ -4205,13 +4214,19 @@ var SpriteLoader = /*#__PURE__*/ function(Loader) {
4205
4214
  _this.request(item.url, _extends({}, item, {
4206
4215
  type: "json"
4207
4216
  })).then(function(data) {
4208
- // @ts-ignore
4209
- resourceManager.getResourceByRef(data.texture).then(function(texture) {
4210
- var sprite = new miniprogram.Sprite(resourceManager.engine, texture);
4211
- sprite.region = data.region;
4212
- sprite.pivot = data.pivot;
4213
- resolve(sprite);
4214
- });
4217
+ if (data.belongToAtlas) {
4218
+ resourceManager// @ts-ignore
4219
+ .getResourceByRef(data.belongToAtlas).then(function(atlas) {
4220
+ resolve(atlas.getSprite(data.fullPath));
4221
+ }).catch(reject);
4222
+ } else if (data.texture) {
4223
+ resourceManager// @ts-ignore
4224
+ .getResourceByRef(data.texture).then(function(texture) {
4225
+ resolve(new miniprogram.Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
4226
+ }).catch(reject);
4227
+ } else {
4228
+ resolve(new miniprogram.Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
4229
+ }
4215
4230
  }).catch(reject);
4216
4231
  });
4217
4232
  };
package/dist/module.js CHANGED
@@ -4112,6 +4112,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4112
4112
  _this = Loader.apply(this, arguments) || this;
4113
4113
  _this._tempRect = new Rect();
4114
4114
  _this._tempVec2 = new Vector2();
4115
+ _this._tempVec4 = new Vector4();
4115
4116
  return _this;
4116
4117
  }
4117
4118
  var _proto = SpriteAtlasLoader.prototype;
@@ -4129,57 +4130,65 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4129
4130
  }));
4130
4131
  chainPromises.push(configPromise);
4131
4132
  configPromise.then(function(atlasData) {
4132
- var atlasItems = atlasData.atlasItems, format = atlasData.format;
4133
- var atlasItemsLen = atlasItems.length;
4134
- var imagePromises = AssetPromise.all(atlasItems.map(function(param) {
4135
- var img = param.img;
4136
- return _this.request(GLTFUtil.parseRelativeUrl(item.url, img), _extends({}, item, {
4137
- type: "image"
4138
- }));
4139
- }));
4140
- chainPromises.push(imagePromises);
4141
- return imagePromises.then(function(imgs) {
4142
- var engine = resourceManager.engine;
4143
- // Generate a SpriteAtlas object.
4144
- var tempRect = _this._tempRect, tempVec2 = _this._tempVec2;
4145
- var spriteAtlas = new SpriteAtlas(engine);
4146
- for(var i = 0; i < atlasItemsLen; i++){
4147
- // Generate Texture2D according to configuration.
4148
- var originalImg = imgs[i];
4149
- var width = originalImg.width, height = originalImg.height;
4150
- var texture = new Texture2D(engine, width, height, format);
4151
- texture.setImageSource(originalImg);
4152
- texture.generateMipmaps();
4153
- // Generate all the sprites on this texture.
4154
- var atlasItem = atlasItems[i];
4155
- var sprites = atlasItem.sprites;
4156
- var sourceWidthReciprocal = 1.0 / width;
4157
- var sourceHeightReciprocal = 1.0 / height;
4158
- for(var j = sprites.length - 1; j >= 0; j--){
4159
- var atlasSprite = sprites[j];
4160
- var region = atlasSprite.region, atlasRegionOffset = atlasSprite.atlasRegionOffset, atlasRegion = atlasSprite.atlasRegion, id = atlasSprite.id, pivot = atlasSprite.pivot;
4161
- var sprite = new Sprite(engine, texture, region ? tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? tempVec2.set(pivot.x, pivot.y) : undefined, undefined, atlasSprite.name);
4162
- sprite.atlasRegion.set(atlasRegion.x * sourceWidthReciprocal, atlasRegion.y * sourceHeightReciprocal, atlasRegion.w * sourceWidthReciprocal, atlasRegion.h * sourceHeightReciprocal);
4163
- atlasSprite.atlasRotated && (sprite.atlasRotated = true);
4164
- if (atlasRegionOffset) {
4165
- var offsetLeft = atlasRegionOffset.x, offsetTop = atlasRegionOffset.y, offsetRight = atlasRegionOffset.z, offsetBottom = atlasRegionOffset.w;
4166
- sprite.atlasRegionOffset.set(offsetLeft * sourceWidthReciprocal, offsetTop * sourceHeightReciprocal, offsetRight * sourceWidthReciprocal, offsetBottom * sourceHeightReciprocal);
4133
+ var _loop = function(i) {
4134
+ var atlasItem = atlasItems[i];
4135
+ if (atlasItem.img) {
4136
+ chainPromises.push(resourceManager.load({
4137
+ url: atlasItem.img,
4138
+ type: AssetType.Texture2D,
4139
+ params: {
4140
+ format: format,
4141
+ mipmap: mipmap
4167
4142
  }
4168
- if (id !== undefined) {
4143
+ }).then(function(texture) {
4144
+ anisoLevel && (texture.anisoLevel = anisoLevel);
4145
+ filterMode !== undefined && (texture.filterMode = filterMode);
4146
+ wrapModeU !== undefined && (texture.wrapModeU = wrapModeU);
4147
+ wrapModeV !== undefined && (texture.wrapModeV = wrapModeV);
4148
+ for(var i = 0; i < atlasItem.sprites.length; i++){
4169
4149
  // @ts-ignore
4170
- sprite._assetID = id;
4150
+ spriteAtlas._addSprite(_this._makeSprite(engine, atlasItem.sprites[i], texture));
4171
4151
  }
4152
+ }).catch(reject));
4153
+ } else {
4154
+ for(var i1 = 0; i1 < atlasItem.sprites.length; i1++){
4172
4155
  // @ts-ignore
4173
- spriteAtlas._addSprite(sprite);
4156
+ spriteAtlas._addSprite(_this._makeSprite(engine, atlasItem.sprites[i1]));
4174
4157
  }
4175
4158
  }
4159
+ };
4160
+ var atlasItems = atlasData.atlasItems, mipmap = atlasData.mipmap, anisoLevel = atlasData.anisoLevel, filterMode = atlasData.filterMode, wrapModeU = atlasData.wrapModeU, wrapModeV = atlasData.wrapModeV, format = atlasData.format;
4161
+ var atlasItemsLen = atlasItems ? atlasItems.length : 0;
4162
+ var engine = resourceManager.engine;
4163
+ var spriteAtlas = new SpriteAtlas(engine);
4164
+ if (atlasItemsLen < 0) {
4176
4165
  resolve(spriteAtlas);
4177
- });
4178
- }).catch(function(e) {
4179
- reject(e);
4180
- });
4166
+ return;
4167
+ }
4168
+ chainPromises.length = 0;
4169
+ for(var i = 0; i < atlasItems.length; i++)_loop(i);
4170
+ AssetPromise.all(chainPromises).then(function() {
4171
+ resolve(spriteAtlas);
4172
+ }).catch(reject);
4173
+ }).catch(reject);
4181
4174
  });
4182
4175
  };
4176
+ _proto._makeSprite = function _makeSprite(engine, config, texture) {
4177
+ // Generate a SpriteAtlas object.
4178
+ var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
4179
+ var sprite = new Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
4180
+ if (texture) {
4181
+ var invW = 1 / texture.width;
4182
+ var invH = 1 / texture.height;
4183
+ sprite.atlasRegion.set(atlasRegion.x * invW, atlasRegion.y * invH, atlasRegion.w * invW, atlasRegion.h * invH);
4184
+ if (atlasRegionOffset) {
4185
+ var offsetLeft = atlasRegionOffset.x, offsetTop = atlasRegionOffset.y, offsetRight = atlasRegionOffset.z, offsetBottom = atlasRegionOffset.w;
4186
+ sprite.atlasRegionOffset.set(offsetLeft * invW, offsetTop * invH, offsetRight * invW, offsetBottom * invH);
4187
+ }
4188
+ config.atlasRotated && (sprite.atlasRotated = true);
4189
+ }
4190
+ return sprite;
4191
+ };
4183
4192
  return SpriteAtlasLoader;
4184
4193
  }(Loader);
4185
4194
  SpriteAtlasLoader = __decorate([
@@ -4200,13 +4209,19 @@ var SpriteLoader = /*#__PURE__*/ function(Loader) {
4200
4209
  _this.request(item.url, _extends({}, item, {
4201
4210
  type: "json"
4202
4211
  })).then(function(data) {
4203
- // @ts-ignore
4204
- resourceManager.getResourceByRef(data.texture).then(function(texture) {
4205
- var sprite = new Sprite(resourceManager.engine, texture);
4206
- sprite.region = data.region;
4207
- sprite.pivot = data.pivot;
4208
- resolve(sprite);
4209
- });
4212
+ if (data.belongToAtlas) {
4213
+ resourceManager// @ts-ignore
4214
+ .getResourceByRef(data.belongToAtlas).then(function(atlas) {
4215
+ resolve(atlas.getSprite(data.fullPath));
4216
+ }).catch(reject);
4217
+ } else if (data.texture) {
4218
+ resourceManager// @ts-ignore
4219
+ .getResourceByRef(data.texture).then(function(texture) {
4220
+ resolve(new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
4221
+ }).catch(reject);
4222
+ } else {
4223
+ resolve(new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
4224
+ }
4210
4225
  }).catch(reject);
4211
4226
  });
4212
4227
  };