@galacean/engine-loader 1.1.0-beta.19 → 1.1.0-beta.20

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
@@ -2633,6 +2633,7 @@ function transcode(buffer, targetFormat, KTX2File) {
2633
2633
  var faceCount = ktx2File.getFaces();
2634
2634
  var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2635
2635
  var faces = new Array(faceCount);
2636
+ var isBC = format === 2 || format === 3 || format === 7;
2636
2637
  for(var face = 0; face < faceCount; face++){
2637
2638
  var mipmaps = new Array(levelCount);
2638
2639
  for(var mip = 0; mip < levelCount; mip++){
@@ -2640,8 +2641,15 @@ function transcode(buffer, targetFormat, KTX2File) {
2640
2641
  var mipWidth = void 0, mipHeight = void 0;
2641
2642
  for(var layer = 0; layer < layerCount; layer++){
2642
2643
  var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2643
- mipWidth = levelInfo.origWidth;
2644
- mipHeight = levelInfo.origHeight;
2644
+ // see: https://github.com/KhronosGroup/KTX-Software/issues/254
2645
+ if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
2646
+ width = mipWidth = levelInfo.width;
2647
+ height = mipHeight = levelInfo.height;
2648
+ console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
2649
+ } else {
2650
+ mipWidth = levelInfo.origWidth;
2651
+ mipHeight = levelInfo.origHeight;
2652
+ }
2645
2653
  var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2646
2654
  var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2647
2655
  if (!status) {
@@ -5136,6 +5144,12 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5136
5144
  materialShaderData.setTexture(key, texture);
5137
5145
  }));
5138
5146
  break;
5147
+ case "Boolean":
5148
+ materialShaderData.setInt(key, value ? 1 : 0);
5149
+ break;
5150
+ case "Integer":
5151
+ materialShaderData.setInt(key, Number(value));
5152
+ break;
5139
5153
  }
5140
5154
  };
5141
5155
  var engine = resourceManager.engine;
@@ -5271,9 +5285,10 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5271
5285
  var _loop = function(i) {
5272
5286
  var atlasItem = atlasItems[i];
5273
5287
  if (atlasItem.img) {
5288
+ var _atlasItem_type;
5274
5289
  chainPromises.push(resourceManager.load({
5275
5290
  url: engineCore.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
5276
- type: engineCore.AssetType.Texture2D,
5291
+ type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : engineCore.AssetType.Texture2D,
5277
5292
  params: {
5278
5293
  format: format,
5279
5294
  mipmap: mipmap