@eva/plugin-renderer 1.2.0-alpha.5 → 1.2.0

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.
@@ -370,6 +370,407 @@ var Transform = (function (_super) {
370
370
  }(EventEmitter__default));
371
371
  var Transform$1 = Transform;
372
372
 
373
+ var result = undefined;
374
+ function getSuportCompressedTextureFormats(gl) {
375
+ if (result)
376
+ return result;
377
+ if (!gl) {
378
+ console.warn('WebGL not available for compressed textures. Silently failing.');
379
+ return {
380
+ s3tc: false,
381
+ etc: false,
382
+ etc1: false,
383
+ pvrtc: false,
384
+ atc: false,
385
+ astc: false,
386
+ };
387
+ }
388
+ result = {
389
+ s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),
390
+ etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),
391
+ etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),
392
+ pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')
393
+ || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),
394
+ atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),
395
+ astc: !!gl.getExtension('WEBGL_compressed_texture_astc')
396
+ };
397
+ try {
398
+ console.log('Eva.js Supported Compressed Texture Format List: ' + Object.keys(result).filter(function (type) { return result[type]; }).join(', '));
399
+ }
400
+ catch (e) { }
401
+ return result;
402
+ }
403
+
404
+ var XLS = eva_js.resourceLoader.XhrLoadStrategy;
405
+ var XhrLoadStrategy = XLS;
406
+
407
+ var _a$2, _b;
408
+ var INTERNAL_FORMATS;
409
+ (function (INTERNAL_FORMATS) {
410
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
411
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
412
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
413
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
414
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
415
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
416
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
417
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
418
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_R11_EAC"] = 37488] = "COMPRESSED_R11_EAC";
419
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SIGNED_R11_EAC"] = 37489] = "COMPRESSED_SIGNED_R11_EAC";
420
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RG11_EAC"] = 37490] = "COMPRESSED_RG11_EAC";
421
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SIGNED_RG11_EAC"] = 37491] = "COMPRESSED_SIGNED_RG11_EAC";
422
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
423
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA8_ETC2_EAC"] = 37496] = "COMPRESSED_RGBA8_ETC2_EAC";
424
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ETC2"] = 37493] = "COMPRESSED_SRGB8_ETC2";
425
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"] = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
426
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
427
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
428
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_PVRTC_4BPPV1_IMG"] = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
429
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"] = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
430
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_PVRTC_2BPPV1_IMG"] = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
431
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"] = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
432
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_ETC1_WEBGL"] = 36196] = "COMPRESSED_RGB_ETC1_WEBGL";
433
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_ATC_WEBGL"] = 35986] = "COMPRESSED_RGB_ATC_WEBGL";
434
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL"] = 35986] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL";
435
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL"] = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL";
436
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_10x10_KHR"] = 37819] = "COMPRESSED_RGBA_ASTC_10x10_KHR";
437
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_10x5_KHR"] = 37816] = "COMPRESSED_RGBA_ASTC_10x5_KHR";
438
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_10x6_KHR"] = 37817] = "COMPRESSED_RGBA_ASTC_10x6_KHR";
439
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_10x8_KHR"] = 37818] = "COMPRESSED_RGBA_ASTC_10x8_KHR";
440
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_12x10_KHR"] = 37820] = "COMPRESSED_RGBA_ASTC_12x10_KHR";
441
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_12x12_KHR"] = 37821] = "COMPRESSED_RGBA_ASTC_12x12_KHR";
442
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_4x4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR";
443
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_5x4_KHR"] = 37809] = "COMPRESSED_RGBA_ASTC_5x4_KHR";
444
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_5x5_KHR"] = 37810] = "COMPRESSED_RGBA_ASTC_5x5_KHR";
445
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_6x5_KHR"] = 37811] = "COMPRESSED_RGBA_ASTC_6x5_KHR";
446
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_6x6_KHR"] = 37812] = "COMPRESSED_RGBA_ASTC_6x6_KHR";
447
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_8x5_KHR"] = 37813] = "COMPRESSED_RGBA_ASTC_8x5_KHR";
448
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_8x6_KHR"] = 37814] = "COMPRESSED_RGBA_ASTC_8x6_KHR";
449
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGBA_ASTC_8x8_KHR"] = 37815] = "COMPRESSED_RGBA_ASTC_8x8_KHR";
450
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 3781] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
451
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
452
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"] = 37849] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
453
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"] = 37850] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
454
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
455
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
456
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"] = 37840] = "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
457
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"] = 37841] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
458
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"] = 37842] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
459
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"] = 37843] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
460
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"] = 37844] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
461
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"] = 37845] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
462
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"] = 37846] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
463
+ INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
464
+ })(INTERNAL_FORMATS || (INTERNAL_FORMATS = {}));
465
+ var INTERNAL_FORMAT_TO_BLOCK_SIZE = (_a$2 = {},
466
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = [4, 4],
467
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = [4, 4],
468
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = [4, 4],
469
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = [4, 4],
470
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = [4, 4],
471
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = [4, 4],
472
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = [4, 4],
473
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = [4, 4],
474
+ _a$2[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = [4, 4],
475
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = [4, 4],
476
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = [4, 4],
477
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = [4, 4],
478
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = [4, 4],
479
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = [4, 4],
480
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = [4, 4],
481
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = [4, 4],
482
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = [4, 4],
483
+ _a$2[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = [4, 4],
484
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = [4, 4],
485
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = [4, 4],
486
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = [8, 4],
487
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = [8, 4],
488
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = [4, 4],
489
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = [4, 4],
490
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = [4, 4],
491
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = [4, 4],
492
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = [4, 4],
493
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = [5, 5],
494
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = [6, 6],
495
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = [8, 8],
496
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = [10, 10],
497
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = [12, 12],
498
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x5_KHR] = [10, 5],
499
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x6_KHR] = [10, 6],
500
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x8_KHR] = [10, 8],
501
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x10_KHR] = [12, 10],
502
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x4_KHR] = [5, 4],
503
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x5_KHR] = [6, 5],
504
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x5_KHR] = [8, 5],
505
+ _a$2[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x6_KHR] = [8, 6],
506
+ _a$2);
507
+ var INTERNAL_FORMATS_TO_EXTENSION_NAME = (_b = {},
508
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
509
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
510
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc',
511
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc',
512
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
513
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
514
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
515
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
516
+ _b[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = 'WEBGL_compressed_texture_etc',
517
+ _b[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = 'WEBGL_compressed_texture_etc',
518
+ _b[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
519
+ _b[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
520
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = 'WEBGL_compressed_texture_etc',
521
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
522
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = 'WEBGL_compressed_texture_etc',
523
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
524
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
525
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
526
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
527
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
528
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
529
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
530
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = 'WEBGL_compressed_texture_etc1',
531
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = 'WEBGL_compressed_texture_atc',
532
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
533
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
534
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = 'WEBGL_compressed_texture_astc',
535
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = 'WEBGL_compressed_texture_astc',
536
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = 'WEBGL_compressed_texture_astc',
537
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = 'WEBGL_compressed_texture_astc',
538
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = 'WEBGL_compressed_texture_astc',
539
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = 'WEBGL_compressed_texture_astc',
540
+ _b);
541
+
542
+ var CompressedTextureResource = (function () {
543
+ function CompressedTextureResource() {
544
+ this.levelBuffers = [];
545
+ }
546
+ CompressedTextureResource.prototype.upload = function (gl) {
547
+ var levels = this.levels;
548
+ var name = INTERNAL_FORMATS_TO_EXTENSION_NAME[this.internalFormat];
549
+ if (!gl[name]) {
550
+ gl[name] = true;
551
+ if (name === 'WEBGL_compressed_texture_pvrtc') {
552
+ gl.getExtension(name) || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');
553
+ }
554
+ else {
555
+ gl.getExtension(name);
556
+ }
557
+ }
558
+ for (var i = 0; i < this.levels; ++i) {
559
+ var _a = this.levelBuffers[i], levelWidth = _a.levelWidth, levelHeight = _a.levelHeight, levelBuffer = _a.levelBuffer;
560
+ gl.compressedTexImage2D(gl.TEXTURE_2D, i, this.internalFormat, levelWidth, levelHeight, 0, levelBuffer);
561
+ }
562
+ if (levels > 1) {
563
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
564
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
565
+ }
566
+ else {
567
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
568
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
569
+ }
570
+ };
571
+ return CompressedTextureResource;
572
+ }());
573
+
574
+ var FILE_HEADER_SIZE = 64;
575
+ var KTX_FIELDS = {
576
+ FILE_IDENTIFIER: 0,
577
+ ENDIANNESS: 12,
578
+ GL_TYPE: 16,
579
+ GL_TYPE_SIZE: 20,
580
+ GL_FORMAT: 24,
581
+ GL_INTERNAL_FORMAT: 28,
582
+ GL_BASE_INTERNAL_FORMAT: 32,
583
+ PIXEL_WIDTH: 36,
584
+ PIXEL_HEIGHT: 40,
585
+ PIXEL_DEPTH: 44,
586
+ NUMBER_OF_ARRAY_ELEMENTS: 48,
587
+ NUMBER_OF_FACES: 52,
588
+ NUMBER_OF_MIPMAP_LEVELS: 56,
589
+ BYTES_OF_KEY_VALUE_DATA: 60
590
+ };
591
+ var FILE_IDENTIFIER = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A];
592
+ var ENDIANNESS = 0x04030201;
593
+ var KTXTextureResource = (function (_super) {
594
+ __extends(KTXTextureResource, _super);
595
+ function KTXTextureResource(source, config) {
596
+ var _a;
597
+ var _this = _super.call(this) || this;
598
+ _this.complete = true;
599
+ _this.src = config.url;
600
+ var dataView = new DataView(source);
601
+ if (!validateKTX(dataView)) {
602
+ throw new Error('Not a valid KTX Texture');
603
+ }
604
+ var littleEndian = dataView.getUint32(KTX_FIELDS.ENDIANNESS, true) === ENDIANNESS;
605
+ _this.internalFormat = dataView.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT, littleEndian);
606
+ var pixelWidth = _this.formerWidth = dataView.getUint32(KTX_FIELDS.PIXEL_WIDTH, littleEndian);
607
+ var pixelHeight = _this.formerHeight = dataView.getUint32(KTX_FIELDS.PIXEL_HEIGHT, littleEndian) || 1;
608
+ var size = INTERNAL_FORMAT_TO_BLOCK_SIZE[_this.internalFormat];
609
+ _this.width = pixelWidth % size[0] === 0 ? pixelWidth : (pixelWidth + size[0] - (pixelWidth % size[0]));
610
+ _this.height = pixelHeight % size[1] === 0 ? pixelHeight : (pixelHeight + size[1] - (pixelHeight % size[1]));
611
+ var src = eva_js.resource.resourcesMap[config.metadata.name].src[config.metadata.key];
612
+ var _b = (_a = src === null || src === void 0 ? void 0 : src.size) !== null && _a !== void 0 ? _a : {}, width = _b.width, height = _b.height;
613
+ if (width && height) {
614
+ _this.naturalWidth = width;
615
+ _this.naturalHeight = height;
616
+ }
617
+ var pixelDepth = dataView.getUint32(KTX_FIELDS.PIXEL_DEPTH, littleEndian) || 1;
618
+ var numberOfArrayElements = dataView.getUint32(KTX_FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1;
619
+ var numberOfFaces = dataView.getUint32(KTX_FIELDS.NUMBER_OF_FACES, littleEndian);
620
+ var numberOfMipmapLevels = _this.levels = dataView.getUint32(KTX_FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian);
621
+ var bytesOfKeyValueData = dataView.getUint32(KTX_FIELDS.BYTES_OF_KEY_VALUE_DATA, littleEndian);
622
+ if (pixelHeight === 0 || pixelDepth !== 1) {
623
+ throw new Error('Only 2D textures are supported!');
624
+ }
625
+ if (numberOfFaces !== 1) {
626
+ throw new Error('CubeTextures are not supported!');
627
+ }
628
+ if (numberOfArrayElements !== 1) {
629
+ throw new Error('It does not support array textures!');
630
+ }
631
+ var mipWidth = pixelWidth;
632
+ var mipHeight = pixelHeight;
633
+ var imageOffset = FILE_HEADER_SIZE + bytesOfKeyValueData;
634
+ for (var mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {
635
+ var imageSize = dataView.getUint32(imageOffset, littleEndian);
636
+ imageOffset += 4;
637
+ var size_1 = INTERNAL_FORMAT_TO_BLOCK_SIZE[_this.internalFormat];
638
+ var levelWidth = mipWidth % size_1[0] === 0 ? mipWidth : mipWidth + size_1[0] - (mipWidth % size_1[0]);
639
+ var levelHeight = mipHeight % size_1[1] === 0 ? mipHeight : mipHeight + size_1[1] - (mipHeight % size_1[1]);
640
+ var mip = {
641
+ levelID: mipmapLevel,
642
+ levelWidth: levelWidth,
643
+ levelHeight: levelHeight,
644
+ levelBuffer: new Uint8Array(source, imageOffset, imageSize)
645
+ };
646
+ _this.levelBuffers.push(mip);
647
+ imageOffset += imageSize;
648
+ imageOffset += 3 - ((imageOffset + 3) % 4);
649
+ mipWidth = (mipWidth >> 1) || 1;
650
+ mipHeight = (mipHeight >> 1) || 1;
651
+ }
652
+ return _this;
653
+ }
654
+ return KTXTextureResource;
655
+ }(CompressedTextureResource));
656
+ function validateKTX(dataView) {
657
+ for (var i = 0; i < FILE_IDENTIFIER.length; i++) {
658
+ if (dataView.getUint8(i) !== FILE_IDENTIFIER[i]) {
659
+ return false;
660
+ }
661
+ }
662
+ return true;
663
+ }
664
+
665
+ var KTXLoadStrategy = (function (_super) {
666
+ __extends(KTXLoadStrategy, _super);
667
+ function KTXLoadStrategy() {
668
+ return _super !== null && _super.apply(this, arguments) || this;
669
+ }
670
+ KTXLoadStrategy.prototype._complete = function (type, data) {
671
+ _super.prototype._complete.call(this, type, new KTXTextureResource(data, this.config));
672
+ };
673
+ return KTXLoadStrategy;
674
+ }(XhrLoadStrategy));
675
+ var KTXLoadStrategy$1 = KTXLoadStrategy;
676
+
677
+ var XhrResponseType = eva_js.resourceLoader.XhrResponseType;
678
+ function addPreProcessResourceHandler(resource, gl) {
679
+ resource.addPreProcessResourceHandler(function normalizeResource(resource) {
680
+ var _a, _b, _c;
681
+ var textures = (_b = (_a = resource.src) === null || _a === void 0 ? void 0 : _a.image) === null || _b === void 0 ? void 0 : _b.texture;
682
+ if (!textures)
683
+ return;
684
+ if (!Array.isArray(textures)) {
685
+ textures = [textures];
686
+ }
687
+ var formats = (_c = getSuportCompressedTextureFormats(gl)) !== null && _c !== void 0 ? _c : {};
688
+ var target = textures.find(function (texture) { return formats[texture.type]; });
689
+ if (target) {
690
+ Object.assign(resource.src.image, target);
691
+ }
692
+ });
693
+ }
694
+ function addKTXStragetyAndRegister() {
695
+ Object.assign(eva_js.RESOURCE_TYPE_STRATEGY, {
696
+ astc: KTXLoadStrategy$1,
697
+ etc: KTXLoadStrategy$1,
698
+ pvrtc: KTXLoadStrategy$1,
699
+ s3tc: KTXLoadStrategy$1,
700
+ atc: KTXLoadStrategy$1,
701
+ });
702
+ KTXLoadStrategy$1.setExtensionXhrType('ktx', XhrResponseType.Buffer);
703
+ }
704
+
705
+ var GLTexture = pixi_js.glCore.GLTexture;
706
+ var GLTextureMixin = {
707
+ isCompressed: false,
708
+ uploadNotCompressed: GLTexture.prototype.upload,
709
+ upload: function (source) {
710
+ if (!(source instanceof CompressedTextureResource)) {
711
+ return this.uploadNotCompressed(source);
712
+ }
713
+ this.bind();
714
+ var gl = this.gl;
715
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);
716
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_NEAREST);
717
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
718
+ this.isCompressed = true;
719
+ source.upload(gl);
720
+ },
721
+ enableMipmap: function () {
722
+ if (this.isCompressed) {
723
+ return;
724
+ }
725
+ var gl = this.gl;
726
+ this.bind();
727
+ this.mipmap = true;
728
+ gl.generateMipmap(gl.TEXTURE_2D);
729
+ }
730
+ };
731
+
732
+ var _a$1;
733
+ var oldFrom$1 = Symbol();
734
+ var TextureMixin = (_a$1 = {},
735
+ _a$1[oldFrom$1] = pixi_js.Texture.from,
736
+ _a$1.from = function (source) {
737
+ if (!(source instanceof CompressedTextureResource)) {
738
+ return this[oldFrom$1](source);
739
+ }
740
+ return new pixi_js.Texture(pixi_js.BaseTexture.from(source));
741
+ },
742
+ _a$1);
743
+
744
+ var _a;
745
+ var oldFrom = Symbol();
746
+ var BaseTextureMixin = (_a = {},
747
+ _a[oldFrom] = pixi_js.BaseTexture.from,
748
+ _a.from = function (source, scaleMode, sourceScale) {
749
+ if (!(source instanceof CompressedTextureResource)) {
750
+ return this[oldFrom](source, scaleMode, sourceScale);
751
+ }
752
+ var imageUrl = source.src;
753
+ var baseTexture = pixi_js.utils.BaseTextureCache[imageUrl];
754
+ if (!baseTexture) {
755
+ baseTexture = new pixi_js.BaseTexture(source, scaleMode);
756
+ baseTexture.imageUrl = imageUrl;
757
+ if (sourceScale) {
758
+ baseTexture.sourceScale = sourceScale;
759
+ }
760
+ pixi_js.BaseTexture.addToCache(baseTexture, imageUrl);
761
+ }
762
+ return baseTexture;
763
+ },
764
+ _a);
765
+
766
+ function registerCompressedTexture(gl) {
767
+ addPreProcessResourceHandler(eva_js.resource, gl);
768
+ addKTXStragetyAndRegister();
769
+ Object.assign(pixi_js.glCore.GLTexture.prototype, GLTextureMixin);
770
+ Object.assign(pixi_js.Texture, TextureMixin);
771
+ Object.assign(pixi_js.BaseTexture, BaseTextureMixin);
772
+ }
773
+
373
774
  exports.RENDERER_TYPE = void 0;
374
775
  (function (RENDERER_TYPE) {
375
776
  RENDERER_TYPE[RENDERER_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
@@ -423,6 +824,11 @@ var Renderer$2 = (function (_super) {
423
824
  application: application,
424
825
  });
425
826
  });
827
+ var gl = this.application.renderer.gl;
828
+ if (gl) {
829
+ this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);
830
+ registerCompressedTexture(gl);
831
+ }
426
832
  };
427
833
  Renderer.prototype.registerObserver = function (observerInfo) {
428
834
  var _a;
@@ -568,6 +974,22 @@ var Renderer = (function (_super) {
568
974
  }(eva_js.System));
569
975
  var Renderer$1 = Renderer;
570
976
 
977
+ var mixinPIXI = function () {
978
+ pixi_js.BaseTexture.prototype.destroy = function () {
979
+ if (this.imageUrl) {
980
+ delete pixi_js.utils.TextureCache[this.imageUrl];
981
+ this.imageUrl = null;
982
+ }
983
+ this.source = null;
984
+ this.dispose();
985
+ pixi_js.BaseTexture.removeFromCache(this);
986
+ this.textureCacheIds = null;
987
+ this._destroyed = true;
988
+ };
989
+ };
990
+
991
+ mixinPIXI();
992
+
571
993
  exports.ContainerManager = ContainerManager$1;
572
994
  exports.Renderer = Renderer$1;
573
995
  exports.RendererManager = RendererManager$1;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),r=require("@eva/renderer-adapter"),t=require("lodash-es/isEqual"),n=require("eventemitter3"),a=require("pixi.js");function o(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var i=o(t),c=o(n),s=function(e,r){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t])})(e,r)};function l(e,r){function t(){this.constructor=e}s(e,r),e.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)}var p=function(){return(p=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var a in r=arguments[t])Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e}).apply(this,arguments)};function h(e,r,t,n){var a,o=arguments.length,i=o<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,t):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,r,t,n);else for(var c=e.length-1;c>=0;c--)(a=e[c])&&(i=(o<3?a(i):o>3?a(r,t,i):a(r,t))||i);return o>3&&i&&Object.defineProperty(r,t,i),i}function u(e){var r="function"==typeof Symbol&&e[Symbol.iterator],t=0;return r?r.call(e):{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}}}function f(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,a,o=t.call(e),i=[];try{for(;(void 0===r||r-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(e){a={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(a)throw a.error}}return i}function d(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(f(arguments[r]));return e}var v,y=function(){function r(e){var r=e.game,t=e.rendererSystem;this.renderers=[],this.game=r,this.rendererSystem=t}return r.prototype.register=function(){for(var e,r,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];try{for(var a=u(t),o=a.next();!o.done;o=a.next()){var i=o.value;i.game=this.game,i.rendererManager=this.rendererSystem.rendererManager,i.containerManager=this.rendererSystem.containerManager,this.renderers.push(i)}}catch(r){e={error:r}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(e)throw e.error}}},r.prototype.componentChanged=function(r){var t,n,a=function(r){var t,n;try{for(var a=(t=void 0,u(o.renderers)),c=a.next();!c.done;c=a.next()){var s=c.value,l=s.observerInfo[r.componentName];if(l){if([e.OBSERVER_TYPE.ADD,e.OBSERVER_TYPE.REMOVE].indexOf(r.type)>-1){try{s.componentChanged&&s.componentChanged(r)}catch(e){console.error("gameObject: "+r.gameObject.name+", "+r.componentName+" is error.",r,e)}continue}if(l.findIndex((function(e){return i(e,r.prop)}))>-1)try{s.componentChanged&&s.componentChanged(r)}catch(e){console.error("gameObject: "+(r.gameObject&&r.gameObject.name)+", "+r.componentName+" is componentChanged error.",r,e)}}}}catch(e){t={error:e}}finally{try{c&&!c.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}},o=this;try{for(var c=u(r),s=c.next();!s.done;s=c.next()){a(s.value)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}},r.prototype.update=function(e){var r,t,n,a;try{for(var o=u(e.components),i=o.next();!i.done;i=o.next()){var c=i.value;try{for(var s=(n=void 0,u(this.renderers)),l=s.next();!l.done;l=s.next()){var p=l.value,h=[];if(p.observerInfo[c.name]&&-1===h.indexOf(e)){h.push(e);try{p.rendererUpdate&&p.rendererUpdate(e)}catch(r){console.info("gameObject: "+e.name+", "+c.name+" is update error",r)}}}}catch(e){n={error:e}}finally{try{l&&!l.done&&(a=s.return)&&a.call(s)}finally{if(n)throw n.error}}}}catch(e){r={error:e}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(r)throw r.error}}},r}(),m=function(){function e(){this.containerMap={}}return e.prototype.addContainer=function(e){var r=e.name,t=e.container;this.containerMap[r]=t},e.prototype.getContainer=function(e){return this.containerMap[e]},e.prototype.removeContainer=function(e){var r;null===(r=this.containerMap[e])||void 0===r||r.destroy({children:!0}),delete this.containerMap[e]},e.prototype.updateTransform=function(e){var r=e.name,t=e.transform,n=this.containerMap[r];if(n){var a=t.anchor,o=t.origin,i=t.position,c=t.rotation,s=t.scale,l=t.size,p=t.skew;n.rotation=c,n.scale=s,n.pivot.x=l.width*o.x,n.pivot.y=l.height*o.y,n.skew=p;var h=i.x,u=i.y;if(t.parent){var f=t.parent;h+=f.size.width*a.x,u+=f.size.height*a.y}n.position={x:h,y:u}}},e}(),g=function(t){function n(e){var r=e.system,n=e.containerManager,a=t.call(this)||this;return a.name="Transform",a.waitRemoveIds=[],a.waitChangeScenes=[],a.containerManager=n,a.init(r),a}return l(n,t),n.prototype.init=function(e){var r=this;this.system=e,this.on("changeScene",(function(e){var t=e.scene,n=e.mode,a=e.application;r.waitChangeScenes.push({scene:t,mode:n,application:a})}))},n.prototype.update=function(){var e,r,t,n;try{for(var a=u(this.waitRemoveIds),o=a.next();!o.done;o=a.next()){var i=o.value;this.containerManager.removeContainer(i)}}catch(r){e={error:r}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(e)throw e.error}}this.waitRemoveIds=[];try{for(var c=u(this.waitChangeScenes),s=c.next();!s.done;s=c.next()){var l=s.value,p=this.containerManager.getContainer(l.scene.id);p&&(l.application.stage.removeChildren(),l.application.stage.addChild(p))}}catch(e){t={error:e}}finally{try{s&&!s.done&&(n=c.return)&&n.call(c)}finally{if(t)throw t.error}}this.waitChangeScenes=[]},n.prototype.componentChanged=function(r){r.type===e.OBSERVER_TYPE.ADD?this.addContainer(r):r.type===e.OBSERVER_TYPE.CHANGE?this.change(r):r.type===e.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(r.gameObject.id)},n.prototype.addContainer=function(e){var t=new r.Container;t.name=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t}),e.component.worldTransform=t.transform.worldTransform},n.prototype.change=function(e){var r=e.component;if(r.parent){this.containerManager.getContainer(r.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));var t=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");t&&(t.sortDirty=!0)}else{var n=this.containerManager.getContainer(e.gameObject.id);delete r.worldTransform,n.parent&&n.parent.removeChild(n)}},n.prototype.destroy=function(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null},n=h([e.decorators.componentObserver({Transform:["_parent"]})],n)}(c);exports.RENDERER_TYPE=void 0,(v=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[v.UNKNOWN=0]="UNKNOWN",v[v.WEBGL=1]="WEBGL",v[v.CANVAS=2]="CANVAS";var w=function(e){e.plugins.interaction.autoPreventDefault=!0,e.view.style.touchAction="none"},E=function(e){e.plugins.interaction.autoPreventDefault=!1,e.view.style.touchAction="auto"},O=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.multiApps=[],e}return l(n,t),n.prototype.init=function(r){var t=this;this.params=r,this.application=this.createApplication(r),this.containerManager=new m,this.rendererManager=new y({game:this.game,rendererSystem:this}),this.game.canvas=this.application.view,this.transform=new g({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(function(r){var n,a=r.scene,o=r.mode,i=r.params;switch(o){case e.LOAD_SCENE_MODE.SINGLE:n=t.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:n=t.createMultiApplication({params:i})}a.canvas=n.view,t.transform.emit("changeScene",{scene:a,mode:o,application:n})}))},n.prototype.registerObserver=function(e){var r,t=this.constructor.observerInfo;for(var n in e)t[n]||(t[n]=[]),(r=t[n]).push.apply(r,d(e[n]))},n.prototype.createMultiApplication=function(e){var r=e.params,t=this.createApplication(r);return this.multiApps.push(t),t},n.prototype.createApplication=function(e){e.view=e.canvas,e.renderType===exports.RENDERER_TYPE.CANVAS&&(e.forceCanvas=!0),a.ticker.shared.autoStart=!1,a.ticker.shared.stop();var t=new r.Application(p({sharedTicker:!0},e));return void 0!==e.preventScroll&&(console.warn("PreventScroll property will deprecate at next major version, please use enableEnable instead. https://eva.js.org/#/tutorials/game"),e.preventScroll?E(t.renderer):w(t.renderer)),void 0!==e.enableScroll&&(e.enableScroll?E(t.renderer):w(t.renderer)),void 0===e.preventScroll&&void 0===e.enableScroll&&E(t.renderer),t},n.prototype.update=function(){var e,r,t,n,a=this.componentObserver.clear();try{for(var o=u(a),i=o.next();!i.done;i=o.next()){var c=i.value;this.transform.componentChanged(c)}}catch(r){e={error:r}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}try{for(var s=u(this.game.gameObjects),l=s.next();!l.done;l=s.next()){var p=l.value;this.containerManager.updateTransform({name:p.id,transform:p.transform}),this.rendererManager.update(p)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(n=s.return)&&n.call(s)}finally{if(t)throw t.error}}},n.prototype.lateUpdate=function(e){this.transform.update(),this.application.ticker.update(e.time)},n.prototype.onDestroy=function(){var e,r;this.application.destroy();try{for(var t=u(this.multiApps),n=t.next();!n.done;n=t.next()){var a=n.value;a&&a.destroy()}}catch(r){e={error:r}}finally{try{n&&!n.done&&(r=t.return)&&r.call(t)}finally{if(e)throw e.error}}this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null},n.prototype.resize=function(e,r){this.params.width=e,this.params.height=r,this.application.renderer.resize(e,r)},n.systemName="Renderer",n=h([e.decorators.componentObserver({Transform:["_parent"]})],n)}(e.System),b=function(e){function r(r){var t=e.call(this,r)||this;return t.observerInfo=t.constructor.observerInfo,t}return l(r,e),r.prototype.componentChanged=function(e){},r.prototype.rendererUpdate=function(e){},r.prototype.update=function(e){var r,t,n=this.componentObserver.clear();try{for(var a=u(n),o=a.next();!o.done;o=a.next()){var i=o.value;this.componentChanged(i)}}catch(e){r={error:e}}finally{try{o&&!o.done&&(t=a.return)&&t.call(a)}finally{if(r)throw r.error}}},r}(e.System);exports.ContainerManager=m,exports.Renderer=b,exports.RendererManager=y,exports.RendererSystem=O;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@eva/eva.js"),t=require("@eva/renderer-adapter"),r=require("lodash-es/isEqual"),_=require("eventemitter3"),n=require("pixi.js");function o(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var E=o(r),a=o(_),S=function(e,t){return(S=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}S(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var R=function(){return(R=Object.assign||function(e){for(var t,r=1,_=arguments.length;r<_;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};function s(e,t,r,_){var n,o=arguments.length,E=o<3?t:null===_?_=Object.getOwnPropertyDescriptor(t,r):_;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)E=Reflect.decorate(e,t,r,_);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(E=(o<3?n(E):o>3?n(t,r,E):n(t,r))||E);return o>3&&E&&Object.defineProperty(t,r,E),E}function C(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function c(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var _,n,o=r.call(e),E=[];try{for(;(void 0===t||t-- >0)&&!(_=o.next()).done;)E.push(_.value)}catch(e){n={error:e}}finally{try{_&&!_.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return E}function A(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(c(arguments[t]));return e}var P=function(){function t(e){var t=e.game,r=e.rendererSystem;this.renderers=[],this.game=t,this.rendererSystem=r}return t.prototype.register=function(){for(var e,t,r=[],_=0;_<arguments.length;_++)r[_]=arguments[_];try{for(var n=C(r),o=n.next();!o.done;o=n.next()){var E=o.value;E.game=this.game,E.rendererManager=this.rendererSystem.rendererManager,E.containerManager=this.rendererSystem.containerManager,this.renderers.push(E)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},t.prototype.componentChanged=function(t){var r,_,n=function(t){var r,_;try{for(var n=(r=void 0,C(o.renderers)),a=n.next();!a.done;a=n.next()){var S=a.value,i=S.observerInfo[t.componentName];if(i){if([e.OBSERVER_TYPE.ADD,e.OBSERVER_TYPE.REMOVE].indexOf(t.type)>-1){try{S.componentChanged&&S.componentChanged(t)}catch(e){console.error("gameObject: "+t.gameObject.name+", "+t.componentName+" is error.",t,e)}continue}if(i.findIndex((function(e){return E(e,t.prop)}))>-1)try{S.componentChanged&&S.componentChanged(t)}catch(e){console.error("gameObject: "+(t.gameObject&&t.gameObject.name)+", "+t.componentName+" is componentChanged error.",t,e)}}}}catch(e){r={error:e}}finally{try{a&&!a.done&&(_=n.return)&&_.call(n)}finally{if(r)throw r.error}}},o=this;try{for(var a=C(t),S=a.next();!S.done;S=a.next()){n(S.value)}}catch(e){r={error:e}}finally{try{S&&!S.done&&(_=a.return)&&_.call(a)}finally{if(r)throw r.error}}},t.prototype.update=function(e){var t,r,_,n;try{for(var o=C(e.components),E=o.next();!E.done;E=o.next()){var a=E.value;try{for(var S=(_=void 0,C(this.renderers)),i=S.next();!i.done;i=S.next()){var R=i.value,s=[];if(R.observerInfo[a.name]&&-1===s.indexOf(e)){s.push(e);try{R.rendererUpdate&&R.rendererUpdate(e)}catch(t){console.info("gameObject: "+e.name+", "+a.name+" is update error",t)}}}}catch(e){_={error:e}}finally{try{i&&!i.done&&(n=S.return)&&n.call(S)}finally{if(_)throw _.error}}}}catch(e){t={error:e}}finally{try{E&&!E.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}},t}(),T=function(){function e(){this.containerMap={}}return e.prototype.addContainer=function(e){var t=e.name,r=e.container;this.containerMap[t]=r},e.prototype.getContainer=function(e){return this.containerMap[e]},e.prototype.removeContainer=function(e){var t;null===(t=this.containerMap[e])||void 0===t||t.destroy({children:!0}),delete this.containerMap[e]},e.prototype.updateTransform=function(e){var t=e.name,r=e.transform,_=this.containerMap[t];if(_){var n=r.anchor,o=r.origin,E=r.position,a=r.rotation,S=r.scale,i=r.size,R=r.skew;_.rotation=a,_.scale=S,_.pivot.x=i.width*o.x,_.pivot.y=i.height*o.y,_.skew=R;var s=E.x,C=E.y;if(r.parent){var c=r.parent;s+=c.size.width*n.x,C+=c.size.height*n.y}_.position={x:s,y:C}}},e}(),p=function(r){function _(e){var t=e.system,_=e.containerManager,n=r.call(this)||this;return n.name="Transform",n.waitRemoveIds=[],n.waitChangeScenes=[],n.containerManager=_,n.init(t),n}return i(_,r),_.prototype.init=function(e){var t=this;this.system=e,this.on("changeScene",(function(e){var r=e.scene,_=e.mode,n=e.application;t.waitChangeScenes.push({scene:r,mode:_,application:n})}))},_.prototype.update=function(){var e,t,r,_;try{for(var n=C(this.waitRemoveIds),o=n.next();!o.done;o=n.next()){var E=o.value;this.containerManager.removeContainer(E)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.waitRemoveIds=[];try{for(var a=C(this.waitChangeScenes),S=a.next();!S.done;S=a.next()){var i=S.value,R=this.containerManager.getContainer(i.scene.id);R&&(i.application.stage.removeChildren(),i.application.stage.addChild(R))}}catch(e){r={error:e}}finally{try{S&&!S.done&&(_=a.return)&&_.call(a)}finally{if(r)throw r.error}}this.waitChangeScenes=[]},_.prototype.componentChanged=function(t){t.type===e.OBSERVER_TYPE.ADD?this.addContainer(t):t.type===e.OBSERVER_TYPE.CHANGE?this.change(t):t.type===e.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(t.gameObject.id)},_.prototype.addContainer=function(e){var r=new t.Container;r.name=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:r}),e.component.worldTransform=r.transform.worldTransform},_.prototype.change=function(e){var t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));var r=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");r&&(r.sortDirty=!0)}else{var _=this.containerManager.getContainer(e.gameObject.id);delete t.worldTransform,_.parent&&_.parent.removeChild(_)}},_.prototype.destroy=function(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null},_=s([e.decorators.componentObserver({Transform:["_parent"]})],_)}(a),l=void 0;function u(e){if(l)return l;if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};l={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Eva.js Supported Compressed Texture Format List: "+Object.keys(l).filter((function(e){return l[e]})).join(", "))}catch(e){}return l}var G,B,D,d=e.resourceLoader.XhrLoadStrategy;!function(e){e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=3781]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"}(D||(D={}));var M=((G={})[D.COMPRESSED_RGB_S3TC_DXT1_EXT]=[4,4],G[D.COMPRESSED_RGBA_S3TC_DXT1_EXT]=[4,4],G[D.COMPRESSED_RGBA_S3TC_DXT3_EXT]=[4,4],G[D.COMPRESSED_RGBA_S3TC_DXT5_EXT]=[4,4],G[D.COMPRESSED_SRGB_S3TC_DXT1_EXT]=[4,4],G[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT]=[4,4],G[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT]=[4,4],G[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT]=[4,4],G[D.COMPRESSED_R11_EAC]=[4,4],G[D.COMPRESSED_SIGNED_R11_EAC]=[4,4],G[D.COMPRESSED_RG11_EAC]=[4,4],G[D.COMPRESSED_SIGNED_RG11_EAC]=[4,4],G[D.COMPRESSED_RGB8_ETC2]=[4,4],G[D.COMPRESSED_RGBA8_ETC2_EAC]=[4,4],G[D.COMPRESSED_SRGB8_ETC2]=[4,4],G[D.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]=[4,4],G[D.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]=[4,4],G[D.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]=[4,4],G[D.COMPRESSED_RGB_PVRTC_4BPPV1_IMG]=[4,4],G[D.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]=[4,4],G[D.COMPRESSED_RGB_PVRTC_2BPPV1_IMG]=[8,4],G[D.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]=[8,4],G[D.COMPRESSED_RGB_ETC1_WEBGL]=[4,4],G[D.COMPRESSED_RGB_ATC_WEBGL]=[4,4],G[D.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]=[4,4],G[D.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]=[4,4],G[D.COMPRESSED_RGBA_ASTC_4x4_KHR]=[4,4],G[D.COMPRESSED_RGBA_ASTC_5x5_KHR]=[5,5],G[D.COMPRESSED_RGBA_ASTC_6x6_KHR]=[6,6],G[D.COMPRESSED_RGBA_ASTC_8x8_KHR]=[8,8],G[D.COMPRESSED_RGBA_ASTC_10x10_KHR]=[10,10],G[D.COMPRESSED_RGBA_ASTC_12x12_KHR]=[12,12],G[D.COMPRESSED_RGBA_ASTC_10x5_KHR]=[10,5],G[D.COMPRESSED_RGBA_ASTC_10x6_KHR]=[10,6],G[D.COMPRESSED_RGBA_ASTC_10x8_KHR]=[10,8],G[D.COMPRESSED_RGBA_ASTC_12x10_KHR]=[12,10],G[D.COMPRESSED_RGBA_ASTC_5x4_KHR]=[5,4],G[D.COMPRESSED_RGBA_ASTC_6x5_KHR]=[6,5],G[D.COMPRESSED_RGBA_ASTC_8x5_KHR]=[8,5],G[D.COMPRESSED_RGBA_ASTC_8x6_KHR]=[8,6],G),O=((B={})[D.COMPRESSED_RGB_S3TC_DXT1_EXT]="WEBGL_compressed_texture_s3tc",B[D.COMPRESSED_RGBA_S3TC_DXT1_EXT]="WEBGL_compressed_texture_s3tc",B[D.COMPRESSED_RGBA_S3TC_DXT3_EXT]="WEBGL_compressed_texture_s3tc",B[D.COMPRESSED_RGBA_S3TC_DXT5_EXT]="WEBGL_compressed_texture_s3tc",B[D.COMPRESSED_SRGB_S3TC_DXT1_EXT]="WEBGL_compressed_texture_s3tc_srgb",B[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT]="WEBGL_compressed_texture_s3tc_srgb",B[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT]="WEBGL_compressed_texture_s3tc_srgb",B[D.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT]="WEBGL_compressed_texture_s3tc_srgb",B[D.COMPRESSED_R11_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_SIGNED_R11_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_RG11_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_SIGNED_RG11_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_RGB8_ETC2]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_RGBA8_ETC2_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_SRGB8_ETC2]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]="WEBGL_compressed_texture_etc",B[D.COMPRESSED_RGB_PVRTC_4BPPV1_IMG]="WEBGL_compressed_texture_pvrtc",B[D.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]="WEBGL_compressed_texture_pvrtc",B[D.COMPRESSED_RGB_PVRTC_2BPPV1_IMG]="WEBGL_compressed_texture_pvrtc",B[D.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]="WEBGL_compressed_texture_pvrtc",B[D.COMPRESSED_RGB_ETC1_WEBGL]="WEBGL_compressed_texture_etc1",B[D.COMPRESSED_RGB_ATC_WEBGL]="WEBGL_compressed_texture_atc",B[D.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]="WEBGL_compressed_texture_atc",B[D.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]="WEBGL_compressed_texture_atc",B[D.COMPRESSED_RGBA_ASTC_4x4_KHR]="WEBGL_compressed_texture_astc",B[D.COMPRESSED_RGBA_ASTC_5x5_KHR]="WEBGL_compressed_texture_astc",B[D.COMPRESSED_RGBA_ASTC_6x6_KHR]="WEBGL_compressed_texture_astc",B[D.COMPRESSED_RGBA_ASTC_8x8_KHR]="WEBGL_compressed_texture_astc",B[D.COMPRESSED_RGBA_ASTC_10x10_KHR]="WEBGL_compressed_texture_astc",B[D.COMPRESSED_RGBA_ASTC_12x12_KHR]="WEBGL_compressed_texture_astc",B),h=function(){function e(){this.levelBuffers=[]}return e.prototype.upload=function(e){var t=this.levels,r=O[this.internalFormat];e[r]||(e[r]=!0,"WEBGL_compressed_texture_pvrtc"===r?e.getExtension(r)||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"):e.getExtension(r));for(var _=0;_<this.levels;++_){var n=this.levelBuffers[_],o=n.levelWidth,E=n.levelHeight,a=n.levelBuffer;e.compressedTexImage2D(e.TEXTURE_2D,_,this.internalFormat,o,E,0,a)}t>1?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR))},e}(),f=12,m=28,x=36,v=40,H=44,y=48,L=52,g=56,X=60,K=[171,75,84,88,32,49,49,187,13,10,26,10],I=function(t){function r(r,_){var n,o=t.call(this)||this;o.complete=!0,o.src=_.url;var E=new DataView(r);if(!function(e){for(var t=0;t<K.length;t++)if(e.getUint8(t)!==K[t])return!1;return!0}(E))throw new Error("Not a valid KTX Texture");var a=67305985===E.getUint32(f,!0);o.internalFormat=E.getUint32(m,a);var S=o.formerWidth=E.getUint32(x,a),i=o.formerHeight=E.getUint32(v,a)||1,R=M[o.internalFormat];o.width=S%R[0]==0?S:S+R[0]-S%R[0],o.height=i%R[1]==0?i:i+R[1]-i%R[1];var s=e.resource.resourcesMap[_.metadata.name].src[_.metadata.key],C=null!==(n=null==s?void 0:s.size)&&void 0!==n?n:{},c=C.width,A=C.height;c&&A&&(o.naturalWidth=c,o.naturalHeight=A);var P=E.getUint32(H,a)||1,T=E.getUint32(y,a)||1,p=E.getUint32(L,a),l=o.levels=E.getUint32(g,a),u=E.getUint32(X,a);if(0===i||1!==P)throw new Error("Only 2D textures are supported!");if(1!==p)throw new Error("CubeTextures are not supported!");if(1!==T)throw new Error("It does not support array textures!");for(var G=S,B=i,D=64+u,d=0;d<l;d++){var O=E.getUint32(D,a);D+=4;var h=M[o.internalFormat],I={levelID:d,levelWidth:G%h[0]==0?G:G+h[0]-G%h[0],levelHeight:B%h[1]==0?B:B+h[1]-B%h[1],levelBuffer:new Uint8Array(r,D,O)};o.levelBuffers.push(I),D+=O,D+=3-(D+3)%4,G=G>>1||1,B=B>>1||1}return o}return i(r,t),r}(h);var W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype._complete=function(t,r){e.prototype._complete.call(this,t,new I(r,this.config))},t}(d),w=e.resourceLoader.XhrResponseType;var b,N,U,V={isCompressed:!1,uploadNotCompressed:n.glCore.GLTexture.prototype.upload,upload:function(e){if(!(e instanceof h))return this.uploadNotCompressed(e);this.bind();var t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST_MIPMAP_NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),this.isCompressed=!0,e.upload(t)},enableMipmap:function(){if(!this.isCompressed){var e=this.gl;this.bind(),this.mipmap=!0,e.generateMipmap(e.TEXTURE_2D)}}},j=Symbol(),F=((b={})[j]=n.Texture.from,b.from=function(e){return e instanceof h?new n.Texture(n.BaseTexture.from(e)):this[j](e)},b),Y=Symbol(),k=((N={})[Y]=n.BaseTexture.from,N.from=function(e,t,r){if(!(e instanceof h))return this[Y](e,t,r);var _=e.src,o=n.utils.BaseTextureCache[_];return o||((o=new n.BaseTexture(e,t)).imageUrl=_,r&&(o.sourceScale=r),n.BaseTexture.addToCache(o,_)),o},N);function q(t){!function(e,t){e.addPreProcessResourceHandler((function(e){var r,_,n,o=null===(_=null===(r=e.src)||void 0===r?void 0:r.image)||void 0===_?void 0:_.texture;if(o){Array.isArray(o)||(o=[o]);var E=null!==(n=u(t))&&void 0!==n?n:{},a=o.find((function(e){return E[e.type]}));a&&Object.assign(e.src.image,a)}}))}(e.resource,t),Object.assign(e.RESOURCE_TYPE_STRATEGY,{astc:W,etc:W,pvrtc:W,s3tc:W,atc:W}),W.setExtensionXhrType("ktx",w.Buffer),Object.assign(n.glCore.GLTexture.prototype,V),Object.assign(n.Texture,F),Object.assign(n.BaseTexture,k)}exports.RENDERER_TYPE=void 0,(U=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[U.UNKNOWN=0]="UNKNOWN",U[U.WEBGL=1]="WEBGL",U[U.CANVAS=2]="CANVAS";var z=function(e){e.plugins.interaction.autoPreventDefault=!0,e.view.style.touchAction="none"},J=function(e){e.plugins.interaction.autoPreventDefault=!1,e.view.style.touchAction="auto"},Q=function(r){function _(){var e=null!==r&&r.apply(this,arguments)||this;return e.multiApps=[],e}return i(_,r),_.prototype.init=function(t){var r=this;this.params=t,this.application=this.createApplication(t),this.containerManager=new T,this.rendererManager=new P({game:this.game,rendererSystem:this}),this.game.canvas=this.application.view,this.transform=new p({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",(function(t){var _,n=t.scene,o=t.mode,E=t.params;switch(o){case e.LOAD_SCENE_MODE.SINGLE:_=r.application;break;case e.LOAD_SCENE_MODE.MULTI_CANVAS:_=r.createMultiApplication({params:E})}n.canvas=_.view,r.transform.emit("changeScene",{scene:n,mode:o,application:_})}));var _=this.application.renderer.gl;_&&(this.suportedCompressedTextureFormats=u(_),q(_))},_.prototype.registerObserver=function(e){var t,r=this.constructor.observerInfo;for(var _ in e)r[_]||(r[_]=[]),(t=r[_]).push.apply(t,A(e[_]))},_.prototype.createMultiApplication=function(e){var t=e.params,r=this.createApplication(t);return this.multiApps.push(r),r},_.prototype.createApplication=function(e){e.view=e.canvas,e.renderType===exports.RENDERER_TYPE.CANVAS&&(e.forceCanvas=!0),n.ticker.shared.autoStart=!1,n.ticker.shared.stop();var r=new t.Application(R({sharedTicker:!0},e));return void 0!==e.preventScroll&&(console.warn("PreventScroll property will deprecate at next major version, please use enableEnable instead. https://eva.js.org/#/tutorials/game"),e.preventScroll?J(r.renderer):z(r.renderer)),void 0!==e.enableScroll&&(e.enableScroll?J(r.renderer):z(r.renderer)),void 0===e.preventScroll&&void 0===e.enableScroll&&J(r.renderer),r},_.prototype.update=function(){var e,t,r,_,n=this.componentObserver.clear();try{for(var o=C(n),E=o.next();!E.done;E=o.next()){var a=E.value;this.transform.componentChanged(a)}}catch(t){e={error:t}}finally{try{E&&!E.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var S=C(this.game.gameObjects),i=S.next();!i.done;i=S.next()){var R=i.value;this.containerManager.updateTransform({name:R.id,transform:R.transform}),this.rendererManager.update(R)}}catch(e){r={error:e}}finally{try{i&&!i.done&&(_=S.return)&&_.call(S)}finally{if(r)throw r.error}}},_.prototype.lateUpdate=function(e){this.transform.update(),this.application.ticker.update(e.time)},_.prototype.onDestroy=function(){var e,t;this.application.destroy();try{for(var r=C(this.multiApps),_=r.next();!_.done;_=r.next()){var n=_.value;n&&n.destroy()}}catch(t){e={error:t}}finally{try{_&&!_.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null},_.prototype.resize=function(e,t){this.params.width=e,this.params.height=t,this.application.renderer.resize(e,t)},_.systemName="Renderer",_=s([e.decorators.componentObserver({Transform:["_parent"]})],_)}(e.System),Z=function(e){function t(t){var r=e.call(this,t)||this;return r.observerInfo=r.constructor.observerInfo,r}return i(t,e),t.prototype.componentChanged=function(e){},t.prototype.rendererUpdate=function(e){},t.prototype.update=function(e){var t,r,_=this.componentObserver.clear();try{for(var n=C(_),o=n.next();!o.done;o=n.next()){var E=o.value;this.componentChanged(E)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},t}(e.System);n.BaseTexture.prototype.destroy=function(){this.imageUrl&&(delete n.utils.TextureCache[this.imageUrl],this.imageUrl=null),this.source=null,this.dispose(),n.BaseTexture.removeFromCache(this),this.textureCacheIds=null,this._destroyed=!0},exports.ContainerManager=T,exports.Renderer=Z,exports.RendererManager=P,exports.RendererSystem=Q;
@@ -69,6 +69,7 @@ export declare class RendererSystem extends System<RendererSystemParams> {
69
69
  game: Game;
70
70
  transform: Transform_2;
71
71
  multiApps: Application[];
72
+ suportedCompressedTextureFormats: SuportedCompressedTexture;
72
73
  init(params: RendererSystemParams): void;
73
74
  registerObserver(observerInfo: any): void;
74
75
  createMultiApplication({ params }: {
@@ -88,6 +89,15 @@ export declare interface RendererSystemParams extends ApplicationOptions {
88
89
  enableScroll?: boolean;
89
90
  }
90
91
 
92
+ declare interface SuportedCompressedTexture {
93
+ s3tc: boolean;
94
+ etc: boolean;
95
+ etc1: boolean;
96
+ pvrtc: boolean;
97
+ atc: boolean;
98
+ astc: boolean;
99
+ }
100
+
91
101
  declare class Transform_2 extends EventEmitter {
92
102
  name: string;
93
103
  waitRemoveIds: number[];