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