@eva/plugin-renderer 1.1.1-beta.0 → 1.1.1-fix.2

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.
Files changed (107) hide show
  1. package/dist/EVA.plugin.renderer.js +2052 -4659
  2. package/dist/EVA.plugin.renderer.min.js +2 -1
  3. package/dist/EVA.plugin.renderer.min.js.map +1 -0
  4. package/dist/plugin-renderer.cjs.js +416 -426
  5. package/dist/plugin-renderer.cjs.prod.js +2 -1
  6. package/dist/plugin-renderer.cjs.prod.js.map +1 -0
  7. package/dist/plugin-renderer.d.ts +0 -65
  8. package/dist/plugin-renderer.esm.js +413 -421
  9. package/package.json +4 -5
  10. package/dist/vite-test/dist/assets/Graphics.f535ed8f.d.ts +0 -6
  11. package/dist/vite-test/dist/assets/Graphics.f535ed8f.d.ts.map +0 -1
  12. package/dist/vite-test/dist/assets/Sprite.703a9f94.d.ts +0 -9
  13. package/dist/vite-test/dist/assets/Sprite.703a9f94.d.ts.map +0 -1
  14. package/dist/vite-test/dist/assets/a11y.9b3ce839.d.ts +0 -4
  15. package/dist/vite-test/dist/assets/a11y.9b3ce839.d.ts.map +0 -1
  16. package/dist/vite-test/dist/assets/component.caf56816.d.ts +0 -4
  17. package/dist/vite-test/dist/assets/component.caf56816.d.ts.map +0 -1
  18. package/dist/vite-test/dist/assets/compressed-texture-animation.6dcf9ab4.d.ts +0 -4
  19. package/dist/vite-test/dist/assets/compressed-texture-animation.6dcf9ab4.d.ts.map +0 -1
  20. package/dist/vite-test/dist/assets/compressed-texture-mipmap.cc4fada9.d.ts +0 -4
  21. package/dist/vite-test/dist/assets/compressed-texture-mipmap.cc4fada9.d.ts.map +0 -1
  22. package/dist/vite-test/dist/assets/compressed-texture.07a67c9f.d.ts +0 -4
  23. package/dist/vite-test/dist/assets/compressed-texture.07a67c9f.d.ts.map +0 -1
  24. package/dist/vite-test/dist/assets/dragonbone.bfd80a38.d.ts +0 -4
  25. package/dist/vite-test/dist/assets/dragonbone.bfd80a38.d.ts.map +0 -1
  26. package/dist/vite-test/dist/assets/event.0de0fd28.d.ts +0 -4
  27. package/dist/vite-test/dist/assets/event.0de0fd28.d.ts.map +0 -1
  28. package/dist/vite-test/dist/assets/graphics.df3659e9.d.ts +0 -4
  29. package/dist/vite-test/dist/assets/graphics.df3659e9.d.ts.map +0 -1
  30. package/dist/vite-test/dist/assets/image.9d7f7b54.d.ts +0 -4
  31. package/dist/vite-test/dist/assets/image.9d7f7b54.d.ts.map +0 -1
  32. package/dist/vite-test/dist/assets/index.cf7bfffd.d.ts +0 -2
  33. package/dist/vite-test/dist/assets/index.cf7bfffd.d.ts.map +0 -1
  34. package/dist/vite-test/dist/assets/loader.03643d14.d.ts +0 -4
  35. package/dist/vite-test/dist/assets/loader.03643d14.d.ts.map +0 -1
  36. package/dist/vite-test/dist/assets/lottie.8e29b509.d.ts +0 -4
  37. package/dist/vite-test/dist/assets/lottie.8e29b509.d.ts.map +0 -1
  38. package/dist/vite-test/dist/assets/mask.c3592934.d.ts +0 -4
  39. package/dist/vite-test/dist/assets/mask.c3592934.d.ts.map +0 -1
  40. package/dist/vite-test/dist/assets/matter.bcb02c9e.d.ts +0 -4
  41. package/dist/vite-test/dist/assets/matter.bcb02c9e.d.ts.map +0 -1
  42. package/dist/vite-test/dist/assets/multi-canvas.a081d481.d.ts +0 -4
  43. package/dist/vite-test/dist/assets/multi-canvas.a081d481.d.ts.map +0 -1
  44. package/dist/vite-test/dist/assets/ninePatch.ec5000f5.d.ts +0 -4
  45. package/dist/vite-test/dist/assets/ninePatch.ec5000f5.d.ts.map +0 -1
  46. package/dist/vite-test/dist/assets/sound.81f19bb0.d.ts +0 -4
  47. package/dist/vite-test/dist/assets/sound.81f19bb0.d.ts.map +0 -1
  48. package/dist/vite-test/dist/assets/spine.08037e2f.d.ts +0 -4
  49. package/dist/vite-test/dist/assets/spine.08037e2f.d.ts.map +0 -1
  50. package/dist/vite-test/dist/assets/sprite.ab61ce04.d.ts +0 -4
  51. package/dist/vite-test/dist/assets/sprite.ab61ce04.d.ts.map +0 -1
  52. package/dist/vite-test/dist/assets/spriteAnimation.fbd1b62d.d.ts +0 -4
  53. package/dist/vite-test/dist/assets/spriteAnimation.fbd1b62d.d.ts.map +0 -1
  54. package/dist/vite-test/dist/assets/text.3e406bba.d.ts +0 -4
  55. package/dist/vite-test/dist/assets/text.3e406bba.d.ts.map +0 -1
  56. package/dist/vite-test/dist/assets/tilingSprite.3f09d780.d.ts +0 -4
  57. package/dist/vite-test/dist/assets/tilingSprite.3f09d780.d.ts.map +0 -1
  58. package/dist/vite-test/dist/assets/transition.f3d6a6eb.d.ts +0 -4
  59. package/dist/vite-test/dist/assets/transition.f3d6a6eb.d.ts.map +0 -1
  60. package/dist/vite-test/dist/assets/vendor.1f31f96e.d.ts +0 -5
  61. package/dist/vite-test/dist/assets/vendor.1f31f96e.d.ts.map +0 -1
  62. package/dist/vite-test/index.d.ts +0 -2
  63. package/dist/vite-test/index.d.ts.map +0 -1
  64. package/dist/vite-test/ts/a11y.d.ts +0 -3
  65. package/dist/vite-test/ts/a11y.d.ts.map +0 -1
  66. package/dist/vite-test/ts/component.d.ts +0 -3
  67. package/dist/vite-test/ts/component.d.ts.map +0 -1
  68. package/dist/vite-test/ts/compressed-texture-animation.d.ts +0 -3
  69. package/dist/vite-test/ts/compressed-texture-animation.d.ts.map +0 -1
  70. package/dist/vite-test/ts/compressed-texture-mipmap.d.ts +0 -3
  71. package/dist/vite-test/ts/compressed-texture-mipmap.d.ts.map +0 -1
  72. package/dist/vite-test/ts/compressed-texture.d.ts +0 -3
  73. package/dist/vite-test/ts/compressed-texture.d.ts.map +0 -1
  74. package/dist/vite-test/ts/dragonbone.d.ts +0 -3
  75. package/dist/vite-test/ts/dragonbone.d.ts.map +0 -1
  76. package/dist/vite-test/ts/event.d.ts +0 -3
  77. package/dist/vite-test/ts/event.d.ts.map +0 -1
  78. package/dist/vite-test/ts/graphics.d.ts +0 -3
  79. package/dist/vite-test/ts/graphics.d.ts.map +0 -1
  80. package/dist/vite-test/ts/image.d.ts +0 -3
  81. package/dist/vite-test/ts/image.d.ts.map +0 -1
  82. package/dist/vite-test/ts/loader.d.ts +0 -3
  83. package/dist/vite-test/ts/loader.d.ts.map +0 -1
  84. package/dist/vite-test/ts/lottie.d.ts +0 -3
  85. package/dist/vite-test/ts/lottie.d.ts.map +0 -1
  86. package/dist/vite-test/ts/mask.d.ts +0 -4
  87. package/dist/vite-test/ts/mask.d.ts.map +0 -1
  88. package/dist/vite-test/ts/matter.d.ts +0 -3
  89. package/dist/vite-test/ts/matter.d.ts.map +0 -1
  90. package/dist/vite-test/ts/multi-canvas.d.ts +0 -3
  91. package/dist/vite-test/ts/multi-canvas.d.ts.map +0 -1
  92. package/dist/vite-test/ts/ninePatch.d.ts +0 -3
  93. package/dist/vite-test/ts/ninePatch.d.ts.map +0 -1
  94. package/dist/vite-test/ts/sound.d.ts +0 -3
  95. package/dist/vite-test/ts/sound.d.ts.map +0 -1
  96. package/dist/vite-test/ts/spine.d.ts +0 -3
  97. package/dist/vite-test/ts/spine.d.ts.map +0 -1
  98. package/dist/vite-test/ts/sprite.d.ts +0 -3
  99. package/dist/vite-test/ts/sprite.d.ts.map +0 -1
  100. package/dist/vite-test/ts/spriteAnimation.d.ts +0 -3
  101. package/dist/vite-test/ts/spriteAnimation.d.ts.map +0 -1
  102. package/dist/vite-test/ts/text.d.ts +0 -3
  103. package/dist/vite-test/ts/text.d.ts.map +0 -1
  104. package/dist/vite-test/ts/tilingSprite.d.ts +0 -3
  105. package/dist/vite-test/ts/tilingSprite.d.ts.map +0 -1
  106. package/dist/vite-test/ts/transition.d.ts +0 -3
  107. package/dist/vite-test/ts/transition.d.ts.map +0 -1
@@ -1,10 +1,8 @@
1
- import { OBSERVER_TYPE, decorators, LOAD_SCENE_MODE, System, STRATEGY, resource } from '@eva/eva.js';
1
+ import { OBSERVER_TYPE, decorators, resourceLoader, resource, RESOURCE_TYPE_STRATEGY, LOAD_SCENE_MODE, System } from '@eva/eva.js';
2
2
  import { Container, Application } from '@eva/renderer-adapter';
3
3
  import isEqual from 'lodash-es/isEqual';
4
4
  import EventEmitter from 'eventemitter3';
5
- import { ticker, glCore, Texture, BaseTexture, utils } from 'pixi.js';
6
- import { XhrLoadStrategy, XhrResponseType } from 'resource-loader';
7
- import { TYPES, FORMATS } from '@pixi/constants';
5
+ import { glCore, Texture, BaseTexture, utils, ticker } from 'pixi.js';
8
6
 
9
7
  /*! *****************************************************************************
10
8
  Copyright (c) Microsoft Corporation. All rights reserved.
@@ -211,7 +209,8 @@ var RendererManager = (function () {
211
209
  }
212
210
  };
213
211
  return RendererManager;
214
- }());
212
+ }());
213
+ var RendererManager$1 = RendererManager;
215
214
 
216
215
  var ContainerManager = (function () {
217
216
  function ContainerManager() {
@@ -232,7 +231,7 @@ var ContainerManager = (function () {
232
231
  ContainerManager.prototype.updateTransform = function (_a) {
233
232
  var name = _a.name, transform = _a.transform;
234
233
  var container = this.containerMap[name];
235
- if (!container)
234
+ if (!container || !transform)
236
235
  return;
237
236
  var anchor = transform.anchor, origin = transform.origin, position = transform.position, rotation = transform.rotation, scale = transform.scale, size = transform.size, skew = transform.skew;
238
237
  container.rotation = rotation;
@@ -250,7 +249,8 @@ var ContainerManager = (function () {
250
249
  container.position = { x: x, y: y };
251
250
  };
252
251
  return ContainerManager;
253
- }());
252
+ }());
253
+ var ContainerManager$1 = ContainerManager;
254
254
 
255
255
  var Transform = (function (_super) {
256
256
  __extends(Transform, _super);
@@ -358,205 +358,44 @@ var Transform = (function (_super) {
358
358
  })
359
359
  ], Transform);
360
360
  return Transform;
361
- }(EventEmitter));
361
+ }(EventEmitter));
362
+ var Transform$1 = Transform;
362
363
 
363
- var RENDERER_TYPE;
364
- (function (RENDERER_TYPE) {
365
- RENDERER_TYPE[RENDERER_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
366
- RENDERER_TYPE[RENDERER_TYPE["WEBGL"] = 1] = "WEBGL";
367
- RENDERER_TYPE[RENDERER_TYPE["CANVAS"] = 2] = "CANVAS";
368
- })(RENDERER_TYPE || (RENDERER_TYPE = {}));
369
- var disableScroll = function (renderer) {
370
- renderer.plugins.interaction.autoPreventDefault = true;
371
- renderer.view.style.touchAction = 'none';
372
- };
373
- var enableScroll = function (renderer) {
374
- renderer.plugins.interaction.autoPreventDefault = false;
375
- renderer.view.style.touchAction = 'auto';
376
- };
377
- var Renderer$1 = (function (_super) {
378
- __extends(Renderer, _super);
379
- function Renderer() {
380
- var _this = _super !== null && _super.apply(this, arguments) || this;
381
- _this.multiApps = [];
382
- return _this;
364
+ var result = undefined;
365
+ function getSuportCompressedTextureFormats(gl) {
366
+ if (result)
367
+ return result;
368
+ if (!gl) {
369
+ console.warn('WebGL not available for compressed textures. Silently failing.');
370
+ return {
371
+ s3tc: false,
372
+ etc: false,
373
+ etc1: false,
374
+ pvrtc: false,
375
+ atc: false,
376
+ astc: false,
377
+ };
383
378
  }
384
- Renderer.prototype.init = function (params) {
385
- var _this = this;
386
- this.params = params;
387
- this.application = this.createApplication(params);
388
- this.containerManager = new ContainerManager();
389
- this.rendererManager = new RendererManager({
390
- game: this.game,
391
- rendererSystem: this,
392
- });
393
- this.game.canvas = this.application.view;
394
- this.transform = new Transform({
395
- system: this,
396
- containerManager: this.containerManager,
397
- });
398
- this.game.on('sceneChanged', function (_a) {
399
- var scene = _a.scene, mode = _a.mode, params = _a.params;
400
- var application;
401
- switch (mode) {
402
- case LOAD_SCENE_MODE.SINGLE:
403
- application = _this.application;
404
- break;
405
- case LOAD_SCENE_MODE.MULTI_CANVAS:
406
- application = _this.createMultiApplication({ params: params });
407
- break;
408
- }
409
- scene.canvas = application.view;
410
- _this.transform.emit('changeScene', {
411
- scene: scene,
412
- mode: mode,
413
- application: application,
414
- });
415
- });
379
+ result = {
380
+ s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),
381
+ etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),
382
+ etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),
383
+ pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')
384
+ || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),
385
+ atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),
386
+ astc: !!gl.getExtension('WEBGL_compressed_texture_astc')
416
387
  };
417
- Renderer.prototype.registerObserver = function (observerInfo) {
418
- var _a;
419
- var thisObserverInfo = this.constructor.observerInfo;
420
- for (var key in observerInfo) {
421
- if (!thisObserverInfo[key]) {
422
- thisObserverInfo[key] = [];
423
- }
424
- (_a = thisObserverInfo[key]).push.apply(_a, __spread(observerInfo[key]));
425
- }
426
- };
427
- Renderer.prototype.createMultiApplication = function (_a) {
428
- var params = _a.params;
429
- var app = this.createApplication(params);
430
- this.multiApps.push(app);
431
- return app;
432
- };
433
- Renderer.prototype.createApplication = function (params) {
434
- params.view = params.canvas;
435
- if (params.renderType === RENDERER_TYPE.CANVAS) {
436
- params.forceCanvas = true;
437
- }
438
- ticker.shared.autoStart = false;
439
- ticker.shared.stop();
440
- var app = new Application(__assign({ sharedTicker: true }, params));
441
- if (params.preventScroll !== undefined) {
442
- console.warn('PreventScroll property will deprecate at next major version, please use enableEnable instead. https://eva.js.org/#/tutorials/game');
443
- params.preventScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
444
- }
445
- if (params.enableScroll !== undefined) {
446
- params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
447
- }
448
- if (params.preventScroll === undefined && params.enableScroll === undefined) {
449
- enableScroll(app.renderer);
450
- }
451
- return app;
452
- };
453
- Renderer.prototype.update = function () {
454
- var e_1, _a, e_2, _b;
455
- var changes = this.componentObserver.clear();
456
- try {
457
- for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
458
- var changed = changes_1_1.value;
459
- this.transform.componentChanged(changed);
460
- }
461
- }
462
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
463
- finally {
464
- try {
465
- if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
466
- }
467
- finally { if (e_1) throw e_1.error; }
468
- }
469
- try {
470
- for (var _c = __values(this.game.gameObjects), _d = _c.next(); !_d.done; _d = _c.next()) {
471
- var gameObject = _d.value;
472
- this.containerManager.updateTransform({
473
- name: gameObject.id,
474
- transform: gameObject.transform,
475
- });
476
- this.rendererManager.update(gameObject);
477
- }
478
- }
479
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
480
- finally {
481
- try {
482
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
483
- }
484
- finally { if (e_2) throw e_2.error; }
485
- }
486
- };
487
- Renderer.prototype.lateUpdate = function (e) {
488
- this.transform.update();
489
- this.application.ticker.update(e.time);
490
- };
491
- Renderer.prototype.onDestroy = function () {
492
- var e_3, _a;
493
- this.application.destroy();
494
- try {
495
- for (var _b = __values(this.multiApps), _c = _b.next(); !_c.done; _c = _b.next()) {
496
- var app = _c.value;
497
- app && app.destroy();
498
- }
499
- }
500
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
501
- finally {
502
- try {
503
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
504
- }
505
- finally { if (e_3) throw e_3.error; }
506
- }
507
- this.transform.destroy();
508
- this.transform = null;
509
- this.params = null;
510
- this.rendererManager = null;
511
- this.containerManager = null;
512
- this.application = null;
513
- this.game = null;
514
- this.multiApps = null;
515
- };
516
- Renderer.prototype.resize = function (width, height) {
517
- this.params.width = width;
518
- this.params.height = height;
519
- this.application.renderer.resize(width, height);
520
- };
521
- Renderer.systemName = 'Renderer';
522
- Renderer = __decorate([
523
- decorators.componentObserver({
524
- Transform: ['_parent'],
525
- })
526
- ], Renderer);
527
- return Renderer;
528
- }(System));
529
-
530
- var Renderer = (function (_super) {
531
- __extends(Renderer, _super);
532
- function Renderer(params) {
533
- var _this = _super.call(this, params) || this;
534
- _this.observerInfo = _this.constructor.observerInfo;
535
- return _this;
388
+ try {
389
+ console.log('Eva.js Supported Compressed Texture Format List: ' + Object.keys(result).filter(function (type) { return result[type]; }).join(', '));
536
390
  }
537
- Renderer.prototype.componentChanged = function (_changed) { };
538
- Renderer.prototype.rendererUpdate = function (_gameObject) { };
539
- Renderer.prototype.update = function () {
540
- var e_1, _a;
541
- var changes = this.componentObserver.clear();
542
- try {
543
- for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
544
- var changed = changes_1_1.value;
545
- this.componentChanged(changed);
546
- }
547
- }
548
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
549
- finally {
550
- try {
551
- if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
552
- }
553
- finally { if (e_1) throw e_1.error; }
554
- }
555
- };
556
- return Renderer;
557
- }(System));
391
+ catch (e) { }
392
+ return result;
393
+ }
394
+
395
+ var XLS = resourceLoader.XhrLoadStrategy;
396
+ var XhrLoadStrategy = XLS;
558
397
 
559
- var _a$3, _b$1;
398
+ var _a, _b;
560
399
  var INTERNAL_FORMATS;
561
400
  (function (INTERNAL_FORMATS) {
562
401
  INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
@@ -614,114 +453,86 @@ var INTERNAL_FORMATS;
614
453
  INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"] = 37846] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
615
454
  INTERNAL_FORMATS[INTERNAL_FORMATS["COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
616
455
  })(INTERNAL_FORMATS || (INTERNAL_FORMATS = {}));
617
- var INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = (_a$3 = {},
618
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = 0.5,
619
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = 0.5,
620
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = 1,
621
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = 1,
622
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = 0.5,
623
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = 0.5,
624
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = 1,
625
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = 1,
626
- _a$3[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = 0.5,
627
- _a$3[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = 0.5,
628
- _a$3[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = 1,
629
- _a$3[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = 1,
630
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = 0.5,
631
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = 1,
632
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = 0.5,
633
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = 1,
634
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 0.5,
635
- _a$3[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 0.5,
636
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 0.5,
637
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 0.5,
638
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 0.25,
639
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 0.25,
640
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = 0.5,
641
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = 0.5,
642
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 1,
643
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 1,
644
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = 1,
645
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = 5.12 * 0.125,
646
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = 3.56 * 0.125,
647
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = 2 * 0.125,
648
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = 1.28 * 0.125,
649
- _a$3[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = 0.89 * 0.125,
650
- _a$3);
651
- var INTERNAL_FORMATS_TO_EXTENSION_NAME = (_b$1 = {},
652
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
653
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
654
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc',
655
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc',
656
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
657
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
658
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
659
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
660
- _b$1[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = 'WEBGL_compressed_texture_etc',
661
- _b$1[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = 'WEBGL_compressed_texture_etc',
662
- _b$1[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
663
- _b$1[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
664
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = 'WEBGL_compressed_texture_etc',
665
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
666
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = 'WEBGL_compressed_texture_etc',
667
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
668
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
669
- _b$1[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
670
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
671
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
672
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
673
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
674
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = 'WEBGL_compressed_texture_etc1',
675
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = 'WEBGL_compressed_texture_atc',
676
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
677
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
678
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = 'WEBGL_compressed_texture_astc',
679
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = 'WEBGL_compressed_texture_astc',
680
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = 'WEBGL_compressed_texture_astc',
681
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = 'WEBGL_compressed_texture_astc',
682
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = 'WEBGL_compressed_texture_astc',
683
- _b$1[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = 'WEBGL_compressed_texture_astc',
684
- _b$1);
685
-
686
- var res = undefined;
687
- function getAbilities() {
688
- if (res)
689
- return res;
690
- var canvas = document.createElement('canvas');
691
- var gl = canvas.getContext('webgl');
692
- if (!gl) {
693
- console.warn('WebGL not available for compressed textures. Silently failing.');
694
- return;
695
- }
696
- var extensions = {
697
- s3tc: gl.getExtension('WEBGL_compressed_texture_s3tc'),
698
- s3tc_sRGB: gl.getExtension('WEBGL_compressed_texture_s3tc_srgb'),
699
- etc: gl.getExtension('WEBGL_compressed_texture_etc'),
700
- etc1: gl.getExtension('WEBGL_compressed_texture_etc1'),
701
- pvrtc: gl.getExtension('WEBGL_compressed_texture_pvrtc')
702
- || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),
703
- atc: gl.getExtension('WEBGL_compressed_texture_atc'),
704
- astc: gl.getExtension('WEBGL_compressed_texture_astc')
705
- };
706
- var textureFormats = {};
707
- for (var extensionName in extensions) {
708
- var extension = extensions[extensionName];
709
- if (!extension) {
710
- continue;
711
- }
712
- Object.assign(textureFormats, Object.getPrototypeOf(extension));
713
- }
714
- var formats = Object.values(textureFormats);
715
- res = {
716
- extensions: extensions,
717
- textureFormats: textureFormats,
718
- formats: formats
719
- };
720
- return res;
721
- }
456
+ var INTERNAL_FORMAT_TO_BLOCK_SIZE = (_a = {},
457
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = [4, 4],
458
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = [4, 4],
459
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = [4, 4],
460
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = [4, 4],
461
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = [4, 4],
462
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = [4, 4],
463
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = [4, 4],
464
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = [4, 4],
465
+ _a[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = [4, 4],
466
+ _a[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = [4, 4],
467
+ _a[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = [4, 4],
468
+ _a[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = [4, 4],
469
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = [4, 4],
470
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = [4, 4],
471
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = [4, 4],
472
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = [4, 4],
473
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = [4, 4],
474
+ _a[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = [4, 4],
475
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = [4, 4],
476
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = [4, 4],
477
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = [8, 4],
478
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = [8, 4],
479
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = [4, 4],
480
+ _a[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = [4, 4],
481
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = [4, 4],
482
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = [4, 4],
483
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = [4, 4],
484
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = [5, 5],
485
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = [6, 6],
486
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = [8, 8],
487
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = [10, 10],
488
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = [12, 12],
489
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x5_KHR] = [10, 5],
490
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x6_KHR] = [10, 6],
491
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x8_KHR] = [10, 8],
492
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x10_KHR] = [12, 10],
493
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x4_KHR] = [5, 4],
494
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x5_KHR] = [6, 5],
495
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x5_KHR] = [8, 5],
496
+ _a[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x6_KHR] = [8, 6],
497
+ _a);
498
+ var INTERNAL_FORMATS_TO_EXTENSION_NAME = (_b = {},
499
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
500
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc',
501
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc',
502
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc',
503
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
504
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
505
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
506
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT] = 'WEBGL_compressed_texture_s3tc_srgb',
507
+ _b[INTERNAL_FORMATS.COMPRESSED_R11_EAC] = 'WEBGL_compressed_texture_etc',
508
+ _b[INTERNAL_FORMATS.COMPRESSED_SIGNED_R11_EAC] = 'WEBGL_compressed_texture_etc',
509
+ _b[INTERNAL_FORMATS.COMPRESSED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
510
+ _b[INTERNAL_FORMATS.COMPRESSED_SIGNED_RG11_EAC] = 'WEBGL_compressed_texture_etc',
511
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB8_ETC2] = 'WEBGL_compressed_texture_etc',
512
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
513
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_ETC2] = 'WEBGL_compressed_texture_etc',
514
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC] = 'WEBGL_compressed_texture_etc',
515
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
516
+ _b[INTERNAL_FORMATS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2] = 'WEBGL_compressed_texture_etc',
517
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
518
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
519
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
520
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 'WEBGL_compressed_texture_pvrtc',
521
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_ETC1_WEBGL] = 'WEBGL_compressed_texture_etc1',
522
+ _b[INTERNAL_FORMATS.COMPRESSED_RGB_ATC_WEBGL] = 'WEBGL_compressed_texture_atc',
523
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
524
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 'WEBGL_compressed_texture_atc',
525
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_4x4_KHR] = 'WEBGL_compressed_texture_astc',
526
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_5x5_KHR] = 'WEBGL_compressed_texture_astc',
527
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_6x6_KHR] = 'WEBGL_compressed_texture_astc',
528
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_8x8_KHR] = 'WEBGL_compressed_texture_astc',
529
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_10x10_KHR] = 'WEBGL_compressed_texture_astc',
530
+ _b[INTERNAL_FORMATS.COMPRESSED_RGBA_ASTC_12x12_KHR] = 'WEBGL_compressed_texture_astc',
531
+ _b);
722
532
 
723
533
  var CompressedTextureResource = (function () {
724
534
  function CompressedTextureResource() {
535
+ this.levelBuffers = [];
725
536
  }
726
537
  CompressedTextureResource.prototype.upload = function (gl) {
727
538
  var levels = this.levels;
@@ -751,26 +562,7 @@ var CompressedTextureResource = (function () {
751
562
  return CompressedTextureResource;
752
563
  }());
753
564
 
754
- var _a$2, _b, _c;
755
565
  var FILE_HEADER_SIZE = 64;
756
- var TYPES_TO_BYTES_PER_COMPONENT = (_a$2 = {},
757
- _a$2[TYPES.UNSIGNED_BYTE] = 1,
758
- _a$2[TYPES.UNSIGNED_SHORT] = 2,
759
- _a$2[TYPES.FLOAT] = 4,
760
- _a$2[TYPES.HALF_FLOAT] = 8,
761
- _a$2);
762
- var FORMATS_TO_COMPONENTS = (_b = {},
763
- _b[FORMATS.RGBA] = 4,
764
- _b[FORMATS.RGB] = 3,
765
- _b[FORMATS.LUMINANCE] = 1,
766
- _b[FORMATS.LUMINANCE_ALPHA] = 2,
767
- _b[FORMATS.ALPHA] = 1,
768
- _b);
769
- var TYPES_TO_BYTES_PER_PIXEL = (_c = {},
770
- _c[TYPES.UNSIGNED_SHORT_4_4_4_4] = 2,
771
- _c[TYPES.UNSIGNED_SHORT_5_5_5_1] = 2,
772
- _c[TYPES.UNSIGNED_SHORT_5_6_5] = 2,
773
- _c);
774
566
  var KTX_FIELDS = {
775
567
  FILE_IDENTIFIER: 0,
776
568
  ENDIANNESS: 12,
@@ -791,93 +583,63 @@ var FILE_IDENTIFIER = [0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0
791
583
  var ENDIANNESS = 0x04030201;
792
584
  var KTXTextureResource = (function (_super) {
793
585
  __extends(KTXTextureResource, _super);
794
- function KTXTextureResource(source, src) {
586
+ function KTXTextureResource(source, config) {
587
+ var _a;
795
588
  var _this = _super.call(this) || this;
796
- _this.src = src;
797
589
  _this.complete = true;
590
+ _this.src = config.url;
798
591
  var dataView = new DataView(source);
799
592
  if (!validateKTX(dataView)) {
800
593
  throw new Error('Not a valid KTX Texture');
801
594
  }
802
595
  var littleEndian = dataView.getUint32(KTX_FIELDS.ENDIANNESS, true) === ENDIANNESS;
803
- var glType = dataView.getUint32(KTX_FIELDS.GL_TYPE, littleEndian);
804
- var glFormat = dataView.getUint32(KTX_FIELDS.GL_FORMAT, littleEndian);
805
- var glInternalFormat = _this.internalFormat = dataView.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT, littleEndian);
806
- var pixelWidth = _this.width = dataView.getUint32(KTX_FIELDS.PIXEL_WIDTH, littleEndian);
807
- var pixelHeight = _this.height = dataView.getUint32(KTX_FIELDS.PIXEL_HEIGHT, littleEndian) || 1;
596
+ _this.internalFormat = dataView.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT, littleEndian);
597
+ var pixelWidth = _this.formerWidth = dataView.getUint32(KTX_FIELDS.PIXEL_WIDTH, littleEndian);
598
+ var pixelHeight = _this.formerHeight = dataView.getUint32(KTX_FIELDS.PIXEL_HEIGHT, littleEndian) || 1;
599
+ var size = INTERNAL_FORMAT_TO_BLOCK_SIZE[_this.internalFormat];
600
+ _this.width = pixelWidth % size[0] === 0 ? pixelWidth : (pixelWidth + size[0] - (pixelWidth % size[0]));
601
+ _this.height = pixelHeight % size[1] === 0 ? pixelHeight : (pixelHeight + size[1] - (pixelHeight % size[1]));
602
+ var src = resource.resourcesMap[config.metadata.name].src[config.metadata.key];
603
+ var _b = (_a = src === null || src === void 0 ? void 0 : src.size) !== null && _a !== void 0 ? _a : {}, width = _b.width, height = _b.height;
604
+ if (width && height) {
605
+ _this.naturalWidth = width;
606
+ _this.naturalHeight = height;
607
+ }
808
608
  var pixelDepth = dataView.getUint32(KTX_FIELDS.PIXEL_DEPTH, littleEndian) || 1;
809
609
  var numberOfArrayElements = dataView.getUint32(KTX_FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1;
810
610
  var numberOfFaces = dataView.getUint32(KTX_FIELDS.NUMBER_OF_FACES, littleEndian);
811
611
  var numberOfMipmapLevels = _this.levels = dataView.getUint32(KTX_FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian);
812
612
  var bytesOfKeyValueData = dataView.getUint32(KTX_FIELDS.BYTES_OF_KEY_VALUE_DATA, littleEndian);
813
613
  if (pixelHeight === 0 || pixelDepth !== 1) {
814
- throw new Error('Only 2D textures are supported');
614
+ throw new Error('Only 2D textures are supported!');
815
615
  }
816
616
  if (numberOfFaces !== 1) {
817
- throw new Error('CubeTextures are not supported by KTXLoader yet!');
617
+ throw new Error('CubeTextures are not supported!');
818
618
  }
819
619
  if (numberOfArrayElements !== 1) {
820
- throw new Error('WebGL does not support array textures');
821
- }
822
- var blockWidth = 4;
823
- var blockHeight = 4;
824
- var alignedWidth = (pixelWidth + 3) & ~3;
825
- var alignedHeight = (pixelHeight + 3) & ~3;
826
- var imageBuffers = new Array(numberOfArrayElements);
827
- var imagePixels = pixelWidth * pixelHeight;
828
- if (glType === 0) {
829
- imagePixels = alignedWidth * alignedHeight;
830
- }
831
- var imagePixelByteSize;
832
- if (glType !== 0) {
833
- if (TYPES_TO_BYTES_PER_COMPONENT[glType]) {
834
- imagePixelByteSize = TYPES_TO_BYTES_PER_COMPONENT[glType] * FORMATS_TO_COMPONENTS[glFormat];
835
- }
836
- else {
837
- imagePixelByteSize = TYPES_TO_BYTES_PER_PIXEL[glType];
838
- }
839
- }
840
- else {
841
- imagePixelByteSize = INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat];
620
+ throw new Error('It does not support array textures!');
842
621
  }
843
- if (imagePixelByteSize === undefined) {
844
- throw new Error('Unable to resolve the pixel format stored in the *.ktx file!');
845
- }
846
- var imageByteSize = imagePixels * imagePixelByteSize;
847
- var mipByteSize = imageByteSize;
848
622
  var mipWidth = pixelWidth;
849
623
  var mipHeight = pixelHeight;
850
- var alignedMipWidth = alignedWidth;
851
- var alignedMipHeight = alignedHeight;
852
624
  var imageOffset = FILE_HEADER_SIZE + bytesOfKeyValueData;
853
625
  for (var mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {
854
626
  var imageSize = dataView.getUint32(imageOffset, littleEndian);
855
- var elementOffset = imageOffset + 4;
856
- for (var arrayElement = 0; arrayElement < numberOfArrayElements; arrayElement++) {
857
- var mips = imageBuffers[arrayElement];
858
- if (!mips) {
859
- mips = imageBuffers[arrayElement] = new Array(numberOfMipmapLevels);
860
- }
861
- mips[mipmapLevel] = {
862
- levelID: mipmapLevel,
863
- levelWidth: numberOfMipmapLevels > 1 ? mipWidth : alignedMipWidth,
864
- levelHeight: numberOfMipmapLevels > 1 ? mipHeight : alignedMipHeight,
865
- levelBuffer: new Uint8Array(source, elementOffset, mipByteSize)
866
- };
867
- elementOffset += mipByteSize;
868
- }
869
- imageOffset += imageSize + 4;
870
- imageOffset = imageOffset % 4 !== 0 ? imageOffset + 4 - (imageOffset % 4) : imageOffset;
627
+ imageOffset += 4;
628
+ var size_1 = INTERNAL_FORMAT_TO_BLOCK_SIZE[_this.internalFormat];
629
+ var levelWidth = mipWidth % size_1[0] === 0 ? mipWidth : mipWidth + size_1[0] - (mipWidth % size_1[0]);
630
+ var levelHeight = mipHeight % size_1[1] === 0 ? mipHeight : mipHeight + size_1[1] - (mipHeight % size_1[1]);
631
+ var mip = {
632
+ levelID: mipmapLevel,
633
+ levelWidth: levelWidth,
634
+ levelHeight: levelHeight,
635
+ levelBuffer: new Uint8Array(source, imageOffset, imageSize)
636
+ };
637
+ _this.levelBuffers.push(mip);
638
+ imageOffset += imageSize;
639
+ imageOffset += 3 - ((imageOffset + 3) % 4);
871
640
  mipWidth = (mipWidth >> 1) || 1;
872
641
  mipHeight = (mipHeight >> 1) || 1;
873
- alignedMipWidth = (mipWidth + blockWidth - 1) & ~(blockWidth - 1);
874
- alignedMipHeight = (mipHeight + blockHeight - 1) & ~(blockHeight - 1);
875
- mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;
876
- }
877
- if (glType !== 0) {
878
- throw new Error('TODO: Uncompressed');
879
642
  }
880
- _this.levelBuffers = imageBuffers[0];
881
643
  return _this;
882
644
  }
883
645
  return KTXTextureResource;
@@ -897,37 +659,38 @@ var KTXLoadStrategy = (function (_super) {
897
659
  return _super !== null && _super.apply(this, arguments) || this;
898
660
  }
899
661
  KTXLoadStrategy.prototype._complete = function (type, data) {
900
- _super.prototype._complete.call(this, type, new KTXTextureResource(data, this.config.url));
662
+ _super.prototype._complete.call(this, type, new KTXTextureResource(data, this.config));
901
663
  };
902
664
  return KTXLoadStrategy;
903
- }(XhrLoadStrategy));
665
+ }(XhrLoadStrategy));
666
+ var KTXLoadStrategy$1 = KTXLoadStrategy;
904
667
 
905
- function addPreProcessResourceHandler(resource) {
668
+ var XhrResponseType = resourceLoader.XhrResponseType;
669
+ function addPreProcessResourceHandler(resource, gl) {
906
670
  resource.addPreProcessResourceHandler(function normalizeResource(resource) {
907
- var _a, _b;
671
+ var _a, _b, _c;
908
672
  var textures = (_b = (_a = resource.src) === null || _a === void 0 ? void 0 : _a.image) === null || _b === void 0 ? void 0 : _b.texture;
909
673
  if (!textures)
910
674
  return;
911
675
  if (!Array.isArray(textures)) {
912
676
  textures = [textures];
913
677
  }
914
- var extensions = getAbilities().extensions;
915
- var target = textures.find(function (texture) { return extensions[texture.type]; });
678
+ var formats = (_c = getSuportCompressedTextureFormats(gl)) !== null && _c !== void 0 ? _c : {};
679
+ var target = textures.find(function (texture) { return formats[texture.type]; });
916
680
  if (target) {
917
- resource.src.image.url = target.url;
918
- resource.src.image.type = target.type;
681
+ Object.assign(resource.src.image, target);
919
682
  }
920
683
  });
921
684
  }
922
685
  function addKTXStragetyAndRegister() {
923
- Object.assign(STRATEGY, {
924
- astc: KTXLoadStrategy,
925
- etc: KTXLoadStrategy,
926
- pvrtc: KTXLoadStrategy,
927
- s3tc: KTXLoadStrategy,
928
- atc: KTXLoadStrategy,
686
+ Object.assign(RESOURCE_TYPE_STRATEGY, {
687
+ astc: KTXLoadStrategy$1,
688
+ etc: KTXLoadStrategy$1,
689
+ pvrtc: KTXLoadStrategy$1,
690
+ s3tc: KTXLoadStrategy$1,
691
+ atc: KTXLoadStrategy$1,
929
692
  });
930
- KTXLoadStrategy.setExtensionXhrType('ktx', XhrResponseType.Buffer);
693
+ KTXLoadStrategy$1.setExtensionXhrType('ktx', XhrResponseType.Buffer);
931
694
  }
932
695
 
933
696
  var GLTexture = glCore.GLTexture;
@@ -957,25 +720,21 @@ var GLTextureMixin = {
957
720
  }
958
721
  };
959
722
 
960
- var _a$1;
961
- var oldFrom$1 = Symbol();
962
- var TextureMixin = (_a$1 = {},
963
- _a$1[oldFrom$1] = Texture.from,
964
- _a$1.from = function (source) {
723
+ var TextureMixin = {
724
+ oldFrom: Texture.from,
725
+ from: function (source) {
965
726
  if (!(source instanceof CompressedTextureResource)) {
966
- return this[oldFrom$1](source);
727
+ return this.oldFrom(source);
967
728
  }
968
729
  return new Texture(BaseTexture.from(source));
969
- },
970
- _a$1);
730
+ }
731
+ };
971
732
 
972
- var _a;
973
- var oldFrom = Symbol();
974
- var BaseTextureMixin = (_a = {},
975
- _a[oldFrom] = BaseTexture.from,
976
- _a.from = function (source, scaleMode, sourceScale) {
733
+ var BaseTextureMixin = {
734
+ oldFrom: BaseTexture.from,
735
+ from: function (source, scaleMode, sourceScale) {
977
736
  if (!(source instanceof CompressedTextureResource)) {
978
- return this[oldFrom](source, scaleMode, sourceScale);
737
+ return this.oldFrom(source, scaleMode, sourceScale);
979
738
  }
980
739
  var imageUrl = source.src;
981
740
  var baseTexture = utils.BaseTextureCache[imageUrl];
@@ -988,17 +747,250 @@ var BaseTextureMixin = (_a = {},
988
747
  BaseTexture.addToCache(baseTexture, imageUrl);
989
748
  }
990
749
  return baseTexture;
991
- },
992
- _a);
750
+ }
751
+ };
993
752
 
994
- function registerCompressedTexture() {
995
- addPreProcessResourceHandler(resource);
753
+ function registerCompressedTexture(gl) {
754
+ addPreProcessResourceHandler(resource, gl);
996
755
  addKTXStragetyAndRegister();
997
756
  Object.assign(glCore.GLTexture.prototype, GLTextureMixin);
998
757
  Object.assign(Texture, TextureMixin);
999
758
  Object.assign(BaseTexture, BaseTextureMixin);
1000
759
  }
1001
760
 
1002
- registerCompressedTexture();
761
+ var RENDERER_TYPE;
762
+ (function (RENDERER_TYPE) {
763
+ RENDERER_TYPE[RENDERER_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
764
+ RENDERER_TYPE[RENDERER_TYPE["WEBGL"] = 1] = "WEBGL";
765
+ RENDERER_TYPE[RENDERER_TYPE["CANVAS"] = 2] = "CANVAS";
766
+ })(RENDERER_TYPE || (RENDERER_TYPE = {}));
767
+ var disableScroll = function (renderer) {
768
+ renderer.plugins.interaction.autoPreventDefault = true;
769
+ renderer.view.style.touchAction = 'none';
770
+ };
771
+ var enableScroll = function (renderer) {
772
+ renderer.plugins.interaction.autoPreventDefault = false;
773
+ renderer.view.style.touchAction = 'auto';
774
+ };
775
+ var Renderer$2 = (function (_super) {
776
+ __extends(Renderer, _super);
777
+ function Renderer() {
778
+ var _this = _super !== null && _super.apply(this, arguments) || this;
779
+ _this.multiApps = [];
780
+ return _this;
781
+ }
782
+ Renderer.prototype.init = function (params) {
783
+ var _this = this;
784
+ this.params = params;
785
+ this.application = this.createApplication(params);
786
+ this.containerManager = new ContainerManager$1();
787
+ this.rendererManager = new RendererManager$1({
788
+ game: this.game,
789
+ rendererSystem: this,
790
+ });
791
+ this.game.canvas = this.application.view;
792
+ this.transform = new Transform$1({
793
+ system: this,
794
+ containerManager: this.containerManager,
795
+ });
796
+ this.game.on('sceneChanged', function (_a) {
797
+ var scene = _a.scene, mode = _a.mode, params = _a.params;
798
+ var application;
799
+ switch (mode) {
800
+ case LOAD_SCENE_MODE.SINGLE:
801
+ application = _this.application;
802
+ break;
803
+ case LOAD_SCENE_MODE.MULTI_CANVAS:
804
+ application = _this.createMultiApplication({ params: params });
805
+ break;
806
+ }
807
+ scene.canvas = application.view;
808
+ _this.transform.emit('changeScene', {
809
+ scene: scene,
810
+ mode: mode,
811
+ application: application,
812
+ });
813
+ });
814
+ var gl = this.application.renderer.gl;
815
+ if (gl) {
816
+ this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);
817
+ registerCompressedTexture(gl);
818
+ }
819
+ };
820
+ Renderer.prototype.registerObserver = function (observerInfo) {
821
+ var _a;
822
+ var thisObserverInfo = this.constructor.observerInfo;
823
+ for (var key in observerInfo) {
824
+ if (!thisObserverInfo[key]) {
825
+ thisObserverInfo[key] = [];
826
+ }
827
+ (_a = thisObserverInfo[key]).push.apply(_a, __spread(observerInfo[key]));
828
+ }
829
+ };
830
+ Renderer.prototype.createMultiApplication = function (_a) {
831
+ var params = _a.params;
832
+ var app = this.createApplication(params);
833
+ this.multiApps.push(app);
834
+ return app;
835
+ };
836
+ Renderer.prototype.createApplication = function (params) {
837
+ params.view = params.canvas;
838
+ if (params.renderType === RENDERER_TYPE.CANVAS) {
839
+ params.forceCanvas = true;
840
+ }
841
+ var app;
842
+ try {
843
+ app = new Application(__assign({ sharedTicker: true }, params));
844
+ }
845
+ catch (e) {
846
+ if (e.message.match(/not support webgl/i) !== undefined) {
847
+ app = new Application(__assign(__assign({ sharedTicker: true }, params), { forceCanvas: true }));
848
+ }
849
+ }
850
+ ticker.shared.stop();
851
+ ticker.shared.autoStart = false;
852
+ if (params.preventScroll !== undefined) {
853
+ console.warn('PreventScroll property will deprecate at next major version, please use enableEnable instead. https://eva.js.org/#/tutorials/game');
854
+ params.preventScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
855
+ }
856
+ if (params.enableScroll !== undefined) {
857
+ params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
858
+ }
859
+ if (params.preventScroll === undefined && params.enableScroll === undefined) {
860
+ enableScroll(app.renderer);
861
+ }
862
+ return app;
863
+ };
864
+ Renderer.prototype.update = function () {
865
+ var e_1, _a, e_2, _b;
866
+ var changes = this.componentObserver.clear();
867
+ try {
868
+ for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
869
+ var changed = changes_1_1.value;
870
+ this.transform.componentChanged(changed);
871
+ }
872
+ }
873
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
874
+ finally {
875
+ try {
876
+ if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
877
+ }
878
+ finally { if (e_1) throw e_1.error; }
879
+ }
880
+ try {
881
+ for (var _c = __values(this.game.gameObjects), _d = _c.next(); !_d.done; _d = _c.next()) {
882
+ var gameObject = _d.value;
883
+ this.containerManager.updateTransform({
884
+ name: gameObject.id,
885
+ transform: gameObject.transform,
886
+ });
887
+ this.rendererManager.update(gameObject);
888
+ }
889
+ }
890
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
891
+ finally {
892
+ try {
893
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
894
+ }
895
+ finally { if (e_2) throw e_2.error; }
896
+ }
897
+ };
898
+ Renderer.prototype.lateUpdate = function (e) {
899
+ this.transform.update();
900
+ this.application.ticker.update(e.time);
901
+ };
902
+ Renderer.prototype.onDestroy = function () {
903
+ var e_3, _a;
904
+ this.application.destroy();
905
+ try {
906
+ for (var _b = __values(this.multiApps), _c = _b.next(); !_c.done; _c = _b.next()) {
907
+ var app = _c.value;
908
+ app && app.destroy();
909
+ }
910
+ }
911
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
912
+ finally {
913
+ try {
914
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
915
+ }
916
+ finally { if (e_3) throw e_3.error; }
917
+ }
918
+ this.transform.destroy();
919
+ this.transform = null;
920
+ this.params = null;
921
+ this.rendererManager = null;
922
+ this.containerManager = null;
923
+ this.application = null;
924
+ this.game = null;
925
+ this.multiApps = null;
926
+ };
927
+ Renderer.prototype.resize = function (width, height) {
928
+ this.params.width = width;
929
+ this.params.height = height;
930
+ this.application.renderer.resize(width, height);
931
+ };
932
+ Renderer.systemName = 'Renderer';
933
+ Renderer = __decorate([
934
+ decorators.componentObserver({
935
+ Transform: ['_parent'],
936
+ })
937
+ ], Renderer);
938
+ return Renderer;
939
+ }(System));
940
+ var Renderer$3 = Renderer$2;
941
+
942
+ var Renderer = (function (_super) {
943
+ __extends(Renderer, _super);
944
+ function Renderer(params) {
945
+ var _this = _super.call(this, params) || this;
946
+ _this.asyncIdMap = {};
947
+ _this.observerInfo = _this.constructor.observerInfo;
948
+ return _this;
949
+ }
950
+ Renderer.prototype.componentChanged = function (_changed) { };
951
+ Renderer.prototype.rendererUpdate = function (_gameObject) { };
952
+ Renderer.prototype.update = function (e) {
953
+ var e_1, _a;
954
+ var changes = this.componentObserver.clear();
955
+ try {
956
+ for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
957
+ var changed = changes_1_1.value;
958
+ this.componentChanged(changed);
959
+ }
960
+ }
961
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
962
+ finally {
963
+ try {
964
+ if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
965
+ }
966
+ finally { if (e_1) throw e_1.error; }
967
+ }
968
+ };
969
+ Renderer.prototype.increaseAsyncId = function (id) {
970
+ this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;
971
+ return this.asyncIdMap[id];
972
+ };
973
+ Renderer.prototype.validateAsyncId = function (id, asyncId) {
974
+ return this.asyncIdMap[id] === asyncId;
975
+ };
976
+ return Renderer;
977
+ }(System));
978
+ var Renderer$1 = Renderer;
979
+
980
+ var mixinPIXI = function () {
981
+ BaseTexture.prototype.destroy = function () {
982
+ if (this.imageUrl) {
983
+ delete utils.TextureCache[this.imageUrl];
984
+ this.imageUrl = null;
985
+ }
986
+ this.source = null;
987
+ this.dispose();
988
+ BaseTexture.removeFromCache(this);
989
+ this.textureCacheIds = null;
990
+ this._destroyed = true;
991
+ };
992
+ };
993
+
994
+ mixinPIXI();
1003
995
 
1004
- export { ContainerManager, INTERNAL_FORMATS, INTERNAL_FORMATS_TO_EXTENSION_NAME, INTERNAL_FORMAT_TO_BYTES_PER_PIXEL, RENDERER_TYPE, Renderer, RendererManager, Renderer$1 as RendererSystem };
996
+ export { ContainerManager$1 as ContainerManager, RENDERER_TYPE, Renderer$1 as Renderer, RendererManager$1 as RendererManager, Renderer$3 as RendererSystem };