@loaders.gl/textures 3.1.0-beta.1 → 3.1.0-beta.7
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/basis-worker.js +32 -8
- package/dist/bundle.js +182 -116
- package/dist/compressed-texture-worker.js +173 -107
- package/dist/crunch-worker.js +11 -11
- package/dist/es5/index.js +3 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/{gl-constants.js → gl-extensions.js} +4 -4
- package/dist/es5/lib/gl-extensions.js.map +1 -0
- package/dist/es5/lib/parsers/basis-module-loader.js +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +7 -7
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/parsers/parse-crunch.js +4 -4
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/es5/lib/parsers/parse-dds.js +7 -7
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
- package/dist/es5/lib/parsers/parse-pvr.js +28 -28
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/es5/lib/utils/ktx-format-helper.js +67 -67
- package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/esm/lib/gl-extensions.js.map +1 -0
- package/dist/esm/lib/parsers/basis-module-loader.js +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +7 -7
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/parsers/parse-crunch.js +4 -4
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/esm/lib/parsers/parse-dds.js +7 -7
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
- package/dist/esm/lib/parsers/parse-pvr.js +28 -28
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/esm/lib/utils/ktx-format-helper.js +67 -67
- package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/{gl-constants.d.ts → gl-extensions.d.ts} +2 -2
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
- package/dist/lib/parsers/parse-basis.js +31 -7
- package/dist/lib/parsers/parse-crunch.js +4 -4
- package/dist/lib/parsers/parse-dds.js +7 -7
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
- package/dist/lib/parsers/parse-pvr.js +70 -28
- package/dist/lib/utils/ktx-format-helper.js +67 -67
- package/package.json +5 -5
- package/src/index.ts +1 -1
- package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
- package/src/lib/parsers/parse-basis.js +31 -7
- package/src/lib/parsers/parse-crunch.ts +4 -4
- package/src/lib/parsers/parse-dds.ts +7 -7
- package/src/lib/parsers/parse-pvr.ts +70 -28
- package/src/lib/utils/ktx-format-helper.ts +67 -67
- package/dist/es5/lib/gl-constants.js.map +0 -1
- package/dist/esm/lib/gl-constants.js.map +0 -1
- package/dist/lib/gl-constants.d.ts.map +0 -1
|
@@ -389,8 +389,8 @@
|
|
|
389
389
|
return options.sizeFunction(data[index]);
|
|
390
390
|
}
|
|
391
391
|
|
|
392
|
-
// src/lib/gl-
|
|
393
|
-
var
|
|
392
|
+
// src/lib/gl-extensions.ts
|
|
393
|
+
var GL_EXTENSIONS_CONSTANTS = {
|
|
394
394
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
395
395
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
396
396
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
@@ -453,72 +453,72 @@
|
|
|
453
453
|
|
|
454
454
|
// src/lib/utils/ktx-format-helper.ts
|
|
455
455
|
var VULKAN_TO_WEBGL_FORMAT_MAP = {
|
|
456
|
-
131:
|
|
457
|
-
132:
|
|
458
|
-
133:
|
|
459
|
-
134:
|
|
460
|
-
135:
|
|
461
|
-
136:
|
|
462
|
-
137:
|
|
463
|
-
138:
|
|
464
|
-
139:
|
|
465
|
-
140:
|
|
466
|
-
141:
|
|
467
|
-
142:
|
|
468
|
-
147:
|
|
469
|
-
148:
|
|
470
|
-
149:
|
|
471
|
-
150:
|
|
472
|
-
151:
|
|
473
|
-
152:
|
|
474
|
-
153:
|
|
475
|
-
154:
|
|
476
|
-
155:
|
|
477
|
-
156:
|
|
478
|
-
157:
|
|
479
|
-
158:
|
|
480
|
-
159:
|
|
481
|
-
160:
|
|
482
|
-
161:
|
|
483
|
-
162:
|
|
484
|
-
163:
|
|
485
|
-
164:
|
|
486
|
-
165:
|
|
487
|
-
166:
|
|
488
|
-
167:
|
|
489
|
-
168:
|
|
490
|
-
169:
|
|
491
|
-
170:
|
|
492
|
-
171:
|
|
493
|
-
172:
|
|
494
|
-
173:
|
|
495
|
-
174:
|
|
496
|
-
175:
|
|
497
|
-
176:
|
|
498
|
-
177:
|
|
499
|
-
178:
|
|
500
|
-
179:
|
|
501
|
-
180:
|
|
502
|
-
181:
|
|
503
|
-
182:
|
|
504
|
-
183:
|
|
505
|
-
184:
|
|
506
|
-
1000054e3:
|
|
507
|
-
1000054001:
|
|
508
|
-
1000066e3:
|
|
509
|
-
1000066001:
|
|
510
|
-
1000066002:
|
|
511
|
-
1000066003:
|
|
512
|
-
1000066004:
|
|
513
|
-
1000066005:
|
|
514
|
-
1000066006:
|
|
515
|
-
1000066007:
|
|
516
|
-
1000066008:
|
|
517
|
-
1000066009:
|
|
518
|
-
1000066010:
|
|
519
|
-
1000066011:
|
|
520
|
-
1000066012:
|
|
521
|
-
1000066013:
|
|
456
|
+
131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
457
|
+
132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,
|
|
458
|
+
133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
|
|
459
|
+
134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
|
|
460
|
+
135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
461
|
+
136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
|
|
462
|
+
137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
463
|
+
138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
|
|
464
|
+
139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,
|
|
465
|
+
140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,
|
|
466
|
+
141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,
|
|
467
|
+
142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
|
|
468
|
+
147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,
|
|
469
|
+
148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,
|
|
470
|
+
149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
471
|
+
150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
472
|
+
151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,
|
|
473
|
+
152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
|
|
474
|
+
153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,
|
|
475
|
+
154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
|
|
476
|
+
155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
|
|
477
|
+
156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
|
|
478
|
+
157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
479
|
+
158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
|
|
480
|
+
159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
481
|
+
160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
|
|
482
|
+
161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
483
|
+
162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
|
|
484
|
+
163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
485
|
+
164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
|
|
486
|
+
165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
487
|
+
166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
|
|
488
|
+
167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
489
|
+
168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
|
|
490
|
+
169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
491
|
+
170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
|
|
492
|
+
171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
493
|
+
172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
|
|
494
|
+
173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
495
|
+
174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
|
|
496
|
+
175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
497
|
+
176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
|
|
498
|
+
177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
499
|
+
178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
|
|
500
|
+
179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
501
|
+
180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
|
|
502
|
+
181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
503
|
+
182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
|
|
504
|
+
183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
|
|
505
|
+
184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
|
|
506
|
+
1000054e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
|
|
507
|
+
1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
|
|
508
|
+
1000066e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
509
|
+
1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
510
|
+
1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
511
|
+
1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
512
|
+
1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
513
|
+
1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
514
|
+
1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
515
|
+
1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
516
|
+
1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
517
|
+
1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
518
|
+
1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
519
|
+
1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
520
|
+
1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
521
|
+
1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
|
|
522
522
|
};
|
|
523
523
|
function mapVkFormatToWebGL(vkFormat) {
|
|
524
524
|
return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
|
|
@@ -576,12 +576,12 @@
|
|
|
576
576
|
DDPF_FOURCC: 4
|
|
577
577
|
};
|
|
578
578
|
var DDS_PIXEL_FORMATS = {
|
|
579
|
-
DXT1:
|
|
580
|
-
DXT3:
|
|
581
|
-
DXT5:
|
|
582
|
-
"ATC ":
|
|
583
|
-
ATCA:
|
|
584
|
-
ATCI:
|
|
579
|
+
DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
580
|
+
DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
581
|
+
DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
582
|
+
"ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
|
|
583
|
+
ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
|
|
584
|
+
ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
|
|
585
585
|
};
|
|
586
586
|
var getATCLevelSize = getDxt1LevelSize;
|
|
587
587
|
var getATCALevelSize = getDxtXLevelSize;
|
|
@@ -648,33 +648,75 @@
|
|
|
648
648
|
METADATA_SIZE_INDEX: 12
|
|
649
649
|
};
|
|
650
650
|
var PVR_PIXEL_FORMATS = {
|
|
651
|
-
0: [
|
|
652
|
-
1: [
|
|
653
|
-
2: [
|
|
654
|
-
3: [
|
|
655
|
-
6: [
|
|
656
|
-
7: [
|
|
657
|
-
9: [
|
|
658
|
-
11: [
|
|
659
|
-
22: [
|
|
660
|
-
23: [
|
|
661
|
-
24: [
|
|
662
|
-
25: [
|
|
663
|
-
26: [
|
|
664
|
-
27: [
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
651
|
+
0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
|
|
652
|
+
1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
|
|
653
|
+
2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
|
|
654
|
+
3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
|
|
655
|
+
6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
|
|
656
|
+
7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
|
|
657
|
+
9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
|
|
658
|
+
11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
|
|
659
|
+
22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
|
|
660
|
+
23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
|
|
661
|
+
24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
|
|
662
|
+
25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
|
|
663
|
+
26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
|
|
664
|
+
27: [
|
|
665
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
|
|
666
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
|
|
667
|
+
],
|
|
668
|
+
28: [
|
|
669
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
|
|
670
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
|
|
671
|
+
],
|
|
672
|
+
29: [
|
|
673
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
|
|
674
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
|
|
675
|
+
],
|
|
676
|
+
30: [
|
|
677
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
|
|
678
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
|
|
679
|
+
],
|
|
680
|
+
31: [
|
|
681
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
|
|
682
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
|
|
683
|
+
],
|
|
684
|
+
32: [
|
|
685
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
|
|
686
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
|
|
687
|
+
],
|
|
688
|
+
33: [
|
|
689
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
|
|
690
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
|
|
691
|
+
],
|
|
692
|
+
34: [
|
|
693
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
|
|
694
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
|
|
695
|
+
],
|
|
696
|
+
35: [
|
|
697
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
|
|
698
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
|
|
699
|
+
],
|
|
700
|
+
36: [
|
|
701
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
|
|
702
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
|
|
703
|
+
],
|
|
704
|
+
37: [
|
|
705
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
|
|
706
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
|
|
707
|
+
],
|
|
708
|
+
38: [
|
|
709
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
|
|
710
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
|
|
711
|
+
],
|
|
712
|
+
39: [
|
|
713
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
|
|
714
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
|
|
715
|
+
],
|
|
716
|
+
40: [
|
|
717
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
|
|
718
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
|
|
719
|
+
]
|
|
678
720
|
};
|
|
679
721
|
var PVR_SIZE_FUNCTIONS = {
|
|
680
722
|
0: pvrtc2bppSize,
|
|
@@ -908,17 +950,41 @@
|
|
|
908
950
|
|
|
909
951
|
// src/lib/parsers/parse-basis.js
|
|
910
952
|
var OutputFormat = {
|
|
911
|
-
etc1: {
|
|
953
|
+
etc1: {
|
|
954
|
+
basisFormat: 0,
|
|
955
|
+
compressed: true,
|
|
956
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
957
|
+
},
|
|
912
958
|
etc2: { basisFormat: 1, compressed: true },
|
|
913
|
-
bc1: {
|
|
914
|
-
|
|
959
|
+
bc1: {
|
|
960
|
+
basisFormat: 2,
|
|
961
|
+
compressed: true,
|
|
962
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
963
|
+
},
|
|
964
|
+
bc3: {
|
|
965
|
+
basisFormat: 3,
|
|
966
|
+
compressed: true,
|
|
967
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
968
|
+
},
|
|
915
969
|
bc4: { basisFormat: 4, compressed: true },
|
|
916
970
|
bc5: { basisFormat: 5, compressed: true },
|
|
917
971
|
"bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
|
|
918
972
|
"bc7-m5": { basisFormat: 7, compressed: true },
|
|
919
|
-
"pvrtc1-4-rgb": {
|
|
920
|
-
|
|
921
|
-
|
|
973
|
+
"pvrtc1-4-rgb": {
|
|
974
|
+
basisFormat: 8,
|
|
975
|
+
compressed: true,
|
|
976
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
977
|
+
},
|
|
978
|
+
"pvrtc1-4-rgba": {
|
|
979
|
+
basisFormat: 9,
|
|
980
|
+
compressed: true,
|
|
981
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
982
|
+
},
|
|
983
|
+
"astc-4x4": {
|
|
984
|
+
basisFormat: 10,
|
|
985
|
+
compressed: true,
|
|
986
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
987
|
+
},
|
|
922
988
|
"atc-rgb": { basisFormat: 11, compressed: true },
|
|
923
989
|
"atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
|
|
924
990
|
rgba32: { basisFormat: 13, compressed: false },
|
package/dist/crunch-worker.js
CHANGED
|
@@ -293,8 +293,8 @@
|
|
|
293
293
|
return crunchModule;
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
// src/lib/gl-
|
|
297
|
-
var
|
|
296
|
+
// src/lib/gl-extensions.ts
|
|
297
|
+
var GL_EXTENSIONS_CONSTANTS = {
|
|
298
298
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
299
299
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
300
300
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
@@ -393,12 +393,12 @@
|
|
|
393
393
|
|
|
394
394
|
// src/lib/parsers/parse-dds.ts
|
|
395
395
|
var DDS_PIXEL_FORMATS = {
|
|
396
|
-
DXT1:
|
|
397
|
-
DXT3:
|
|
398
|
-
DXT5:
|
|
399
|
-
"ATC ":
|
|
400
|
-
ATCA:
|
|
401
|
-
ATCI:
|
|
396
|
+
DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
397
|
+
DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
398
|
+
DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
399
|
+
"ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
|
|
400
|
+
ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
|
|
401
|
+
ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
|
|
402
402
|
};
|
|
403
403
|
function getDxt1LevelSize(width, height) {
|
|
404
404
|
return (width + 3 >> 2) * (height + 3 >> 2) * 8;
|
|
@@ -416,15 +416,15 @@
|
|
|
416
416
|
};
|
|
417
417
|
var DXT_FORMAT_MAP = {};
|
|
418
418
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = {
|
|
419
|
-
pixelFormat:
|
|
419
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
420
420
|
sizeFunction: getDxt1LevelSize
|
|
421
421
|
};
|
|
422
422
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = {
|
|
423
|
-
pixelFormat:
|
|
423
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
424
424
|
sizeFunction: getDxtXLevelSize
|
|
425
425
|
};
|
|
426
426
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = {
|
|
427
|
-
pixelFormat:
|
|
427
|
+
pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
428
428
|
sizeFunction: getDxtXLevelSize
|
|
429
429
|
};
|
|
430
430
|
var cachedDstSize = 0;
|
package/dist/es5/index.js
CHANGED
|
@@ -81,10 +81,10 @@ Object.defineProperty(exports, "loadImageTextureCube", {
|
|
|
81
81
|
return _loadImageCube.loadImageTextureCube;
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
|
-
Object.defineProperty(exports, "
|
|
84
|
+
Object.defineProperty(exports, "GL_EXTENSIONS_CONSTANTS", {
|
|
85
85
|
enumerable: true,
|
|
86
86
|
get: function () {
|
|
87
|
-
return
|
|
87
|
+
return _glExtensions.GL_EXTENSIONS_CONSTANTS;
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
90
|
Object.defineProperty(exports, "selectSupportedBasisFormat", {
|
|
@@ -118,7 +118,7 @@ var _loadImageArray = require("./lib/texture-api/load-image-array");
|
|
|
118
118
|
|
|
119
119
|
var _loadImageCube = require("./lib/texture-api/load-image-cube");
|
|
120
120
|
|
|
121
|
-
var
|
|
121
|
+
var _glExtensions = require("./lib/gl-extensions");
|
|
122
122
|
|
|
123
123
|
var _parseBasis = require("./lib/parsers/parse-basis");
|
|
124
124
|
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA","sourcesContent":["// Types\nexport type {GPUTextureFormat} from './types';\nexport type {TextureLoaderOptions} from './compressed-texture-loader';\n\n// Loaders\nexport {BasisLoader, BasisWorkerLoader} from './basis-loader';\nexport {CompressedTextureLoader, CompressedTextureWorkerLoader} from './compressed-texture-loader';\nexport {CrunchLoader} from './crunch-loader';\nexport {NPYLoader, NPYWorkerLoader} from './npy-loader';\n\n// Writers\nexport {CompressedTextureWriter} from './compressed-texture-writer';\nexport {KTX2BasisUniversalTextureWriter} from './ktx2-basis-universal-texture-writer';\n\n// Texture Loading API\nexport {loadImageTexture} from './lib/texture-api/load-image';\nexport {loadImageTextureArray} from './lib/texture-api/load-image-array';\nexport {loadImageTextureCube} from './lib/texture-api/load-image-cube';\n\n// Utilities\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AAGA;;AACA;;AACA;;AAGA;;AACA;;AACA","sourcesContent":["// Types\nexport type {GPUTextureFormat} from './types';\nexport type {TextureLoaderOptions} from './compressed-texture-loader';\n\n// Loaders\nexport {BasisLoader, BasisWorkerLoader} from './basis-loader';\nexport {CompressedTextureLoader, CompressedTextureWorkerLoader} from './compressed-texture-loader';\nexport {CrunchLoader} from './crunch-loader';\nexport {NPYLoader, NPYWorkerLoader} from './npy-loader';\n\n// Writers\nexport {CompressedTextureWriter} from './compressed-texture-writer';\nexport {KTX2BasisUniversalTextureWriter} from './ktx2-basis-universal-texture-writer';\n\n// Texture Loading API\nexport {loadImageTexture} from './lib/texture-api/load-image';\nexport {loadImageTextureArray} from './lib/texture-api/load-image-array';\nexport {loadImageTextureCube} from './lib/texture-api/load-image-cube';\n\n// Utilities\nexport {GL_EXTENSIONS_CONSTANTS} from './lib/gl-extensions';\nexport {selectSupportedBasisFormat} from './lib/parsers/parse-basis';\nexport {getSupportedGPUTextureFormats} from './lib/utils/texture-formats';\n\n// DEPRECATED\nexport {CrunchLoader as CrunchWorkerLoader} from './crunch-loader';\n"],"file":"index.js"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
const
|
|
6
|
+
exports.GL_EXTENSIONS_CONSTANTS = void 0;
|
|
7
|
+
const GL_EXTENSIONS_CONSTANTS = {
|
|
8
8
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,
|
|
9
9
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,
|
|
10
10
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,
|
|
@@ -64,5 +64,5 @@ const GL = {
|
|
|
64
64
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,
|
|
65
65
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f
|
|
66
66
|
};
|
|
67
|
-
exports.
|
|
68
|
-
//# sourceMappingURL=gl-
|
|
67
|
+
exports.GL_EXTENSIONS_CONSTANTS = GL_EXTENSIONS_CONSTANTS;
|
|
68
|
+
//# sourceMappingURL=gl-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/gl-extensions.ts"],"names":["GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"],"mappings":";;;;;;AACO,MAAMA,uBAAuB,GAAG;AAGrCC,EAAAA,4BAA4B,EAAE,MAHO;AAIrCC,EAAAA,6BAA6B,EAAE,MAJM;AAKrCC,EAAAA,6BAA6B,EAAE,MALM;AAMrCC,EAAAA,6BAA6B,EAAE,MANM;AAUrCC,EAAAA,kBAAkB,EAAE,MAViB;AAWrCC,EAAAA,yBAAyB,EAAE,MAXU;AAYrCC,EAAAA,mBAAmB,EAAE,MAZgB;AAarCC,EAAAA,0BAA0B,EAAE,MAbS;AAcrCC,EAAAA,oBAAoB,EAAE,MAde;AAerCC,EAAAA,yBAAyB,EAAE,MAfU;AAgBrCC,EAAAA,qBAAqB,EAAE,MAhBc;AAiBrCC,EAAAA,gCAAgC,EAAE,MAjBG;AAkBrCC,EAAAA,wCAAwC,EAAE,MAlBL;AAmBrCC,EAAAA,yCAAyC,EAAE,MAnBN;AAuBrCC,EAAAA,+BAA+B,EAAE,MAvBI;AAwBrCC,EAAAA,gCAAgC,EAAE,MAxBG;AAyBrCC,EAAAA,+BAA+B,EAAE,MAzBI;AA0BrCC,EAAAA,gCAAgC,EAAE,MA1BG;AA8BrCC,EAAAA,yBAAyB,EAAE,MA9BU;AAkCrCC,EAAAA,wBAAwB,EAAE,MAlCW;AAmCrCC,EAAAA,wCAAwC,EAAE,MAnCL;AAoCrCC,EAAAA,4CAA4C,EAAE,MApCT;AAwCrCC,EAAAA,4BAA4B,EAAE,MAxCO;AAyCrCC,EAAAA,4BAA4B,EAAE,MAzCO;AA0CrCC,EAAAA,4BAA4B,EAAE,MA1CO;AA2CrCC,EAAAA,4BAA4B,EAAE,MA3CO;AA4CrCC,EAAAA,4BAA4B,EAAE,MA5CO;AA6CrCC,EAAAA,4BAA4B,EAAE,MA7CO;AA8CrCC,EAAAA,4BAA4B,EAAE,MA9CO;AA+CrCC,EAAAA,4BAA4B,EAAE,MA/CO;AAgDrCC,EAAAA,6BAA6B,EAAE,MAhDM;AAiDrCC,EAAAA,6BAA6B,EAAE,MAjDM;AAkDrCC,EAAAA,6BAA6B,EAAE,MAlDM;AAmDrCC,EAAAA,8BAA8B,EAAE,MAnDK;AAoDrCC,EAAAA,8BAA8B,EAAE,MApDK;AAqDrCC,EAAAA,8BAA8B,EAAE,MArDK;AAsDrCC,EAAAA,oCAAoC,EAAE,MAtDD;AAuDrCC,EAAAA,oCAAoC,EAAE,MAvDD;AAwDrCC,EAAAA,oCAAoC,EAAE,MAxDD;AAyDrCC,EAAAA,oCAAoC,EAAE,MAzDD;AA0DrCC,EAAAA,oCAAoC,EAAE,MA1DD;AA2DrCC,EAAAA,oCAAoC,EAAE,MA3DD;AA4DrCC,EAAAA,oCAAoC,EAAE,MA5DD;AA6DrCC,EAAAA,oCAAoC,EAAE,MA7DD;AA8DrCC,EAAAA,qCAAqC,EAAE,MA9DF;AA+DrCC,EAAAA,qCAAqC,EAAE,MA/DF;AAgErCC,EAAAA,qCAAqC,EAAE,MAhEF;AAiErCC,EAAAA,sCAAsC,EAAE,MAjEH;AAkErCC,EAAAA,sCAAsC,EAAE,MAlEH;AAmErCC,EAAAA,sCAAsC,EAAE,MAnEH;AAuErCC,EAAAA,wBAAwB,EAAE,MAvEW;AAwErCC,EAAAA,+BAA+B,EAAE,MAxEI;AAyErCC,EAAAA,8BAA8B,EAAE,MAzEK;AA0ErCC,EAAAA,qCAAqC,EAAE,MA1EF;AA8ErCC,EAAAA,6BAA6B,EAAE,MA9EM;AA+ErCC,EAAAA,mCAAmC,EAAE,MA/EA;AAgFrCC,EAAAA,mCAAmC,EAAE,MAhFA;AAiFrCC,EAAAA,mCAAmC,EAAE;AAjFA,CAAhC","sourcesContent":["/* eslint-disable camelcase */\nexport const GL_EXTENSIONS_CONSTANTS = {\n // WEBGL_compressed_texture_s3tc\n\n COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,\n COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,\n COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,\n COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83f3,\n\n // WEBGL_compressed_texture_es3\n\n COMPRESSED_R11_EAC: 0x9270,\n COMPRESSED_SIGNED_R11_EAC: 0x9271,\n COMPRESSED_RG11_EAC: 0x9272,\n COMPRESSED_SIGNED_RG11_EAC: 0x9273,\n COMPRESSED_RGB8_ETC2: 0x9274,\n COMPRESSED_RGBA8_ETC2_EAC: 0x9275,\n COMPRESSED_SRGB8_ETC2: 0x9276,\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9277,\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9278,\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9279,\n\n // WEBGL_compressed_texture_pvrtc\n\n COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8c00,\n COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8c02,\n COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8c01,\n COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8c03,\n\n // WEBGL_compressed_texture_etc1\n\n COMPRESSED_RGB_ETC1_WEBGL: 0x8d64,\n\n // WEBGL_compressed_texture_atc\n\n COMPRESSED_RGB_ATC_WEBGL: 0x8c92,\n COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 0x8c93,\n COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 0x87ee,\n\n // WEBGL_compressed_texture_astc\n\n COMPRESSED_RGBA_ASTC_4X4_KHR: 0x93b0,\n COMPRESSED_RGBA_ASTC_5X4_KHR: 0x93b1,\n COMPRESSED_RGBA_ASTC_5X5_KHR: 0x93b2,\n COMPRESSED_RGBA_ASTC_6X5_KHR: 0x93b3,\n COMPRESSED_RGBA_ASTC_6X6_KHR: 0x93b4,\n COMPRESSED_RGBA_ASTC_8X5_KHR: 0x93b5,\n COMPRESSED_RGBA_ASTC_8X6_KHR: 0x93b6,\n COMPRESSED_RGBA_ASTC_8X8_KHR: 0x93b7,\n COMPRESSED_RGBA_ASTC_10X5_KHR: 0x93b8,\n COMPRESSED_RGBA_ASTC_10X6_KHR: 0x93b9,\n COMPRESSED_RGBA_ASTC_10X8_KHR: 0x93ba,\n COMPRESSED_RGBA_ASTC_10X10_KHR: 0x93bb,\n COMPRESSED_RGBA_ASTC_12X10_KHR: 0x93bc,\n COMPRESSED_RGBA_ASTC_12X12_KHR: 0x93bd,\n COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 0x93d0,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 0x93d1,\n COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 0x93d2,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 0x93d3,\n COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 0x93d4,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 0x93d5,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 0x93d6,\n COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 0x93d7,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 0x93d8,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 0x93d9,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 0x93da,\n COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 0x93db,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 0x93dc,\n COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 0x93dd,\n\n // EXT_texture_compression_rgtc\n\n COMPRESSED_RED_RGTC1_EXT: 0x8dbb,\n COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8dbc,\n COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8dbd,\n COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8dbe,\n\n // WEBGL_compressed_texture_s3tc_srgb\n\n COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8c4c,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8c4d,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,\n COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f\n};\n"],"file":"gl-extensions.js"}
|
|
@@ -8,7 +8,7 @@ exports.loadBasisEncoderModule = loadBasisEncoderModule;
|
|
|
8
8
|
|
|
9
9
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
10
10
|
|
|
11
|
-
const VERSION = typeof "3.1.0-beta.
|
|
11
|
+
const VERSION = typeof "3.1.0-beta.7" !== 'undefined' ? "3.1.0-beta.7" : 'beta';
|
|
12
12
|
const BASIS_CDN_ENCODER_WASM = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.wasm");
|
|
13
13
|
const BASIS_CDN_ENCODER_JS = "https://unpkg.com/@loaders.gl/textures@".concat(VERSION, "/dist/libs/basis_encoder.js");
|
|
14
14
|
let loadBasisTranscoderPromise;
|
|
@@ -8,7 +8,7 @@ exports.selectSupportedBasisFormat = selectSupportedBasisFormat;
|
|
|
8
8
|
|
|
9
9
|
var _basisModuleLoader = require("./basis-module-loader");
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _glExtensions = require("../gl-extensions");
|
|
12
12
|
|
|
13
13
|
var _textureFormats = require("../utils/texture-formats");
|
|
14
14
|
|
|
@@ -18,7 +18,7 @@ const OutputFormat = {
|
|
|
18
18
|
etc1: {
|
|
19
19
|
basisFormat: 0,
|
|
20
20
|
compressed: true,
|
|
21
|
-
format:
|
|
21
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
22
22
|
},
|
|
23
23
|
etc2: {
|
|
24
24
|
basisFormat: 1,
|
|
@@ -27,12 +27,12 @@ const OutputFormat = {
|
|
|
27
27
|
bc1: {
|
|
28
28
|
basisFormat: 2,
|
|
29
29
|
compressed: true,
|
|
30
|
-
format:
|
|
30
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
31
31
|
},
|
|
32
32
|
bc3: {
|
|
33
33
|
basisFormat: 3,
|
|
34
34
|
compressed: true,
|
|
35
|
-
format:
|
|
35
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
36
36
|
},
|
|
37
37
|
bc4: {
|
|
38
38
|
basisFormat: 4,
|
|
@@ -53,17 +53,17 @@ const OutputFormat = {
|
|
|
53
53
|
'pvrtc1-4-rgb': {
|
|
54
54
|
basisFormat: 8,
|
|
55
55
|
compressed: true,
|
|
56
|
-
format:
|
|
56
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
57
57
|
},
|
|
58
58
|
'pvrtc1-4-rgba': {
|
|
59
59
|
basisFormat: 9,
|
|
60
60
|
compressed: true,
|
|
61
|
-
format:
|
|
61
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
62
62
|
},
|
|
63
63
|
'astc-4x4': {
|
|
64
64
|
basisFormat: 10,
|
|
65
65
|
compressed: true,
|
|
66
|
-
format:
|
|
66
|
+
format: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
67
67
|
},
|
|
68
68
|
'atc-rgb': {
|
|
69
69
|
basisFormat: 11,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/parse-basis.js"],"names":["OutputFormat","etc1","basisFormat","compressed","format","GL","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","data","options","basis","containerFormat","fileConstructors","parseKTX2File","KTX2File","BasisFile","parseBasisFile","module","basisFile","Uint8Array","startTranscoding","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","alphaFlag","getImageLevelInfo","selectSupportedBasisFormat","alpha","noAlpha","toLowerCase","supportedFormats","has"],"mappings":"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","sourcesContent":["import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';\nimport {GL} from '../gl-constants';\nimport {getSupportedGPUTextureFormats} from '../utils/texture-formats';\nimport {isKTX} from './parse-ktx';\n\nconst OutputFormat = {\n etc1: {basisFormat: 0, compressed: true, format: GL.COMPRESSED_RGB_ETC1_WEBGL},\n etc2: {basisFormat: 1, compressed: true},\n bc1: {basisFormat: 2, compressed: true, format: GL.COMPRESSED_RGB_S3TC_DXT1_EXT},\n bc3: {basisFormat: 3, compressed: true, format: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT},\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {basisFormat: 8, compressed: true, format: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},\n 'pvrtc1-4-rgba': {basisFormat: 9, compressed: true, format: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},\n 'astc-4x4': {basisFormat: 10, compressed: true, format: GL.COMPRESSED_RGBA_ASTC_4X4_KHR},\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param {ArrayBuffer} data\n * @param {*} options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data, options) {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param {*} BasisFile - initialized transcoder module\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options) {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n return null;\n }\n\n const imageCount = basisFile.getNumImages();\n const images = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param {*} basisFile\n * @param {*} imageIndex\n * @param {*} levelIndex\n * @param {*} options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options) {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha,\n format\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param {*} KTX2File\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data, options) {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n return null;\n }\n const levelsCount = ktx2File.getLevels();\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return levels;\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param {*} ktx2File\n * @param {*} levelIndex\n * @param {*} options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex, options) {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param {*} options\n * @param {*} hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha) {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat() {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"file":"parse-basis.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/parse-basis.js"],"names":["OutputFormat","etc1","basisFormat","compressed","format","GL_EXTENSIONS_CONSTANTS","COMPRESSED_RGB_ETC1_WEBGL","etc2","bc1","COMPRESSED_RGB_S3TC_DXT1_EXT","bc3","COMPRESSED_RGBA_S3TC_DXT5_EXT","bc4","bc5","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_ASTC_4X4_KHR","rgba32","rgb565","bgr565","rgba4444","parseBasis","data","options","basis","containerFormat","fileConstructors","parseKTX2File","KTX2File","BasisFile","parseBasisFile","module","basisFile","Uint8Array","startTranscoding","imageCount","getNumImages","images","imageIndex","levelsCount","getNumLevels","levels","levelIndex","push","transcodeImage","close","delete","width","getImageWidth","height","getImageHeight","hasAlpha","getHasAlpha","getBasisOptions","decodedSize","getImageTranscodedSizeInBytes","decodedData","ktx2File","getLevels","transcodeKTX2Image","alphaFlag","getImageLevelInfo","selectSupportedBasisFormat","alpha","noAlpha","toLowerCase","supportedFormats","has"],"mappings":"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","sourcesContent":["import {loadBasisEncoderModule, loadBasisTrascoderModule} from './basis-module-loader';\nimport {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\nimport {getSupportedGPUTextureFormats} from '../utils/texture-formats';\nimport {isKTX} from './parse-ktx';\n\nconst OutputFormat = {\n etc1: {\n basisFormat: 0,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL\n },\n etc2: {basisFormat: 1, compressed: true},\n bc1: {\n basisFormat: 2,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT\n },\n bc3: {\n basisFormat: 3,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT\n },\n bc4: {basisFormat: 4, compressed: true},\n bc5: {basisFormat: 5, compressed: true},\n 'bc7-m6-opaque-only': {basisFormat: 6, compressed: true},\n 'bc7-m5': {basisFormat: 7, compressed: true},\n 'pvrtc1-4-rgb': {\n basisFormat: 8,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG\n },\n 'pvrtc1-4-rgba': {\n basisFormat: 9,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\n },\n 'astc-4x4': {\n basisFormat: 10,\n compressed: true,\n format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR\n },\n 'atc-rgb': {basisFormat: 11, compressed: true},\n 'atc-rgba-interpolated-alpha': {basisFormat: 12, compressed: true},\n rgba32: {basisFormat: 13, compressed: false},\n rgb565: {basisFormat: 14, compressed: false},\n bgr565: {basisFormat: 15, compressed: false},\n rgba4444: {basisFormat: 16, compressed: false}\n};\n\n/**\n * parse data with a Binomial Basis_Universal module\n * @param {ArrayBuffer} data\n * @param {*} options\n * @returns compressed texture data\n */\nexport default async function parseBasis(data, options) {\n if (options.basis.containerFormat === 'auto') {\n if (isKTX(data)) {\n const fileConstructors = await loadBasisEncoderModule(options);\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n }\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n switch (options.basis.module) {\n case 'encoder':\n const fileConstructors = await loadBasisEncoderModule(options);\n switch (options.basis.containerFormat) {\n case 'ktx2':\n return parseKTX2File(fileConstructors.KTX2File, data, options);\n case 'basis':\n default:\n return parseBasisFile(fileConstructors.BasisFile, data, options);\n }\n case 'transcoder':\n default:\n const {BasisFile} = await loadBasisTrascoderModule(options);\n return parseBasisFile(BasisFile, data, options);\n }\n}\n\n/**\n * Parse *.basis file data\n * @param {*} BasisFile - initialized transcoder module\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseBasisFile(BasisFile, data, options) {\n const basisFile = new BasisFile(new Uint8Array(data));\n\n try {\n if (!basisFile.startTranscoding()) {\n return null;\n }\n\n const imageCount = basisFile.getNumImages();\n const images = [];\n\n for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {\n const levelsCount = basisFile.getNumLevels(imageIndex);\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));\n }\n\n images.push(levels);\n }\n\n return images;\n } finally {\n basisFile.close();\n basisFile.delete();\n }\n}\n\n/**\n * Parse the particular level image of a basis file\n * @param {*} basisFile\n * @param {*} imageIndex\n * @param {*} levelIndex\n * @param {*} options\n * @returns compressed texture data\n */\nfunction transcodeImage(basisFile, imageIndex, levelIndex, options) {\n const width = basisFile.getImageWidth(imageIndex, levelIndex);\n const height = basisFile.getImageHeight(imageIndex, levelIndex);\n\n // See https://github.com/BinomialLLC/basis_universal/pull/83\n const hasAlpha = basisFile.getHasAlpha(/* imageIndex, levelIndex */);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, hasAlpha);\n\n const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);\n const decodedData = new Uint8Array(decodedSize);\n\n if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n hasAlpha,\n format\n };\n}\n\n/**\n * Parse *.ktx2 file data\n * @param {*} KTX2File\n * @param {*} data\n * @param {*} options\n * @returns compressed texture data\n */\nfunction parseKTX2File(KTX2File, data, options) {\n const ktx2File = new KTX2File(new Uint8Array(data));\n\n try {\n if (!ktx2File.startTranscoding()) {\n return null;\n }\n const levelsCount = ktx2File.getLevels();\n const levels = [];\n\n for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {\n levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));\n break; // texture app can only show one level for some reason\n }\n\n return levels;\n } finally {\n ktx2File.close();\n ktx2File.delete();\n }\n}\n\n/**\n * Parse the particular level image of a ktx2 file\n * @param {*} ktx2File\n * @param {*} levelIndex\n * @param {*} options\n * @returns\n */\nfunction transcodeKTX2Image(ktx2File, levelIndex, options) {\n const {alphaFlag, height, width} = ktx2File.getImageLevelInfo(levelIndex, 0, 0);\n\n // Check options for output format etc\n const {compressed, format, basisFormat} = getBasisOptions(options, alphaFlag);\n\n const decodedSize = ktx2File.getImageTranscodedSizeInBytes(\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat\n );\n const decodedData = new Uint8Array(decodedSize);\n\n if (\n !ktx2File.transcodeImage(\n decodedData,\n levelIndex,\n 0 /* layerIndex */,\n 0 /* faceIndex */,\n basisFormat,\n 0,\n -1 /* channel0 */,\n -1 /* channel1 */\n )\n ) {\n return null;\n }\n\n return {\n // standard loaders.gl image category payload\n width,\n height,\n data: decodedData,\n compressed,\n\n // Additional fields\n // Add levelSize field.\n alphaFlag,\n format\n };\n}\n\n/**\n * Get BasisFormat by loader format option\n * @param {*} options\n * @param {*} hasAlpha\n * @returns BasisFormat data\n */\nfunction getBasisOptions(options, hasAlpha) {\n let format = options && options.basis && options.basis.format;\n if (format === 'auto') {\n format = selectSupportedBasisFormat();\n }\n if (typeof format === 'object') {\n format = hasAlpha ? format.alpha : format.noAlpha;\n }\n format = format.toLowerCase();\n return OutputFormat[format];\n}\n\n/**\n * Select transcode format from the list of supported formats\n * @returns key for OutputFormat map\n */\nexport function selectSupportedBasisFormat() {\n const supportedFormats = getSupportedGPUTextureFormats();\n if (supportedFormats.has('astc')) {\n return 'astc-4x4';\n } else if (supportedFormats.has('dxt')) {\n return {\n alpha: 'bc3',\n noAlpha: 'bc1'\n };\n } else if (supportedFormats.has('pvrtc')) {\n return {\n alpha: 'pvrtc1-4-rgba',\n noAlpha: 'pvrtc1-4-rgb'\n };\n } else if (supportedFormats.has('etc1')) {\n return 'etc1';\n } else if (supportedFormats.has('etc2')) {\n return 'etc2';\n }\n return 'rgb565';\n}\n"],"file":"parse-basis.js"}
|
|
@@ -7,7 +7,7 @@ exports.parseCrunch = parseCrunch;
|
|
|
7
7
|
|
|
8
8
|
var _crunchModuleLoader = require("./crunch-module-loader");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _glExtensions = require("../gl-extensions");
|
|
11
11
|
|
|
12
12
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
13
13
|
|
|
@@ -23,15 +23,15 @@ const CRN_FORMAT = {
|
|
|
23
23
|
};
|
|
24
24
|
const DXT_FORMAT_MAP = {};
|
|
25
25
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = {
|
|
26
|
-
pixelFormat:
|
|
26
|
+
pixelFormat: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
27
27
|
sizeFunction: _parseDds.getDxt1LevelSize
|
|
28
28
|
};
|
|
29
29
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = {
|
|
30
|
-
pixelFormat:
|
|
30
|
+
pixelFormat: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
31
31
|
sizeFunction: _parseDds.getDxtXLevelSize
|
|
32
32
|
};
|
|
33
33
|
DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = {
|
|
34
|
-
pixelFormat:
|
|
34
|
+
pixelFormat: _glExtensions.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
35
35
|
sizeFunction: _parseDds.getDxtXLevelSize
|
|
36
36
|
};
|
|
37
37
|
let cachedDstSize = 0;
|