@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.
- package/dist/EVA.plugin.renderer.js +2052 -4659
- package/dist/EVA.plugin.renderer.min.js +2 -1
- package/dist/EVA.plugin.renderer.min.js.map +1 -0
- package/dist/plugin-renderer.cjs.js +416 -426
- package/dist/plugin-renderer.cjs.prod.js +2 -1
- package/dist/plugin-renderer.cjs.prod.js.map +1 -0
- package/dist/plugin-renderer.d.ts +0 -65
- package/dist/plugin-renderer.esm.js +413 -421
- package/package.json +4 -5
- package/dist/vite-test/dist/assets/Graphics.f535ed8f.d.ts +0 -6
- package/dist/vite-test/dist/assets/Graphics.f535ed8f.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/Sprite.703a9f94.d.ts +0 -9
- package/dist/vite-test/dist/assets/Sprite.703a9f94.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/a11y.9b3ce839.d.ts +0 -4
- package/dist/vite-test/dist/assets/a11y.9b3ce839.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/component.caf56816.d.ts +0 -4
- package/dist/vite-test/dist/assets/component.caf56816.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/compressed-texture-animation.6dcf9ab4.d.ts +0 -4
- package/dist/vite-test/dist/assets/compressed-texture-animation.6dcf9ab4.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/compressed-texture-mipmap.cc4fada9.d.ts +0 -4
- package/dist/vite-test/dist/assets/compressed-texture-mipmap.cc4fada9.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/compressed-texture.07a67c9f.d.ts +0 -4
- package/dist/vite-test/dist/assets/compressed-texture.07a67c9f.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/dragonbone.bfd80a38.d.ts +0 -4
- package/dist/vite-test/dist/assets/dragonbone.bfd80a38.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/event.0de0fd28.d.ts +0 -4
- package/dist/vite-test/dist/assets/event.0de0fd28.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/graphics.df3659e9.d.ts +0 -4
- package/dist/vite-test/dist/assets/graphics.df3659e9.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/image.9d7f7b54.d.ts +0 -4
- package/dist/vite-test/dist/assets/image.9d7f7b54.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/index.cf7bfffd.d.ts +0 -2
- package/dist/vite-test/dist/assets/index.cf7bfffd.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/loader.03643d14.d.ts +0 -4
- package/dist/vite-test/dist/assets/loader.03643d14.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/lottie.8e29b509.d.ts +0 -4
- package/dist/vite-test/dist/assets/lottie.8e29b509.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/mask.c3592934.d.ts +0 -4
- package/dist/vite-test/dist/assets/mask.c3592934.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/matter.bcb02c9e.d.ts +0 -4
- package/dist/vite-test/dist/assets/matter.bcb02c9e.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/multi-canvas.a081d481.d.ts +0 -4
- package/dist/vite-test/dist/assets/multi-canvas.a081d481.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/ninePatch.ec5000f5.d.ts +0 -4
- package/dist/vite-test/dist/assets/ninePatch.ec5000f5.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/sound.81f19bb0.d.ts +0 -4
- package/dist/vite-test/dist/assets/sound.81f19bb0.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/spine.08037e2f.d.ts +0 -4
- package/dist/vite-test/dist/assets/spine.08037e2f.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/sprite.ab61ce04.d.ts +0 -4
- package/dist/vite-test/dist/assets/sprite.ab61ce04.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/spriteAnimation.fbd1b62d.d.ts +0 -4
- package/dist/vite-test/dist/assets/spriteAnimation.fbd1b62d.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/text.3e406bba.d.ts +0 -4
- package/dist/vite-test/dist/assets/text.3e406bba.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/tilingSprite.3f09d780.d.ts +0 -4
- package/dist/vite-test/dist/assets/tilingSprite.3f09d780.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/transition.f3d6a6eb.d.ts +0 -4
- package/dist/vite-test/dist/assets/transition.f3d6a6eb.d.ts.map +0 -1
- package/dist/vite-test/dist/assets/vendor.1f31f96e.d.ts +0 -5
- package/dist/vite-test/dist/assets/vendor.1f31f96e.d.ts.map +0 -1
- package/dist/vite-test/index.d.ts +0 -2
- package/dist/vite-test/index.d.ts.map +0 -1
- package/dist/vite-test/ts/a11y.d.ts +0 -3
- package/dist/vite-test/ts/a11y.d.ts.map +0 -1
- package/dist/vite-test/ts/component.d.ts +0 -3
- package/dist/vite-test/ts/component.d.ts.map +0 -1
- package/dist/vite-test/ts/compressed-texture-animation.d.ts +0 -3
- package/dist/vite-test/ts/compressed-texture-animation.d.ts.map +0 -1
- package/dist/vite-test/ts/compressed-texture-mipmap.d.ts +0 -3
- package/dist/vite-test/ts/compressed-texture-mipmap.d.ts.map +0 -1
- package/dist/vite-test/ts/compressed-texture.d.ts +0 -3
- package/dist/vite-test/ts/compressed-texture.d.ts.map +0 -1
- package/dist/vite-test/ts/dragonbone.d.ts +0 -3
- package/dist/vite-test/ts/dragonbone.d.ts.map +0 -1
- package/dist/vite-test/ts/event.d.ts +0 -3
- package/dist/vite-test/ts/event.d.ts.map +0 -1
- package/dist/vite-test/ts/graphics.d.ts +0 -3
- package/dist/vite-test/ts/graphics.d.ts.map +0 -1
- package/dist/vite-test/ts/image.d.ts +0 -3
- package/dist/vite-test/ts/image.d.ts.map +0 -1
- package/dist/vite-test/ts/loader.d.ts +0 -3
- package/dist/vite-test/ts/loader.d.ts.map +0 -1
- package/dist/vite-test/ts/lottie.d.ts +0 -3
- package/dist/vite-test/ts/lottie.d.ts.map +0 -1
- package/dist/vite-test/ts/mask.d.ts +0 -4
- package/dist/vite-test/ts/mask.d.ts.map +0 -1
- package/dist/vite-test/ts/matter.d.ts +0 -3
- package/dist/vite-test/ts/matter.d.ts.map +0 -1
- package/dist/vite-test/ts/multi-canvas.d.ts +0 -3
- package/dist/vite-test/ts/multi-canvas.d.ts.map +0 -1
- package/dist/vite-test/ts/ninePatch.d.ts +0 -3
- package/dist/vite-test/ts/ninePatch.d.ts.map +0 -1
- package/dist/vite-test/ts/sound.d.ts +0 -3
- package/dist/vite-test/ts/sound.d.ts.map +0 -1
- package/dist/vite-test/ts/spine.d.ts +0 -3
- package/dist/vite-test/ts/spine.d.ts.map +0 -1
- package/dist/vite-test/ts/sprite.d.ts +0 -3
- package/dist/vite-test/ts/sprite.d.ts.map +0 -1
- package/dist/vite-test/ts/spriteAnimation.d.ts +0 -3
- package/dist/vite-test/ts/spriteAnimation.d.ts.map +0 -1
- package/dist/vite-test/ts/text.d.ts +0 -3
- package/dist/vite-test/ts/text.d.ts.map +0 -1
- package/dist/vite-test/ts/tilingSprite.d.ts +0 -3
- package/dist/vite-test/ts/tilingSprite.d.ts.map +0 -1
- package/dist/vite-test/ts/transition.d.ts +0 -3
- package/dist/vite-test/ts/transition.d.ts.map +0 -1
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { OBSERVER_TYPE, decorators,
|
|
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 {
|
|
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
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
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
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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
|
-
|
|
418
|
-
|
|
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
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
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
|
|
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
|
|
618
|
-
_a
|
|
619
|
-
_a
|
|
620
|
-
_a
|
|
621
|
-
_a
|
|
622
|
-
_a
|
|
623
|
-
_a
|
|
624
|
-
_a
|
|
625
|
-
_a
|
|
626
|
-
_a
|
|
627
|
-
_a
|
|
628
|
-
_a
|
|
629
|
-
_a
|
|
630
|
-
_a
|
|
631
|
-
_a
|
|
632
|
-
_a
|
|
633
|
-
_a
|
|
634
|
-
_a
|
|
635
|
-
_a
|
|
636
|
-
_a
|
|
637
|
-
_a
|
|
638
|
-
_a
|
|
639
|
-
_a
|
|
640
|
-
_a
|
|
641
|
-
_a
|
|
642
|
-
_a
|
|
643
|
-
_a
|
|
644
|
-
_a
|
|
645
|
-
_a
|
|
646
|
-
_a
|
|
647
|
-
_a
|
|
648
|
-
_a
|
|
649
|
-
_a
|
|
650
|
-
_a
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
_b
|
|
661
|
-
_b
|
|
662
|
-
_b
|
|
663
|
-
_b
|
|
664
|
-
_b
|
|
665
|
-
_b
|
|
666
|
-
_b
|
|
667
|
-
_b
|
|
668
|
-
_b
|
|
669
|
-
_b
|
|
670
|
-
_b
|
|
671
|
-
_b
|
|
672
|
-
_b
|
|
673
|
-
_b
|
|
674
|
-
_b
|
|
675
|
-
_b
|
|
676
|
-
_b
|
|
677
|
-
_b
|
|
678
|
-
_b
|
|
679
|
-
_b
|
|
680
|
-
_b
|
|
681
|
-
_b
|
|
682
|
-
_b
|
|
683
|
-
_b
|
|
684
|
-
_b
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
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,
|
|
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
|
-
|
|
804
|
-
var
|
|
805
|
-
var
|
|
806
|
-
var
|
|
807
|
-
|
|
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
|
|
617
|
+
throw new Error('CubeTextures are not supported!');
|
|
818
618
|
}
|
|
819
619
|
if (numberOfArrayElements !== 1) {
|
|
820
|
-
throw new Error('
|
|
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
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
915
|
-
var target = textures.find(function (texture) { return
|
|
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
|
|
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(
|
|
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
|
|
961
|
-
|
|
962
|
-
|
|
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
|
|
727
|
+
return this.oldFrom(source);
|
|
967
728
|
}
|
|
968
729
|
return new Texture(BaseTexture.from(source));
|
|
969
|
-
}
|
|
970
|
-
|
|
730
|
+
}
|
|
731
|
+
};
|
|
971
732
|
|
|
972
|
-
var
|
|
973
|
-
|
|
974
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
996
|
+
export { ContainerManager$1 as ContainerManager, RENDERER_TYPE, Renderer$1 as Renderer, RendererManager$1 as RendererManager, Renderer$3 as RendererSystem };
|