@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.
@@ -2634,6 +2634,7 @@ function transcode(buffer, targetFormat, KTX2File) {
2634
2634
  var faceCount = ktx2File.getFaces();
2635
2635
  var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2636
2636
  var faces = new Array(faceCount);
2637
+ var isBC = format === 2 || format === 3 || format === 7;
2637
2638
  for(var face = 0; face < faceCount; face++){
2638
2639
  var mipmaps = new Array(levelCount);
2639
2640
  for(var mip = 0; mip < levelCount; mip++){
@@ -2641,8 +2642,15 @@ function transcode(buffer, targetFormat, KTX2File) {
2641
2642
  var mipWidth = void 0, mipHeight = void 0;
2642
2643
  for(var layer = 0; layer < layerCount; layer++){
2643
2644
  var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2644
- mipWidth = levelInfo.origWidth;
2645
- mipHeight = levelInfo.origHeight;
2645
+ // see: https://github.com/KhronosGroup/KTX-Software/issues/254
2646
+ if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
2647
+ width = mipWidth = levelInfo.width;
2648
+ height = mipHeight = levelInfo.height;
2649
+ 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.");
2650
+ } else {
2651
+ mipWidth = levelInfo.origWidth;
2652
+ mipHeight = levelInfo.origHeight;
2653
+ }
2646
2654
  var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2647
2655
  var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2648
2656
  if (!status) {
@@ -5137,6 +5145,12 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5137
5145
  materialShaderData.setTexture(key, texture);
5138
5146
  }));
5139
5147
  break;
5148
+ case "Boolean":
5149
+ materialShaderData.setInt(key, value ? 1 : 0);
5150
+ break;
5151
+ case "Integer":
5152
+ materialShaderData.setInt(key, Number(value));
5153
+ break;
5140
5154
  }
5141
5155
  };
5142
5156
  var engine = resourceManager.engine;
@@ -5272,9 +5286,10 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5272
5286
  var _loop = function(i) {
5273
5287
  var atlasItem = atlasItems[i];
5274
5288
  if (atlasItem.img) {
5289
+ var _atlasItem_type;
5275
5290
  chainPromises.push(resourceManager.load({
5276
5291
  url: miniprogram.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
5277
- type: miniprogram.AssetType.Texture2D,
5292
+ type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : miniprogram.AssetType.Texture2D,
5278
5293
  params: {
5279
5294
  format: format,
5280
5295
  mipmap: mipmap
package/dist/module.js CHANGED
@@ -2629,6 +2629,7 @@ function transcode(buffer, targetFormat, KTX2File) {
2629
2629
  var faceCount = ktx2File.getFaces();
2630
2630
  var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
2631
2631
  var faces = new Array(faceCount);
2632
+ var isBC = format === 2 || format === 3 || format === 7;
2632
2633
  for(var face = 0; face < faceCount; face++){
2633
2634
  var mipmaps = new Array(levelCount);
2634
2635
  for(var mip = 0; mip < levelCount; mip++){
@@ -2636,8 +2637,15 @@ function transcode(buffer, targetFormat, KTX2File) {
2636
2637
  var mipWidth = void 0, mipHeight = void 0;
2637
2638
  for(var layer = 0; layer < layerCount; layer++){
2638
2639
  var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
2639
- mipWidth = levelInfo.origWidth;
2640
- mipHeight = levelInfo.origHeight;
2640
+ // see: https://github.com/KhronosGroup/KTX-Software/issues/254
2641
+ if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
2642
+ width = mipWidth = levelInfo.width;
2643
+ height = mipHeight = levelInfo.height;
2644
+ 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.");
2645
+ } else {
2646
+ mipWidth = levelInfo.origWidth;
2647
+ mipHeight = levelInfo.origHeight;
2648
+ }
2641
2649
  var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
2642
2650
  var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
2643
2651
  if (!status) {
@@ -5132,6 +5140,12 @@ var MaterialLoader = /*#__PURE__*/ function(Loader1) {
5132
5140
  materialShaderData.setTexture(key, texture);
5133
5141
  }));
5134
5142
  break;
5143
+ case "Boolean":
5144
+ materialShaderData.setInt(key, value ? 1 : 0);
5145
+ break;
5146
+ case "Integer":
5147
+ materialShaderData.setInt(key, Number(value));
5148
+ break;
5135
5149
  }
5136
5150
  };
5137
5151
  var engine = resourceManager.engine;
@@ -5267,9 +5281,10 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
5267
5281
  var _loop = function(i) {
5268
5282
  var atlasItem = atlasItems[i];
5269
5283
  if (atlasItem.img) {
5284
+ var _atlasItem_type;
5270
5285
  chainPromises.push(resourceManager.load({
5271
5286
  url: Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
5272
- type: AssetType.Texture2D,
5287
+ type: (_atlasItem_type = atlasItem.type) != null ? _atlasItem_type : AssetType.Texture2D,
5273
5288
  params: {
5274
5289
  format: format,
5275
5290
  mipmap: mipmap