@galacean/engine 2.0.0-alpha.10 → 2.0.0-alpha.12
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/browser.js +1827 -1873
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/bundled.module.js +1827 -1873
- package/dist/bundled.module.js.map +1 -1
- package/dist/bundled.module.min.js +1 -1
- package/dist/bundled.module.min.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/module.js +1 -1
- package/package.json +5 -5
package/dist/browser.js
CHANGED
|
@@ -28930,7 +28930,7 @@
|
|
|
28930
28930
|
/** Sprite. */ AssetType["Sprite"] = "Sprite";
|
|
28931
28931
|
/** PrimitiveMesh. */ AssetType["PrimitiveMesh"] = "PrimitiveMesh";
|
|
28932
28932
|
/** Sprite Atlas. */ AssetType["SpriteAtlas"] = "SpriteAtlas";
|
|
28933
|
-
/** Ambient light. */ AssetType["
|
|
28933
|
+
/** Ambient light. */ AssetType["AmbientLight"] = "AmbientLight";
|
|
28934
28934
|
/** Scene. */ AssetType["Scene"] = "Scene";
|
|
28935
28935
|
/** Font. */ AssetType["Font"] = "Font";
|
|
28936
28936
|
/** Source Font, include ttf, otf and woff. */ AssetType["SourceFont"] = "SourceFont";
|
|
@@ -45746,7 +45746,9 @@
|
|
|
45746
45746
|
header.name = name;
|
|
45747
45747
|
header.type = type;
|
|
45748
45748
|
header.version = fileVersion;
|
|
45749
|
-
|
|
45749
|
+
// Align to 4 bytes so that data following the header can be accessed via TypedArray views
|
|
45750
|
+
var rawLength = offset + nameUint8Array.byteLength + typeUint8Array.byteLength + 9;
|
|
45751
|
+
header.headerLength = rawLength + 3 & ~3;
|
|
45750
45752
|
return header;
|
|
45751
45753
|
};
|
|
45752
45754
|
_create_class(FileHeader, [
|
|
@@ -47135,1965 +47137,1982 @@
|
|
|
47135
47137
|
"bin"
|
|
47136
47138
|
])
|
|
47137
47139
|
], BufferLoader);
|
|
47138
|
-
var
|
|
47139
|
-
|
|
47140
|
-
|
|
47141
|
-
|
|
47140
|
+
var DFDTransferFunction = /*#__PURE__*/ function(DFDTransferFunction) {
|
|
47141
|
+
DFDTransferFunction[DFDTransferFunction["linear"] = 1] = "linear";
|
|
47142
|
+
DFDTransferFunction[DFDTransferFunction["sRGB"] = 2] = "sRGB";
|
|
47143
|
+
return DFDTransferFunction;
|
|
47144
|
+
}({});
|
|
47145
|
+
var ColorModel = /*#__PURE__*/ function(ColorModel) {
|
|
47146
|
+
ColorModel[ColorModel["ETC1S"] = 163] = "ETC1S";
|
|
47147
|
+
ColorModel[ColorModel["UASTC_LDR_4X4"] = 166] = "UASTC_LDR_4X4";
|
|
47148
|
+
ColorModel[ColorModel["UASTC_HDR_4X4"] = 167] = "UASTC_HDR_4X4";
|
|
47149
|
+
return ColorModel;
|
|
47150
|
+
}({});
|
|
47151
|
+
/** @internal */ var KTX2Container = /*#__PURE__*/ function() {
|
|
47152
|
+
function KTX2Container(buffer) {
|
|
47153
|
+
this.vkFormat = 0;
|
|
47154
|
+
this.typeSize = 1;
|
|
47155
|
+
this.pixelWidth = 0;
|
|
47156
|
+
this.pixelHeight = 0;
|
|
47157
|
+
this.pixelDepth = 0;
|
|
47158
|
+
this.layerCount = 0;
|
|
47159
|
+
this.faceCount = 1;
|
|
47160
|
+
this.supercompressionScheme = 0;
|
|
47161
|
+
this.levels = [];
|
|
47162
|
+
this.keyValue = {};
|
|
47163
|
+
this.globalData = null;
|
|
47164
|
+
this.parse(buffer);
|
|
47142
47165
|
}
|
|
47143
|
-
var _proto =
|
|
47144
|
-
_proto.
|
|
47145
|
-
|
|
47146
|
-
|
|
47147
|
-
|
|
47148
|
-
|
|
47149
|
-
|
|
47150
|
-
|
|
47151
|
-
|
|
47152
|
-
|
|
47153
|
-
|
|
47154
|
-
|
|
47155
|
-
|
|
47156
|
-
|
|
47157
|
-
|
|
47158
|
-
|
|
47159
|
-
|
|
47160
|
-
|
|
47161
|
-
|
|
47162
|
-
|
|
47163
|
-
|
|
47164
|
-
|
|
47165
|
-
|
|
47166
|
-
|
|
47167
|
-
|
|
47168
|
-
|
|
47169
|
-
|
|
47170
|
-
|
|
47171
|
-
|
|
47172
|
-
|
|
47173
|
-
|
|
47174
|
-
|
|
47175
|
-
var
|
|
47176
|
-
var
|
|
47177
|
-
|
|
47178
|
-
|
|
47179
|
-
|
|
47180
|
-
|
|
47181
|
-
|
|
47182
|
-
|
|
47183
|
-
|
|
47166
|
+
var _proto = KTX2Container.prototype;
|
|
47167
|
+
_proto.parse = function parse(data) {
|
|
47168
|
+
var buffer = data.buffer;
|
|
47169
|
+
var byteOffset = data.byteOffset;
|
|
47170
|
+
var headerBufferReader = new BufferReader(data, 12);
|
|
47171
|
+
this.vkFormat = headerBufferReader.nextUint32();
|
|
47172
|
+
this.typeSize = headerBufferReader.nextUint32();
|
|
47173
|
+
this.pixelWidth = headerBufferReader.nextUint32();
|
|
47174
|
+
this.pixelHeight = headerBufferReader.nextUint32();
|
|
47175
|
+
this.pixelDepth = headerBufferReader.nextUint32();
|
|
47176
|
+
this.layerCount = headerBufferReader.nextUint32();
|
|
47177
|
+
this.faceCount = headerBufferReader.nextUint32();
|
|
47178
|
+
var levelCount = Math.max(1, headerBufferReader.nextUint32());
|
|
47179
|
+
this.supercompressionScheme = headerBufferReader.nextUint32();
|
|
47180
|
+
var dfdByteOffset = headerBufferReader.nextUint32();
|
|
47181
|
+
var dfdByteLength = headerBufferReader.nextUint32();
|
|
47182
|
+
var kvdByteOffset = headerBufferReader.nextUint32();
|
|
47183
|
+
var kvdByteLength = headerBufferReader.nextUint32();
|
|
47184
|
+
var sgdByteOffset = headerBufferReader.nextUint64();
|
|
47185
|
+
var sgdByteLength = headerBufferReader.nextUint64();
|
|
47186
|
+
// level index
|
|
47187
|
+
var ktxLevels = new Array(levelCount);
|
|
47188
|
+
var levelByteLength = levelCount * 3 * 8;
|
|
47189
|
+
var levelReader = new BufferReader(data, headerBufferReader.offset, levelByteLength);
|
|
47190
|
+
this.levels = ktxLevels;
|
|
47191
|
+
for(var i = 0; i < levelCount; i++){
|
|
47192
|
+
ktxLevels[i] = {
|
|
47193
|
+
levelData: new Uint8Array(buffer, byteOffset + levelReader.nextUint64(), levelReader.nextUint64()),
|
|
47194
|
+
uncompressedByteLength: levelReader.nextUint64()
|
|
47195
|
+
};
|
|
47196
|
+
}
|
|
47197
|
+
// Data Format Descriptor (DFD).
|
|
47198
|
+
var dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength);
|
|
47199
|
+
var dfd = {
|
|
47200
|
+
vendorId: dfdReader.skip(4 /* totalSize */ ).nextUint16(),
|
|
47201
|
+
descriptorType: dfdReader.nextUint16(),
|
|
47202
|
+
versionNumber: dfdReader.nextUint16(),
|
|
47203
|
+
descriptorBlockSize: dfdReader.nextUint16(),
|
|
47204
|
+
colorModel: dfdReader.nextUint8(),
|
|
47205
|
+
colorPrimaries: dfdReader.nextUint8(),
|
|
47206
|
+
transferFunction: dfdReader.nextUint8(),
|
|
47207
|
+
flags: dfdReader.nextUint8(),
|
|
47208
|
+
texelBlockDimension: [
|
|
47209
|
+
dfdReader.nextUint8(),
|
|
47210
|
+
dfdReader.nextUint8(),
|
|
47211
|
+
dfdReader.nextUint8(),
|
|
47212
|
+
dfdReader.nextUint8()
|
|
47213
|
+
],
|
|
47214
|
+
bytesPlane: [
|
|
47215
|
+
dfdReader.nextUint8(),
|
|
47216
|
+
dfdReader.nextUint8(),
|
|
47217
|
+
dfdReader.nextUint8(),
|
|
47218
|
+
dfdReader.nextUint8(),
|
|
47219
|
+
dfdReader.nextUint8(),
|
|
47220
|
+
dfdReader.nextUint8(),
|
|
47221
|
+
dfdReader.nextUint8(),
|
|
47222
|
+
dfdReader.nextUint8()
|
|
47223
|
+
],
|
|
47224
|
+
samples: []
|
|
47225
|
+
};
|
|
47226
|
+
this.dataFormatDescriptor = dfd;
|
|
47227
|
+
var sampleStart = 6;
|
|
47228
|
+
var sampleWords = 4;
|
|
47229
|
+
var numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;
|
|
47230
|
+
for(var i1 = 0; i1 < numSamples; i1++){
|
|
47231
|
+
var sample = {
|
|
47232
|
+
bitOffset: dfdReader.nextUint16(),
|
|
47233
|
+
bitLength: dfdReader.nextUint8(),
|
|
47234
|
+
channelType: dfdReader.nextUint8(),
|
|
47235
|
+
samplePosition: [
|
|
47236
|
+
dfdReader.nextUint8(),
|
|
47237
|
+
dfdReader.nextUint8(),
|
|
47238
|
+
dfdReader.nextUint8(),
|
|
47239
|
+
dfdReader.nextUint8()
|
|
47240
|
+
],
|
|
47241
|
+
sampleLower: -Infinity,
|
|
47242
|
+
sampleUpper: Infinity
|
|
47243
|
+
};
|
|
47244
|
+
if (sample.channelType & 0x40) {
|
|
47245
|
+
sample.sampleLower = dfdReader.nextInt32();
|
|
47246
|
+
sample.sampleUpper = dfdReader.nextInt32();
|
|
47247
|
+
} else {
|
|
47248
|
+
sample.sampleLower = dfdReader.nextUint32();
|
|
47249
|
+
sample.sampleUpper = dfdReader.nextUint32();
|
|
47184
47250
|
}
|
|
47251
|
+
dfd.samples[i1] = sample;
|
|
47185
47252
|
}
|
|
47186
|
-
|
|
47253
|
+
var kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);
|
|
47254
|
+
while(kvdReader.position < kvdByteLength){
|
|
47255
|
+
var keyValueByteLength = kvdReader.nextUint32();
|
|
47256
|
+
var keyData = kvdReader.scan(keyValueByteLength);
|
|
47257
|
+
var key = Utils.decodeText(keyData);
|
|
47258
|
+
// 4-byte alignment.
|
|
47259
|
+
var valueData = kvdReader.nextUint8Array(keyValueByteLength - keyData.byteLength - 1);
|
|
47260
|
+
this.keyValue[key] = key.match(/^ktx/i) ? Utils.decodeText(valueData).replace(/^(.*)\x00$/, "$1") : valueData;
|
|
47261
|
+
var kvPadding = keyValueByteLength % 4 ? 4 - keyValueByteLength % 4 : 0; // align(4)
|
|
47262
|
+
// 4-byte alignment.
|
|
47263
|
+
kvdReader.skip(kvPadding);
|
|
47264
|
+
}
|
|
47265
|
+
if (sgdByteLength <= 0) return this;
|
|
47266
|
+
var sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);
|
|
47267
|
+
var endpointCount = sgdReader.nextUint16();
|
|
47268
|
+
var selectorCount = sgdReader.nextUint16();
|
|
47269
|
+
var endpointsByteLength = sgdReader.nextUint32();
|
|
47270
|
+
var selectorsByteLength = sgdReader.nextUint32();
|
|
47271
|
+
var tablesByteLength = sgdReader.nextUint32();
|
|
47272
|
+
var extendedByteLength = sgdReader.nextUint32();
|
|
47273
|
+
var imageDescs = new Array(levelCount);
|
|
47274
|
+
for(var i2 = 0; i2 < levelCount; i2++){
|
|
47275
|
+
imageDescs[i2] = {
|
|
47276
|
+
imageFlags: sgdReader.nextUint32(),
|
|
47277
|
+
rgbSliceByteOffset: sgdReader.nextUint32(),
|
|
47278
|
+
rgbSliceByteLength: sgdReader.nextUint32(),
|
|
47279
|
+
alphaSliceByteOffset: sgdReader.nextUint32(),
|
|
47280
|
+
alphaSliceByteLength: sgdReader.nextUint32()
|
|
47281
|
+
};
|
|
47282
|
+
}
|
|
47283
|
+
var endpointsByteOffset = sgdByteOffset + sgdReader.position;
|
|
47284
|
+
var selectorsByteOffset = endpointsByteOffset + endpointsByteLength;
|
|
47285
|
+
var tablesByteOffset = selectorsByteOffset + selectorsByteLength;
|
|
47286
|
+
var extendedByteOffset = tablesByteOffset + tablesByteLength;
|
|
47287
|
+
var endpointsData = new Uint8Array(buffer, byteOffset + endpointsByteOffset, endpointsByteLength);
|
|
47288
|
+
var selectorsData = new Uint8Array(buffer, byteOffset + selectorsByteOffset, selectorsByteLength);
|
|
47289
|
+
var tablesData = new Uint8Array(buffer, byteOffset + tablesByteOffset, tablesByteLength);
|
|
47290
|
+
var extendedData = new Uint8Array(buffer, byteOffset + extendedByteOffset, extendedByteLength);
|
|
47291
|
+
this.globalData = {
|
|
47292
|
+
endpointCount: endpointCount,
|
|
47293
|
+
selectorCount: selectorCount,
|
|
47294
|
+
imageDescs: imageDescs,
|
|
47295
|
+
endpointsData: endpointsData,
|
|
47296
|
+
selectorsData: selectorsData,
|
|
47297
|
+
tablesData: tablesData,
|
|
47298
|
+
extendedData: extendedData
|
|
47299
|
+
};
|
|
47187
47300
|
};
|
|
47188
|
-
|
|
47189
|
-
|
|
47190
|
-
|
|
47191
|
-
|
|
47192
|
-
|
|
47193
|
-
|
|
47194
|
-
|
|
47301
|
+
KTX2Container.checkMagic = function checkMagic(buffer, offset) {
|
|
47302
|
+
if (offset === void 0) offset = 0;
|
|
47303
|
+
if (buffer.byteLength < offset + 4) return false;
|
|
47304
|
+
var id = new Uint8Array(buffer, offset, 4);
|
|
47305
|
+
return id[0] === 0xab && id[1] === 0x4b && id[2] === 0x54 && id[3] === 0x58;
|
|
47306
|
+
};
|
|
47307
|
+
_create_class(KTX2Container, [
|
|
47308
|
+
{
|
|
47309
|
+
key: "isSRGB",
|
|
47310
|
+
get: function get() {
|
|
47311
|
+
return this.dataFormatDescriptor.transferFunction === 2;
|
|
47312
|
+
}
|
|
47313
|
+
},
|
|
47314
|
+
{
|
|
47315
|
+
key: "colorModel",
|
|
47316
|
+
get: function get() {
|
|
47317
|
+
return this.dataFormatDescriptor.colorModel;
|
|
47318
|
+
}
|
|
47319
|
+
}
|
|
47320
|
+
]);
|
|
47321
|
+
return KTX2Container;
|
|
47322
|
+
}();
|
|
47323
|
+
/**
|
|
47324
|
+
* KTX2 transcode target format.
|
|
47325
|
+
*/ var KTX2TargetFormat = /*#__PURE__*/ function(KTX2TargetFormat) {
|
|
47326
|
+
/** RGB(A) compressed format, 128 bits per 4x4 pixel block. */ KTX2TargetFormat[KTX2TargetFormat["ASTC"] = 0] = "ASTC";
|
|
47327
|
+
/** RGB(A) compressed format, 128 bits per 4x4 pixel block. */ KTX2TargetFormat[KTX2TargetFormat["BC7"] = 1] = "BC7";
|
|
47328
|
+
/** RGB(A) compressed format, 4 bits per pixel if no alpha channel, 8 bits per pixel if has alpha channel. */ KTX2TargetFormat[KTX2TargetFormat["BC1_BC3"] = 2] = "BC1_BC3";
|
|
47329
|
+
/** RGB(A) compressed format, 4 bits per pixel. */ KTX2TargetFormat[KTX2TargetFormat["PVRTC"] = 3] = "PVRTC";
|
|
47330
|
+
/** RGB(A) compressed format, 4 bits per pixel if no alpha channel, 8 bits per pixel if has alpha channel. */ KTX2TargetFormat[KTX2TargetFormat["ETC"] = 4] = "ETC";
|
|
47331
|
+
/** R format, 8 bits per pixel. */ KTX2TargetFormat[KTX2TargetFormat["R8"] = 5] = "R8";
|
|
47332
|
+
/** RG format, 16 bits per pixel. */ KTX2TargetFormat[KTX2TargetFormat["R8G8"] = 6] = "R8G8";
|
|
47333
|
+
/** RGBA format, 32 bits per pixel. */ KTX2TargetFormat[KTX2TargetFormat["R8G8B8A8"] = 7] = "R8G8B8A8";
|
|
47334
|
+
/** RGB HDR compressed format, 8 bits per pixel. */ KTX2TargetFormat[KTX2TargetFormat["BC6H"] = 8] = "BC6H";
|
|
47335
|
+
/** HDR RGB(A) compressed format, 128 bits per 4x4 pixel block (currently UASTC HDR 4x4 encoders are only RGB). */ KTX2TargetFormat[KTX2TargetFormat["ASTC_HDR_4x4"] = 9] = "ASTC_HDR_4x4";
|
|
47336
|
+
/** RGBA format, 16 bits per channel. */ KTX2TargetFormat[KTX2TargetFormat["R16G16B16A16"] = 10] = "R16G16B16A16";
|
|
47337
|
+
return KTX2TargetFormat;
|
|
47338
|
+
}({});
|
|
47195
47339
|
/**
|
|
47196
47340
|
* @internal
|
|
47197
|
-
|
|
47198
|
-
|
|
47199
|
-
function
|
|
47200
|
-
|
|
47201
|
-
|
|
47202
|
-
|
|
47341
|
+
* WorkerPool, T is is post message type, U is return type.
|
|
47342
|
+
*/ var WorkerPool = /*#__PURE__*/ function() {
|
|
47343
|
+
function WorkerPool(limitedCount, _workerCreator) {
|
|
47344
|
+
if (limitedCount === void 0) limitedCount = 4;
|
|
47345
|
+
this.limitedCount = limitedCount;
|
|
47346
|
+
this._workerCreator = _workerCreator;
|
|
47347
|
+
this._taskQueue = [];
|
|
47348
|
+
this._workerStatus = 0;
|
|
47349
|
+
this._workerItems = new Array(limitedCount);
|
|
47203
47350
|
}
|
|
47204
|
-
var _proto =
|
|
47205
|
-
_proto.
|
|
47206
|
-
var
|
|
47207
|
-
|
|
47208
|
-
|
|
47209
|
-
|
|
47210
|
-
|
|
47211
|
-
|
|
47212
|
-
EnvLoader._setTextureByBuffer(engine, buffer, resource);
|
|
47213
|
-
resolve(resource);
|
|
47214
|
-
}).catch(reject);
|
|
47215
|
-
});
|
|
47351
|
+
var _proto = WorkerPool.prototype;
|
|
47352
|
+
_proto.prepareWorker = function prepareWorker() {
|
|
47353
|
+
var count = this.limitedCount;
|
|
47354
|
+
var promises = new Array(count);
|
|
47355
|
+
for(var i = 0; i < count; i++){
|
|
47356
|
+
promises.push(this._initWorker(i));
|
|
47357
|
+
}
|
|
47358
|
+
return Promise.all(promises);
|
|
47216
47359
|
};
|
|
47217
|
-
|
|
47218
|
-
|
|
47219
|
-
|
|
47220
|
-
|
|
47221
|
-
|
|
47222
|
-
var
|
|
47223
|
-
} catch (error) {
|
|
47224
|
-
reject(error);
|
|
47225
|
-
return;
|
|
47226
|
-
}
|
|
47227
|
-
if (info.done) resolve(value);
|
|
47228
|
-
else Promise.resolve(value).then(_next, _throw);
|
|
47229
|
-
}
|
|
47230
|
-
function _async_to_generator(fn) {
|
|
47231
|
-
return function() {
|
|
47232
|
-
var self1 = this, args = arguments;
|
|
47360
|
+
/**
|
|
47361
|
+
* Post message to worker.
|
|
47362
|
+
* @param message - Message which posted to worker
|
|
47363
|
+
* @returns Return a promise of message
|
|
47364
|
+
*/ _proto.postMessage = function postMessage(message) {
|
|
47365
|
+
var _this = this;
|
|
47233
47366
|
return new Promise(function(resolve, reject) {
|
|
47234
|
-
var
|
|
47235
|
-
|
|
47236
|
-
|
|
47237
|
-
|
|
47238
|
-
|
|
47239
|
-
|
|
47367
|
+
var workerId = _this._getIdleWorkerId();
|
|
47368
|
+
if (workerId !== -1) {
|
|
47369
|
+
_this._workerStatus |= 1 << workerId;
|
|
47370
|
+
var workerItems = _this._workerItems;
|
|
47371
|
+
var _workerItems_workerId;
|
|
47372
|
+
Promise.resolve((_workerItems_workerId = workerItems[workerId]) != null ? _workerItems_workerId : _this._initWorker(workerId)).then(function() {
|
|
47373
|
+
var workerItem = workerItems[workerId];
|
|
47374
|
+
workerItem.resolve = resolve;
|
|
47375
|
+
workerItem.reject = reject;
|
|
47376
|
+
workerItem.worker.postMessage(message);
|
|
47377
|
+
}).catch(reject);
|
|
47378
|
+
} else {
|
|
47379
|
+
_this._taskQueue.push({
|
|
47380
|
+
resolve: resolve,
|
|
47381
|
+
reject: reject,
|
|
47382
|
+
message: message
|
|
47383
|
+
});
|
|
47240
47384
|
}
|
|
47241
|
-
_next(undefined);
|
|
47242
47385
|
});
|
|
47243
47386
|
};
|
|
47244
|
-
|
|
47245
|
-
|
|
47246
|
-
|
|
47247
|
-
|
|
47248
|
-
|
|
47249
|
-
|
|
47250
|
-
|
|
47251
|
-
|
|
47387
|
+
/**
|
|
47388
|
+
* Destroy the worker pool.
|
|
47389
|
+
*/ _proto.destroy = function destroy() {
|
|
47390
|
+
var workerItems = this._workerItems;
|
|
47391
|
+
for(var i = 0, n = workerItems.length; i < n; i++){
|
|
47392
|
+
var workerItem = workerItems[i];
|
|
47393
|
+
workerItem.worker.terminate();
|
|
47394
|
+
workerItem.reject = null;
|
|
47395
|
+
workerItem.resolve = null;
|
|
47396
|
+
}
|
|
47397
|
+
workerItems.length = 0;
|
|
47398
|
+
this._taskQueue.length = 0;
|
|
47399
|
+
this._workerStatus = 0;
|
|
47400
|
+
};
|
|
47401
|
+
_proto._initWorker = function _initWorker(workerId) {
|
|
47252
47402
|
var _this = this;
|
|
47253
|
-
return
|
|
47254
|
-
|
|
47255
|
-
.
|
|
47256
|
-
|
|
47257
|
-
|
|
47258
|
-
|
|
47259
|
-
|
|
47260
|
-
|
|
47261
|
-
var font = new Font(resourceManager.engine, fontName);
|
|
47262
|
-
resolve(font);
|
|
47263
|
-
}).catch(function(e) {
|
|
47264
|
-
reject("load font " + fontUrl + " fail");
|
|
47265
|
-
});
|
|
47266
|
-
} else {
|
|
47267
|
-
var font = new Font(resourceManager.engine, fontName);
|
|
47268
|
-
resolve(font);
|
|
47269
|
-
}
|
|
47270
|
-
}).catch(function(e) {
|
|
47271
|
-
reject(e);
|
|
47272
|
-
});
|
|
47403
|
+
return Promise.resolve(this._workerCreator()).then(function(worker) {
|
|
47404
|
+
worker.addEventListener("message", _this._onMessage.bind(_this, workerId));
|
|
47405
|
+
_this._workerItems[workerId] = {
|
|
47406
|
+
worker: worker,
|
|
47407
|
+
resolve: null,
|
|
47408
|
+
reject: null
|
|
47409
|
+
};
|
|
47410
|
+
return worker;
|
|
47273
47411
|
});
|
|
47274
47412
|
};
|
|
47275
|
-
_proto.
|
|
47276
|
-
|
|
47277
|
-
|
|
47278
|
-
|
|
47279
|
-
|
|
47280
|
-
case 0:
|
|
47281
|
-
fontFace = new FontFace(fontName, "url(" + fontUrl + ")");
|
|
47282
|
-
return [
|
|
47283
|
-
4,
|
|
47284
|
-
fontFace.load()
|
|
47285
|
-
];
|
|
47286
|
-
case 1:
|
|
47287
|
-
_state.sent();
|
|
47288
|
-
document.fonts.add(fontFace);
|
|
47289
|
-
return [
|
|
47290
|
-
2
|
|
47291
|
-
];
|
|
47292
|
-
}
|
|
47293
|
-
});
|
|
47294
|
-
})();
|
|
47413
|
+
_proto._getIdleWorkerId = function _getIdleWorkerId() {
|
|
47414
|
+
for(var i = 0, count = this.limitedCount; i < count; i++){
|
|
47415
|
+
if (!(this._workerStatus & 1 << i)) return i;
|
|
47416
|
+
}
|
|
47417
|
+
return -1;
|
|
47295
47418
|
};
|
|
47296
|
-
|
|
47297
|
-
|
|
47298
|
-
|
|
47299
|
-
|
|
47300
|
-
|
|
47301
|
-
|
|
47302
|
-
|
|
47303
|
-
// Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
|
|
47304
|
-
var ready;
|
|
47305
|
-
function getMeshoptDecoder() {
|
|
47306
|
-
if (ready) return ready;
|
|
47307
|
-
var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
|
|
47308
|
-
var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
|
|
47309
|
-
var wasmpack = new Uint8Array([
|
|
47310
|
-
32,
|
|
47311
|
-
0,
|
|
47312
|
-
65,
|
|
47313
|
-
2,
|
|
47314
|
-
1,
|
|
47315
|
-
106,
|
|
47316
|
-
34,
|
|
47317
|
-
33,
|
|
47318
|
-
3,
|
|
47319
|
-
128,
|
|
47320
|
-
11,
|
|
47321
|
-
4,
|
|
47322
|
-
13,
|
|
47323
|
-
64,
|
|
47324
|
-
6,
|
|
47325
|
-
253,
|
|
47326
|
-
10,
|
|
47327
|
-
7,
|
|
47328
|
-
15,
|
|
47329
|
-
116,
|
|
47330
|
-
127,
|
|
47331
|
-
5,
|
|
47332
|
-
8,
|
|
47333
|
-
12,
|
|
47334
|
-
40,
|
|
47335
|
-
16,
|
|
47336
|
-
19,
|
|
47337
|
-
54,
|
|
47338
|
-
20,
|
|
47339
|
-
9,
|
|
47340
|
-
27,
|
|
47341
|
-
255,
|
|
47342
|
-
113,
|
|
47343
|
-
17,
|
|
47344
|
-
42,
|
|
47345
|
-
67,
|
|
47346
|
-
24,
|
|
47347
|
-
23,
|
|
47348
|
-
146,
|
|
47349
|
-
148,
|
|
47350
|
-
18,
|
|
47351
|
-
14,
|
|
47352
|
-
22,
|
|
47353
|
-
45,
|
|
47354
|
-
70,
|
|
47355
|
-
69,
|
|
47356
|
-
56,
|
|
47357
|
-
114,
|
|
47358
|
-
101,
|
|
47359
|
-
21,
|
|
47360
|
-
25,
|
|
47361
|
-
63,
|
|
47362
|
-
75,
|
|
47363
|
-
136,
|
|
47364
|
-
108,
|
|
47365
|
-
28,
|
|
47366
|
-
118,
|
|
47367
|
-
29,
|
|
47368
|
-
73,
|
|
47369
|
-
115
|
|
47370
|
-
]);
|
|
47371
|
-
// @ts-ignore
|
|
47372
|
-
var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
|
|
47373
|
-
var instance;
|
|
47374
|
-
ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
|
|
47375
|
-
instance = result.instance;
|
|
47376
|
-
instance.exports.__wasm_call_ctors();
|
|
47377
|
-
}).then(function() {
|
|
47378
|
-
return {
|
|
47379
|
-
workerCount: 4,
|
|
47380
|
-
ready: ready,
|
|
47381
|
-
useWorkers: function useWorkers(workerCount) {
|
|
47382
|
-
this.workerCount = workerCount != null ? workerCount : this.workerCount;
|
|
47383
|
-
initWorkers(this.workerCount);
|
|
47384
|
-
},
|
|
47385
|
-
decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
|
|
47386
|
-
if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
|
|
47387
|
-
if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
|
|
47388
|
-
return ready.then(function() {
|
|
47389
|
-
var target = new Uint8Array(count * stride);
|
|
47390
|
-
decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
|
|
47391
|
-
return target;
|
|
47392
|
-
});
|
|
47393
|
-
},
|
|
47394
|
-
release: function release() {
|
|
47395
|
-
for(var i = 0; i < workers.length; i++){
|
|
47396
|
-
workers[i].object.terminate();
|
|
47397
|
-
}
|
|
47398
|
-
}
|
|
47399
|
-
};
|
|
47400
|
-
});
|
|
47401
|
-
function unpack(data) {
|
|
47402
|
-
var result = new Uint8Array(data.length);
|
|
47403
|
-
for(var i = 0; i < data.length; ++i){
|
|
47404
|
-
var ch = data.charCodeAt(i);
|
|
47405
|
-
result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
|
|
47419
|
+
_proto._onMessage = function _onMessage(workerId, msg) {
|
|
47420
|
+
// onerror of web worker can't catch error in promise
|
|
47421
|
+
var error = msg.data.error;
|
|
47422
|
+
if (error) {
|
|
47423
|
+
this._workerItems[workerId].reject(error);
|
|
47424
|
+
} else {
|
|
47425
|
+
this._workerItems[workerId].resolve(msg.data);
|
|
47406
47426
|
}
|
|
47407
|
-
|
|
47408
|
-
|
|
47409
|
-
|
|
47427
|
+
this._nextTask(workerId);
|
|
47428
|
+
};
|
|
47429
|
+
_proto._nextTask = function _nextTask(workerId) {
|
|
47430
|
+
if (this._taskQueue.length) {
|
|
47431
|
+
var taskItem = this._taskQueue.shift();
|
|
47432
|
+
var workerItem = this._workerItems[workerId];
|
|
47433
|
+
workerItem.resolve = taskItem.resolve;
|
|
47434
|
+
workerItem.reject = taskItem.reject;
|
|
47435
|
+
workerItem.worker.postMessage(taskItem.message);
|
|
47436
|
+
} else {
|
|
47437
|
+
this._workerStatus ^= 1 << workerId;
|
|
47410
47438
|
}
|
|
47411
|
-
|
|
47439
|
+
};
|
|
47440
|
+
return WorkerPool;
|
|
47441
|
+
}();
|
|
47442
|
+
var AbstractTranscoder = /*#__PURE__*/ function() {
|
|
47443
|
+
function AbstractTranscoder(workerLimitCount) {
|
|
47444
|
+
this.workerLimitCount = workerLimitCount;
|
|
47412
47445
|
}
|
|
47413
|
-
|
|
47414
|
-
|
|
47415
|
-
|
|
47416
|
-
|
|
47417
|
-
var sp = sbrk(source.length);
|
|
47418
|
-
var heap = new Uint8Array(instance.exports.memory.buffer);
|
|
47419
|
-
heap.set(source, sp);
|
|
47420
|
-
var res = fun(tp, count, size, sp, source.length);
|
|
47421
|
-
if (res == 0 && filter) {
|
|
47422
|
-
filter(tp, count4, size);
|
|
47423
|
-
}
|
|
47424
|
-
target.set(heap.subarray(tp, tp + count * size));
|
|
47425
|
-
sbrk(tp - sbrk(0));
|
|
47426
|
-
if (res != 0) {
|
|
47427
|
-
throw new Error("Malformed buffer data: " + res);
|
|
47446
|
+
var _proto = AbstractTranscoder.prototype;
|
|
47447
|
+
_proto.init = function init() {
|
|
47448
|
+
if (!this._initPromise) {
|
|
47449
|
+
this._initPromise = this._initTranscodeWorkerPool();
|
|
47428
47450
|
}
|
|
47429
|
-
|
|
47430
|
-
var filters = {
|
|
47431
|
-
NONE: "",
|
|
47432
|
-
OCTAHEDRAL: "meshopt_decodeFilterOct",
|
|
47433
|
-
QUATERNION: "meshopt_decodeFilterQuat",
|
|
47434
|
-
EXPONENTIAL: "meshopt_decodeFilterExp"
|
|
47451
|
+
return this._initPromise;
|
|
47435
47452
|
};
|
|
47436
|
-
|
|
47437
|
-
|
|
47438
|
-
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
47439
|
-
INDICES: "meshopt_decodeIndexSequence"
|
|
47453
|
+
_proto.destroy = function destroy() {
|
|
47454
|
+
this._transcodeWorkerPool.destroy();
|
|
47440
47455
|
};
|
|
47441
|
-
|
|
47442
|
-
|
|
47443
|
-
|
|
47444
|
-
|
|
47445
|
-
|
|
47446
|
-
|
|
47447
|
-
|
|
47448
|
-
|
|
47449
|
-
|
|
47450
|
-
|
|
47451
|
-
|
|
47452
|
-
|
|
47453
|
-
|
|
47454
|
-
|
|
47455
|
-
|
|
47456
|
-
|
|
47457
|
-
|
|
47458
|
-
|
|
47459
|
-
var blob = new Blob([
|
|
47460
|
-
source
|
|
47461
|
-
], {
|
|
47462
|
-
type: "text/javascript"
|
|
47456
|
+
_proto._createTranscodePool = function _createTranscodePool(workerURL, wasmBuffer) {
|
|
47457
|
+
this._transcodeWorkerPool = new WorkerPool(this.workerLimitCount, function() {
|
|
47458
|
+
return new Promise(function(resolve, reject) {
|
|
47459
|
+
var onMessage = function onMessage(e) {
|
|
47460
|
+
if (e.data.error) {
|
|
47461
|
+
reject(e.data.error);
|
|
47462
|
+
} else {
|
|
47463
|
+
resolve(worker);
|
|
47464
|
+
}
|
|
47465
|
+
};
|
|
47466
|
+
var worker = new Worker(workerURL);
|
|
47467
|
+
var msg = {
|
|
47468
|
+
type: "init",
|
|
47469
|
+
transcoderWasm: wasmBuffer
|
|
47470
|
+
};
|
|
47471
|
+
worker.addEventListener("message", onMessage);
|
|
47472
|
+
worker.postMessage(msg);
|
|
47473
|
+
});
|
|
47463
47474
|
});
|
|
47464
|
-
|
|
47465
|
-
|
|
47466
|
-
|
|
47467
|
-
|
|
47468
|
-
|
|
47469
|
-
|
|
47470
|
-
|
|
47471
|
-
|
|
47472
|
-
|
|
47473
|
-
|
|
47474
|
-
|
|
47475
|
-
|
|
47475
|
+
return this._transcodeWorkerPool.prepareWorker();
|
|
47476
|
+
};
|
|
47477
|
+
return AbstractTranscoder;
|
|
47478
|
+
}();
|
|
47479
|
+
/** @internal */ function TranscodeWorkerCode() {
|
|
47480
|
+
var initPromise;
|
|
47481
|
+
var init = function init(wasmBinary) {
|
|
47482
|
+
if (!initPromise) {
|
|
47483
|
+
initPromise = new Promise(function(resolve, reject) {
|
|
47484
|
+
var BasisModule = {
|
|
47485
|
+
wasmBinary: wasmBinary,
|
|
47486
|
+
onRuntimeInitialized: function onRuntimeInitialized() {
|
|
47487
|
+
return resolve(BasisModule);
|
|
47488
|
+
},
|
|
47489
|
+
onAbort: reject
|
|
47490
|
+
};
|
|
47491
|
+
self["BASIS"](BasisModule);
|
|
47492
|
+
}).then(function(BasisModule) {
|
|
47493
|
+
BasisModule.initializeBasis();
|
|
47494
|
+
return BasisModule.KTX2File;
|
|
47495
|
+
});
|
|
47476
47496
|
}
|
|
47477
|
-
return
|
|
47478
|
-
var data = new Uint8Array(source);
|
|
47479
|
-
var id = requestId++;
|
|
47480
|
-
worker.pending += count;
|
|
47481
|
-
worker.requests[id] = {
|
|
47482
|
-
resolve: resolve,
|
|
47483
|
-
reject: reject
|
|
47484
|
-
};
|
|
47485
|
-
worker.object.postMessage({
|
|
47486
|
-
id: id,
|
|
47487
|
-
count: count,
|
|
47488
|
-
size: size,
|
|
47489
|
-
source: data,
|
|
47490
|
-
mode: mode,
|
|
47491
|
-
filter: filter
|
|
47492
|
-
}, [
|
|
47493
|
-
data.buffer
|
|
47494
|
-
]);
|
|
47495
|
-
});
|
|
47496
|
-
}
|
|
47497
|
-
return ready;
|
|
47498
|
-
}
|
|
47499
|
-
/**
|
|
47500
|
-
* The glTF resource.
|
|
47501
|
-
*/ var GLTFResource = /*#__PURE__*/ function(ReferResource) {
|
|
47502
|
-
_inherits(GLTFResource, ReferResource);
|
|
47503
|
-
function GLTFResource(engine, url) {
|
|
47504
|
-
var _this;
|
|
47505
|
-
_this = ReferResource.call(this, engine) || this;
|
|
47506
|
-
_this.url = url;
|
|
47507
|
-
return _this;
|
|
47508
|
-
}
|
|
47509
|
-
var _proto = GLTFResource.prototype;
|
|
47510
|
-
/**
|
|
47511
|
-
* Instantiate scene root entity.
|
|
47512
|
-
* @param sceneIndex - Scene index
|
|
47513
|
-
* @returns Root entity
|
|
47514
|
-
*/ _proto.instantiateSceneRoot = function instantiateSceneRoot(sceneIndex) {
|
|
47515
|
-
var sceneRoot = sceneIndex === undefined ? this._defaultSceneRoot : this._sceneRoots[sceneIndex];
|
|
47516
|
-
return sceneRoot.clone();
|
|
47497
|
+
return initPromise;
|
|
47517
47498
|
};
|
|
47518
|
-
|
|
47519
|
-
|
|
47520
|
-
|
|
47521
|
-
|
|
47522
|
-
|
|
47523
|
-
|
|
47524
|
-
|
|
47525
|
-
|
|
47526
|
-
|
|
47527
|
-
|
|
47499
|
+
self.onmessage = function onmessage(event) {
|
|
47500
|
+
var message = event.data;
|
|
47501
|
+
switch(message.type){
|
|
47502
|
+
case "init":
|
|
47503
|
+
init(message.transcoderWasm).then(function() {
|
|
47504
|
+
self.postMessage("init-completed");
|
|
47505
|
+
}).catch(function(e) {
|
|
47506
|
+
return self.postMessage({
|
|
47507
|
+
error: e
|
|
47508
|
+
});
|
|
47509
|
+
});
|
|
47510
|
+
break;
|
|
47511
|
+
case "transcode":
|
|
47512
|
+
init().then(function(KTX2File) {
|
|
47513
|
+
var result = transcode(message.buffer, message.format, KTX2File);
|
|
47514
|
+
// @ts-ignore
|
|
47515
|
+
result.type = "transcoded";
|
|
47516
|
+
self.postMessage(result);
|
|
47517
|
+
}).catch(function(e) {
|
|
47518
|
+
return self.postMessage({
|
|
47519
|
+
error: e
|
|
47520
|
+
});
|
|
47521
|
+
});
|
|
47522
|
+
break;
|
|
47528
47523
|
}
|
|
47529
47524
|
};
|
|
47530
|
-
|
|
47531
|
-
|
|
47532
|
-
|
|
47533
|
-
|
|
47525
|
+
}
|
|
47526
|
+
var _init = function init() {
|
|
47527
|
+
var initPromise;
|
|
47528
|
+
return function init(wasmBinary) {
|
|
47529
|
+
if (!initPromise) {
|
|
47530
|
+
initPromise = new Promise(function(resolve, reject) {
|
|
47531
|
+
var BasisModule = {
|
|
47532
|
+
wasmBinary: wasmBinary,
|
|
47533
|
+
onRuntimeInitialized: function onRuntimeInitialized() {
|
|
47534
|
+
return resolve(BasisModule);
|
|
47535
|
+
},
|
|
47536
|
+
onAbort: reject
|
|
47537
|
+
};
|
|
47538
|
+
self["BASIS"](BasisModule);
|
|
47539
|
+
}).then(function(BasisModule) {
|
|
47540
|
+
BasisModule.initializeBasis();
|
|
47541
|
+
return BasisModule.KTX2File;
|
|
47542
|
+
});
|
|
47534
47543
|
}
|
|
47544
|
+
return initPromise;
|
|
47535
47545
|
};
|
|
47536
|
-
|
|
47537
|
-
|
|
47538
|
-
|
|
47539
|
-
|
|
47540
|
-
|
|
47541
|
-
|
|
47542
|
-
return
|
|
47543
|
-
|
|
47544
|
-
|
|
47545
|
-
|
|
47546
|
-
|
|
47547
|
-
|
|
47548
|
-
|
|
47549
|
-
|
|
47550
|
-
|
|
47551
|
-
|
|
47552
|
-
|
|
47553
|
-
|
|
47554
|
-
|
|
47555
|
-
|
|
47556
|
-
|
|
47557
|
-
|
|
47558
|
-
|
|
47559
|
-
*/ function get() {
|
|
47560
|
-
return this._defaultSceneRoot;
|
|
47561
|
-
}
|
|
47546
|
+
};
|
|
47547
|
+
var init = _init();
|
|
47548
|
+
function transcode(buffer, targetFormat, KTX2File) {
|
|
47549
|
+
function getTranscodeFormatFromTarget(target, hasAlpha) {
|
|
47550
|
+
switch(target){
|
|
47551
|
+
case 2:
|
|
47552
|
+
return hasAlpha ? 3 : 2;
|
|
47553
|
+
case 4:
|
|
47554
|
+
return hasAlpha ? 1 : 0;
|
|
47555
|
+
case 3:
|
|
47556
|
+
return hasAlpha ? 9 : 8;
|
|
47557
|
+
case 7:
|
|
47558
|
+
return 13;
|
|
47559
|
+
case 0:
|
|
47560
|
+
return 10;
|
|
47561
|
+
case 1:
|
|
47562
|
+
return 7;
|
|
47563
|
+
case 8:
|
|
47564
|
+
return 22;
|
|
47565
|
+
case 9:
|
|
47566
|
+
return 23;
|
|
47567
|
+
case 10:
|
|
47568
|
+
return 25;
|
|
47562
47569
|
}
|
|
47563
|
-
]);
|
|
47564
|
-
return GLTFResource;
|
|
47565
|
-
}(ReferResource);
|
|
47566
|
-
/**
|
|
47567
|
-
* Module for glTF 2.0 Interface
|
|
47568
|
-
*/ /**
|
|
47569
|
-
* The datatype of the components in the attribute
|
|
47570
|
-
*/ var AccessorComponentType = /*#__PURE__*/ function(AccessorComponentType) {
|
|
47571
|
-
/**
|
|
47572
|
-
* Byte
|
|
47573
|
-
*/ AccessorComponentType[AccessorComponentType["BYTE"] = 5120] = "BYTE";
|
|
47574
|
-
/**
|
|
47575
|
-
* Unsigned Byte
|
|
47576
|
-
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE";
|
|
47577
|
-
/**
|
|
47578
|
-
* Short
|
|
47579
|
-
*/ AccessorComponentType[AccessorComponentType["SHORT"] = 5122] = "SHORT";
|
|
47580
|
-
/**
|
|
47581
|
-
* Unsigned Short
|
|
47582
|
-
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT";
|
|
47583
|
-
/**
|
|
47584
|
-
* Unsigned Int
|
|
47585
|
-
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT";
|
|
47586
|
-
/**
|
|
47587
|
-
* Float
|
|
47588
|
-
*/ AccessorComponentType[AccessorComponentType["FLOAT"] = 5126] = "FLOAT";
|
|
47589
|
-
return AccessorComponentType;
|
|
47590
|
-
}({});
|
|
47591
|
-
/**
|
|
47592
|
-
* Specifies if the attirbute is a scalar, vector, or matrix
|
|
47593
|
-
*/ var AccessorType = /*#__PURE__*/ function(AccessorType) {
|
|
47594
|
-
/**
|
|
47595
|
-
* Scalar
|
|
47596
|
-
*/ AccessorType["SCALAR"] = "SCALAR";
|
|
47597
|
-
/**
|
|
47598
|
-
* Vector2
|
|
47599
|
-
*/ AccessorType["VEC2"] = "VEC2";
|
|
47600
|
-
/**
|
|
47601
|
-
* Vector3
|
|
47602
|
-
*/ AccessorType["VEC3"] = "VEC3";
|
|
47603
|
-
/**
|
|
47604
|
-
* Vector4
|
|
47605
|
-
*/ AccessorType["VEC4"] = "VEC4";
|
|
47606
|
-
/**
|
|
47607
|
-
* Matrix2x2
|
|
47608
|
-
*/ AccessorType["MAT2"] = "MAT2";
|
|
47609
|
-
/**
|
|
47610
|
-
* Matrix3x3
|
|
47611
|
-
*/ AccessorType["MAT3"] = "MAT3";
|
|
47612
|
-
/**
|
|
47613
|
-
* Matrix4x4
|
|
47614
|
-
*/ AccessorType["MAT4"] = "MAT4";
|
|
47615
|
-
return AccessorType;
|
|
47616
|
-
}({});
|
|
47617
|
-
/**
|
|
47618
|
-
* The name of the node's TRS property to modify, or the weights of the Morph Targets it instantiates
|
|
47619
|
-
*/ var AnimationChannelTargetPath = /*#__PURE__*/ function(AnimationChannelTargetPath) {
|
|
47620
|
-
/**
|
|
47621
|
-
* Translation
|
|
47622
|
-
*/ AnimationChannelTargetPath["TRANSLATION"] = "translation";
|
|
47623
|
-
/**
|
|
47624
|
-
* Rotation
|
|
47625
|
-
*/ AnimationChannelTargetPath["ROTATION"] = "rotation";
|
|
47626
|
-
/**
|
|
47627
|
-
* Scale
|
|
47628
|
-
*/ AnimationChannelTargetPath["SCALE"] = "scale";
|
|
47629
|
-
/**
|
|
47630
|
-
* Weights
|
|
47631
|
-
*/ AnimationChannelTargetPath["WEIGHTS"] = "weights";
|
|
47632
|
-
return AnimationChannelTargetPath;
|
|
47633
|
-
}({});
|
|
47634
|
-
/**
|
|
47635
|
-
* Interpolation algorithm
|
|
47636
|
-
*/ var AnimationSamplerInterpolation = /*#__PURE__*/ function(AnimationSamplerInterpolation) {
|
|
47637
|
-
/**
|
|
47638
|
-
* The animated values are linearly interpolated between keyframes
|
|
47639
|
-
*/ AnimationSamplerInterpolation["Linear"] = "LINEAR";
|
|
47640
|
-
/**
|
|
47641
|
-
* The animated values remain constant to the output of the first keyframe, until the next keyframe
|
|
47642
|
-
*/ AnimationSamplerInterpolation["Step"] = "STEP";
|
|
47643
|
-
/**
|
|
47644
|
-
* The animation's interpolation is computed using a cubic spline with specified tangents
|
|
47645
|
-
*/ AnimationSamplerInterpolation["CubicSpine"] = "CUBICSPLINE";
|
|
47646
|
-
return AnimationSamplerInterpolation;
|
|
47647
|
-
}({});
|
|
47648
|
-
/**
|
|
47649
|
-
* A camera's projection. A node can reference a camera to apply a transform to place the camera in the scene
|
|
47650
|
-
*/ var CameraType = /*#__PURE__*/ function(CameraType) {
|
|
47651
|
-
/**
|
|
47652
|
-
* A perspective camera containing properties to create a perspective projection matrix
|
|
47653
|
-
*/ CameraType["PERSPECTIVE"] = "perspective";
|
|
47654
|
-
/**
|
|
47655
|
-
* An orthographic camera containing properties to create an orthographic projection matrix
|
|
47656
|
-
*/ CameraType["ORTHOGRAPHIC"] = "orthographic";
|
|
47657
|
-
return CameraType;
|
|
47658
|
-
}({});
|
|
47659
|
-
/**
|
|
47660
|
-
* The alpha rendering mode of the material
|
|
47661
|
-
*/ var MaterialAlphaMode = /*#__PURE__*/ function(MaterialAlphaMode) {
|
|
47662
|
-
/**
|
|
47663
|
-
* The alpha value is ignored and the rendered output is fully opaque
|
|
47664
|
-
*/ MaterialAlphaMode["OPAQUE"] = "OPAQUE";
|
|
47665
|
-
/**
|
|
47666
|
-
* The rendered output is either fully opaque or fully transparent depending on the alpha value and the specified alpha cutoff value
|
|
47667
|
-
*/ MaterialAlphaMode["MASK"] = "MASK";
|
|
47668
|
-
/**
|
|
47669
|
-
* The alpha value is used to composite the source and destination areas. The rendered output is combined with the background using the normal painting operation (i.e. the Porter and Duff over operator)
|
|
47670
|
-
*/ MaterialAlphaMode["BLEND"] = "BLEND";
|
|
47671
|
-
return MaterialAlphaMode;
|
|
47672
|
-
}({});
|
|
47673
|
-
/**
|
|
47674
|
-
* Magnification filter. Valid values correspond to WebGL enums: 9728 (NEAREST) and 9729 (LINEAR)
|
|
47675
|
-
*/ var TextureMagFilter = /*#__PURE__*/ function(TextureMagFilter) {
|
|
47676
|
-
/**
|
|
47677
|
-
* Nearest
|
|
47678
|
-
*/ TextureMagFilter[TextureMagFilter["NEAREST"] = 9728] = "NEAREST";
|
|
47679
|
-
/**
|
|
47680
|
-
* Linear
|
|
47681
|
-
*/ TextureMagFilter[TextureMagFilter["LINEAR"] = 9729] = "LINEAR";
|
|
47682
|
-
return TextureMagFilter;
|
|
47683
|
-
}({});
|
|
47684
|
-
/**
|
|
47685
|
-
* Minification filter. All valid values correspond to WebGL enums
|
|
47686
|
-
*/ var TextureMinFilter = /*#__PURE__*/ function(TextureMinFilter) {
|
|
47687
|
-
/**
|
|
47688
|
-
* Nearest
|
|
47689
|
-
*/ TextureMinFilter[TextureMinFilter["NEAREST"] = 9728] = "NEAREST";
|
|
47690
|
-
/**
|
|
47691
|
-
* Linear
|
|
47692
|
-
*/ TextureMinFilter[TextureMinFilter["LINEAR"] = 9729] = "LINEAR";
|
|
47693
|
-
/**
|
|
47694
|
-
* Nearest Mip-Map Nearest
|
|
47695
|
-
*/ TextureMinFilter[TextureMinFilter["NEAREST_MIPMAP_NEAREST"] = 9984] = "NEAREST_MIPMAP_NEAREST";
|
|
47696
|
-
/**
|
|
47697
|
-
* Linear Mipmap Nearest
|
|
47698
|
-
*/ TextureMinFilter[TextureMinFilter["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST";
|
|
47699
|
-
/**
|
|
47700
|
-
* Nearest Mipmap Linear
|
|
47701
|
-
*/ TextureMinFilter[TextureMinFilter["NEAREST_MIPMAP_LINEAR"] = 9986] = "NEAREST_MIPMAP_LINEAR";
|
|
47702
|
-
/**
|
|
47703
|
-
* Linear Mipmap Linear
|
|
47704
|
-
*/ TextureMinFilter[TextureMinFilter["LINEAR_MIPMAP_LINEAR"] = 9987] = "LINEAR_MIPMAP_LINEAR";
|
|
47705
|
-
return TextureMinFilter;
|
|
47706
|
-
}({});
|
|
47707
|
-
/**
|
|
47708
|
-
* S (U) wrapping mode. All valid values correspond to WebGL enums
|
|
47709
|
-
*/ var TextureWrapMode = /*#__PURE__*/ function(TextureWrapMode) {
|
|
47710
|
-
/**
|
|
47711
|
-
* Clamp to Edge
|
|
47712
|
-
*/ TextureWrapMode[TextureWrapMode["CLAMP_TO_EDGE"] = 33071] = "CLAMP_TO_EDGE";
|
|
47713
|
-
/**
|
|
47714
|
-
* Mirrored Repeat
|
|
47715
|
-
*/ TextureWrapMode[TextureWrapMode["MIRRORED_REPEAT"] = 33648] = "MIRRORED_REPEAT";
|
|
47716
|
-
/**
|
|
47717
|
-
* Repeat
|
|
47718
|
-
*/ TextureWrapMode[TextureWrapMode["REPEAT"] = 10497] = "REPEAT";
|
|
47719
|
-
return TextureWrapMode;
|
|
47720
|
-
}({});
|
|
47721
|
-
/**
|
|
47722
|
-
* @internal
|
|
47723
|
-
*/ var GLTFParserContext = /*#__PURE__*/ function() {
|
|
47724
|
-
function GLTFParserContext(glTFResource, resourceManager, params) {
|
|
47725
|
-
var _this = this;
|
|
47726
|
-
this.glTFResource = glTFResource;
|
|
47727
|
-
this.resourceManager = resourceManager;
|
|
47728
|
-
this.params = params;
|
|
47729
|
-
this.accessorBufferCache = {};
|
|
47730
|
-
this.needAnimatorController = false;
|
|
47731
|
-
this./** @internal */ _getPromises = [];
|
|
47732
|
-
this._resourceCache = new Map();
|
|
47733
|
-
this._progress = {
|
|
47734
|
-
taskDetail: {},
|
|
47735
|
-
taskComplete: {
|
|
47736
|
-
loaded: 0,
|
|
47737
|
-
total: 0
|
|
47738
|
-
}
|
|
47739
|
-
};
|
|
47740
|
-
this./**
|
|
47741
|
-
* @internal
|
|
47742
|
-
*/ _onTaskDetail = function(url, loaded, total) {
|
|
47743
|
-
var _this__progress_taskDetail, _url;
|
|
47744
|
-
var detail = (_this__progress_taskDetail = _this._progress.taskDetail)[_url = url] || (_this__progress_taskDetail[_url] = {});
|
|
47745
|
-
detail.loaded = loaded;
|
|
47746
|
-
detail.total = total;
|
|
47747
|
-
_this._setTaskDetailProgress(url, loaded, total);
|
|
47748
|
-
};
|
|
47749
|
-
this.contentRestorer = new GLTFContentRestorer(glTFResource);
|
|
47750
47570
|
}
|
|
47751
|
-
|
|
47752
|
-
|
|
47753
|
-
var
|
|
47754
|
-
var
|
|
47755
|
-
|
|
47756
|
-
return AssetPromise.resolve(null);
|
|
47571
|
+
function concat(arrays) {
|
|
47572
|
+
if (arrays.length === 1) return arrays[0];
|
|
47573
|
+
var totalByteLength = 0;
|
|
47574
|
+
for(var i = 0; i < arrays.length; i++){
|
|
47575
|
+
totalByteLength += arrays[i].byteLength;
|
|
47757
47576
|
}
|
|
47758
|
-
var
|
|
47759
|
-
var
|
|
47760
|
-
var
|
|
47761
|
-
|
|
47762
|
-
|
|
47577
|
+
var result = new Uint8Array(totalByteLength);
|
|
47578
|
+
var byteOffset = 0;
|
|
47579
|
+
for(var i1 = 0; i1 < arrays.length; i1++){
|
|
47580
|
+
result.set(arrays[i1], byteOffset);
|
|
47581
|
+
byteOffset += arrays[i1].byteLength;
|
|
47763
47582
|
}
|
|
47764
|
-
|
|
47765
|
-
|
|
47766
|
-
|
|
47767
|
-
|
|
47768
|
-
|
|
47769
|
-
|
|
47770
|
-
|
|
47771
|
-
|
|
47772
|
-
|
|
47773
|
-
|
|
47774
|
-
|
|
47583
|
+
return result;
|
|
47584
|
+
}
|
|
47585
|
+
var ktx2File = new KTX2File(new Uint8Array(buffer));
|
|
47586
|
+
function cleanup() {
|
|
47587
|
+
ktx2File.close();
|
|
47588
|
+
ktx2File.delete();
|
|
47589
|
+
}
|
|
47590
|
+
if (!ktx2File.isValid()) {
|
|
47591
|
+
cleanup();
|
|
47592
|
+
throw new Error("Invalid or unsupported .ktx2 file");
|
|
47593
|
+
}
|
|
47594
|
+
if (!ktx2File.startTranscoding()) {
|
|
47595
|
+
cleanup();
|
|
47596
|
+
throw new Error("KTX2 startTranscoding failed");
|
|
47597
|
+
}
|
|
47598
|
+
var width = ktx2File.getWidth();
|
|
47599
|
+
var height = ktx2File.getHeight();
|
|
47600
|
+
var layerCount = ktx2File.getLayers() || 1;
|
|
47601
|
+
var levelCount = ktx2File.getLevels();
|
|
47602
|
+
var hasAlpha = ktx2File.getHasAlpha();
|
|
47603
|
+
var faceCount = ktx2File.getFaces();
|
|
47604
|
+
var format = getTranscodeFormatFromTarget(targetFormat, hasAlpha);
|
|
47605
|
+
var faces = new Array(faceCount);
|
|
47606
|
+
var isBC = format === 2 || format === 3 || format === 7;
|
|
47607
|
+
for(var face = 0; face < faceCount; face++){
|
|
47608
|
+
var mipmaps = new Array(levelCount);
|
|
47609
|
+
for(var mip = 0; mip < levelCount; mip++){
|
|
47610
|
+
var layerMips = new Array(layerCount);
|
|
47611
|
+
var mipWidth = void 0, mipHeight = void 0;
|
|
47612
|
+
for(var layer = 0; layer < layerCount; layer++){
|
|
47613
|
+
var levelInfo = ktx2File.getImageLevelInfo(mip, layer, face);
|
|
47614
|
+
// see: https://github.com/KhronosGroup/KTX-Software/issues/254
|
|
47615
|
+
if (isBC && mip === 0 && (width !== levelInfo.width || height !== levelInfo.height)) {
|
|
47616
|
+
width = mipWidth = levelInfo.width;
|
|
47617
|
+
height = mipHeight = levelInfo.height;
|
|
47618
|
+
console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
|
|
47775
47619
|
} else {
|
|
47776
|
-
|
|
47777
|
-
|
|
47620
|
+
mipWidth = levelInfo.origWidth;
|
|
47621
|
+
mipHeight = levelInfo.origHeight;
|
|
47778
47622
|
}
|
|
47779
|
-
|
|
47780
|
-
|
|
47623
|
+
var dst = new Uint8Array(ktx2File.getImageTranscodedSizeInBytes(mip, layer, 0, format));
|
|
47624
|
+
var status = ktx2File.transcodeImage(dst, mip, layer, face, format, 0, -1, -1);
|
|
47625
|
+
if (targetFormat === 10) {
|
|
47626
|
+
dst = new Uint16Array(dst.buffer, dst.byteOffset, dst.byteLength / Uint16Array.BYTES_PER_ELEMENT);
|
|
47627
|
+
}
|
|
47628
|
+
if (!status) {
|
|
47629
|
+
cleanup();
|
|
47630
|
+
throw new Error("transcodeImage failed.");
|
|
47631
|
+
}
|
|
47632
|
+
layerMips[layer] = dst;
|
|
47781
47633
|
}
|
|
47782
|
-
|
|
47783
|
-
|
|
47784
|
-
|
|
47785
|
-
|
|
47786
|
-
|
|
47787
|
-
this._getPromises.push(resource);
|
|
47634
|
+
mipmaps[mip] = {
|
|
47635
|
+
data: concat(layerMips),
|
|
47636
|
+
width: mipWidth,
|
|
47637
|
+
height: mipHeight
|
|
47638
|
+
};
|
|
47788
47639
|
}
|
|
47789
|
-
|
|
47790
|
-
|
|
47791
|
-
|
|
47792
|
-
|
|
47793
|
-
|
|
47794
|
-
|
|
47795
|
-
|
|
47796
|
-
|
|
47797
|
-
|
|
47798
|
-
|
|
47799
|
-
_this.get(5),
|
|
47800
|
-
_this.get(6),
|
|
47801
|
-
_this.get(7),
|
|
47802
|
-
_this.get(9),
|
|
47803
|
-
_this.get(10),
|
|
47804
|
-
_this.get(11),
|
|
47805
|
-
_this.get(2)
|
|
47806
|
-
]).then(function() {
|
|
47807
|
-
var glTFResource = _this.glTFResource;
|
|
47808
|
-
var animatorController = glTFResource.animatorController;
|
|
47809
|
-
if (animatorController) {
|
|
47810
|
-
var animator = glTFResource._defaultSceneRoot.addComponent(Animator);
|
|
47811
|
-
animator.animatorController = animatorController;
|
|
47812
|
-
}
|
|
47813
|
-
_this.resourceManager.addContentRestorer(_this.contentRestorer);
|
|
47814
|
-
return glTFResource;
|
|
47815
|
-
});
|
|
47816
|
-
});
|
|
47817
|
-
this._addTaskCompletePromise(promise);
|
|
47818
|
-
return promise;
|
|
47640
|
+
faces[face] = mipmaps;
|
|
47641
|
+
}
|
|
47642
|
+
cleanup();
|
|
47643
|
+
return {
|
|
47644
|
+
faces: faces,
|
|
47645
|
+
width: width,
|
|
47646
|
+
height: height,
|
|
47647
|
+
hasAlpha: hasAlpha,
|
|
47648
|
+
faceCount: faceCount,
|
|
47649
|
+
format: format
|
|
47819
47650
|
};
|
|
47820
|
-
|
|
47821
|
-
|
|
47822
|
-
|
|
47651
|
+
}
|
|
47652
|
+
/** @internal */ var BinomialLLCTranscoder = /*#__PURE__*/ function(AbstractTranscoder) {
|
|
47653
|
+
_inherits(BinomialLLCTranscoder, AbstractTranscoder);
|
|
47654
|
+
function BinomialLLCTranscoder(workerLimitCount) {
|
|
47655
|
+
return AbstractTranscoder.call(this, workerLimitCount) || this;
|
|
47656
|
+
}
|
|
47657
|
+
var _proto = BinomialLLCTranscoder.prototype;
|
|
47658
|
+
_proto._initTranscodeWorkerPool = function _initTranscodeWorkerPool() {
|
|
47823
47659
|
var _this = this;
|
|
47824
|
-
|
|
47825
|
-
|
|
47826
|
-
|
|
47827
|
-
|
|
47828
|
-
|
|
47829
|
-
|
|
47660
|
+
return Promise.all([
|
|
47661
|
+
fetch("https://mdn.alipayobjects.com/rms/afts/file/A*J8IrSL8WE8EAAAAAQ6AAAAgAehQnAQ/basis_transcoder.js").then(function(res) {
|
|
47662
|
+
return res.text();
|
|
47663
|
+
}),
|
|
47664
|
+
fetch("https://mdn.alipayobjects.com/rms/afts/file/A*F3duSLqOP2sAAAAAXjAAAAgAehQnAQ/basis_transcoder.wasm").then(function(res) {
|
|
47665
|
+
return res.arrayBuffer();
|
|
47666
|
+
})
|
|
47667
|
+
]).then(function(param) {
|
|
47668
|
+
var jsCode = param[0], wasmBuffer = param[1];
|
|
47669
|
+
if (_this.workerLimitCount === 0) {
|
|
47670
|
+
return new Promise(function(resolve, reject) {
|
|
47671
|
+
var scriptDom = document.createElement("script");
|
|
47672
|
+
scriptDom.src = URL.createObjectURL(new Blob([
|
|
47673
|
+
jsCode
|
|
47674
|
+
], {
|
|
47675
|
+
type: "application/javascript"
|
|
47676
|
+
}));
|
|
47677
|
+
document.body.appendChild(scriptDom);
|
|
47678
|
+
scriptDom.onload = function() {
|
|
47679
|
+
init(wasmBuffer).then(function() {
|
|
47680
|
+
resolve(null);
|
|
47681
|
+
});
|
|
47682
|
+
};
|
|
47683
|
+
scriptDom.onerror = function() {
|
|
47684
|
+
reject();
|
|
47685
|
+
};
|
|
47686
|
+
});
|
|
47687
|
+
} else {
|
|
47688
|
+
var funcCode = TranscodeWorkerCode.toString();
|
|
47689
|
+
var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
|
|
47690
|
+
var workerCode = "\n " + jsCode + "\n " + transcode.toString() + "\n " + transcodeString + "\n ";
|
|
47691
|
+
var workerURL = URL.createObjectURL(new Blob([
|
|
47692
|
+
workerCode
|
|
47693
|
+
], {
|
|
47694
|
+
type: "application/javascript"
|
|
47695
|
+
}));
|
|
47696
|
+
return _this._createTranscodePool(workerURL, wasmBuffer);
|
|
47697
|
+
}
|
|
47830
47698
|
});
|
|
47831
47699
|
};
|
|
47832
|
-
_proto.
|
|
47833
|
-
|
|
47834
|
-
|
|
47835
|
-
|
|
47836
|
-
|
|
47837
|
-
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
47700
|
+
_proto.transcode = function transcode1(buffer, format) {
|
|
47701
|
+
if (this.workerLimitCount === 0) {
|
|
47702
|
+
return init().then(function(KTX2File) {
|
|
47703
|
+
return transcode(buffer, format, KTX2File);
|
|
47704
|
+
});
|
|
47838
47705
|
} else {
|
|
47839
|
-
|
|
47840
|
-
|
|
47841
|
-
|
|
47842
|
-
|
|
47843
|
-
} else {
|
|
47844
|
-
var _this_glTFResource, _glTFResourceKey;
|
|
47845
|
-
((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
|
|
47846
|
-
}
|
|
47847
|
-
if (type === 7) {
|
|
47848
|
-
for(var i = 0, length = item.length; i < length; i++){
|
|
47849
|
-
var mesh = item[i];
|
|
47850
|
-
// @ts-ignore
|
|
47851
|
-
_this.resourceManager._onSubAssetSuccess(url, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
|
|
47852
|
-
}
|
|
47853
|
-
} else {
|
|
47854
|
-
// @ts-ignore
|
|
47855
|
-
_this.resourceManager._onSubAssetSuccess(url, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
|
|
47856
|
-
var _this_glTF_scene;
|
|
47857
|
-
if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
|
|
47858
|
-
// @ts-ignore
|
|
47859
|
-
_this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
|
|
47860
|
-
}
|
|
47861
|
-
}
|
|
47862
|
-
}).catch(function(e) {
|
|
47863
|
-
Logger.error("GLTFParserContext", "Failed to load " + glTFResourceKey + " " + index + ": " + e);
|
|
47706
|
+
return this._transcodeWorkerPool.postMessage({
|
|
47707
|
+
buffer: buffer,
|
|
47708
|
+
format: format,
|
|
47709
|
+
type: "transcode"
|
|
47864
47710
|
});
|
|
47865
47711
|
}
|
|
47866
47712
|
};
|
|
47867
|
-
|
|
47868
|
-
|
|
47869
|
-
|
|
47870
|
-
|
|
47871
|
-
|
|
47872
|
-
|
|
47873
|
-
|
|
47874
|
-
|
|
47875
|
-
|
|
47876
|
-
|
|
47877
|
-
|
|
47878
|
-
|
|
47879
|
-
|
|
47880
|
-
|
|
47881
|
-
|
|
47882
|
-
|
|
47883
|
-
GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
|
|
47884
|
-
GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
|
|
47885
|
-
GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
|
|
47886
|
-
GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
|
|
47887
|
-
GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
|
|
47888
|
-
GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
|
|
47889
|
-
GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
|
|
47890
|
-
GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
|
|
47891
|
-
GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
|
|
47892
|
-
GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
|
|
47893
|
-
GLTFParserType[GLTFParserType["AnimatorController"] = 11] = "AnimatorController";
|
|
47894
|
-
return GLTFParserType;
|
|
47895
|
-
}({});
|
|
47896
|
-
var _obj$2;
|
|
47897
|
-
var glTFSchemaMap = (_obj$2 = {}, _obj$2[2] = "scenes", _obj$2[3] = "buffers", _obj$2[5] = "textures", _obj$2[6] = "materials", _obj$2[7] = "meshes", _obj$2[8] = "nodes", _obj$2[9] = "skins", _obj$2[10] = "animations", _obj$2[4] = "bufferViews", _obj$2);
|
|
47898
|
-
var _obj1$1;
|
|
47899
|
-
var glTFResourceMap = (_obj1$1 = {}, _obj1$1[2] = "_sceneRoots", _obj1$1[5] = "textures", _obj1$1[6] = "materials", _obj1$1[7] = "meshes", _obj1$1[8] = "entities", _obj1$1[9] = "skins", _obj1$1[10] = "animations", _obj1$1[11] = "animatorController", _obj1$1);
|
|
47900
|
-
function registerGLTFParser(pipeline) {
|
|
47901
|
-
return function(Parser) {
|
|
47902
|
-
var parser = new Parser();
|
|
47903
|
-
GLTFParserContext.addParser(pipeline, parser);
|
|
47904
|
-
};
|
|
47905
|
-
}
|
|
47906
|
-
/**
|
|
47907
|
-
* @internal
|
|
47908
|
-
*/ var GLTFUtils = /*#__PURE__*/ function() {
|
|
47909
|
-
function GLTFUtils() {}
|
|
47910
|
-
GLTFUtils.floatBufferToVector2Array = function floatBufferToVector2Array(buffer) {
|
|
47911
|
-
var bufferLen = buffer.length;
|
|
47912
|
-
var array = new Array(bufferLen / 2);
|
|
47913
|
-
for(var i = 0; i < bufferLen; i += 2){
|
|
47914
|
-
array[i / 2] = new Vector2(buffer[i], buffer[i + 1]);
|
|
47713
|
+
return BinomialLLCTranscoder;
|
|
47714
|
+
}(AbstractTranscoder);
|
|
47715
|
+
exports.KTX2Loader = /*#__PURE__*/ function(Loader) {
|
|
47716
|
+
_inherits(KTX2Loader, Loader);
|
|
47717
|
+
function KTX2Loader() {
|
|
47718
|
+
return Loader.apply(this, arguments) || this;
|
|
47719
|
+
}
|
|
47720
|
+
var _proto = KTX2Loader.prototype;
|
|
47721
|
+
_proto.initialize = function initialize(_, configuration) {
|
|
47722
|
+
if (configuration.ktx2Loader) {
|
|
47723
|
+
var options = configuration.ktx2Loader;
|
|
47724
|
+
if (options.priorityFormats) {
|
|
47725
|
+
KTX2Loader._priorityFormats["etc1s"] = options.priorityFormats;
|
|
47726
|
+
KTX2Loader._priorityFormats["uastc"] = options.priorityFormats;
|
|
47727
|
+
}
|
|
47728
|
+
return KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();
|
|
47915
47729
|
}
|
|
47916
|
-
return array;
|
|
47917
47730
|
};
|
|
47918
|
-
|
|
47919
|
-
|
|
47920
|
-
|
|
47921
|
-
|
|
47922
|
-
|
|
47923
|
-
|
|
47924
|
-
|
|
47731
|
+
/**
|
|
47732
|
+
* @internal
|
|
47733
|
+
*/ _proto.load = function load(item, resourceManager) {
|
|
47734
|
+
return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
|
|
47735
|
+
var requestConfig = _extends({}, item, {
|
|
47736
|
+
type: "arraybuffer"
|
|
47737
|
+
});
|
|
47738
|
+
var url = item.url;
|
|
47739
|
+
resourceManager // @ts-ignore
|
|
47740
|
+
._request(url, requestConfig).onProgress(setTaskCompleteProgress, setTaskDetailProgress).then(function(buffer) {
|
|
47741
|
+
return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
47742
|
+
var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
47743
|
+
return KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params);
|
|
47744
|
+
}).then(function(texture) {
|
|
47745
|
+
resourceManager.addContentRestorer(new KTX2ContentRestorer(texture, url, requestConfig));
|
|
47746
|
+
resolve(texture);
|
|
47747
|
+
});
|
|
47748
|
+
}).catch(reject);
|
|
47749
|
+
});
|
|
47750
|
+
};
|
|
47751
|
+
/**
|
|
47752
|
+
* Release ktx2 transcoder worker.
|
|
47753
|
+
* @remarks If use loader after releasing, we should release again.
|
|
47754
|
+
*/ KTX2Loader.release = function release() {
|
|
47755
|
+
if (this._binomialLLCTranscoder) this._binomialLLCTranscoder.destroy();
|
|
47756
|
+
this._binomialLLCTranscoder = null;
|
|
47925
47757
|
};
|
|
47926
|
-
|
|
47927
|
-
var
|
|
47928
|
-
var
|
|
47929
|
-
|
|
47930
|
-
|
|
47931
|
-
|
|
47932
|
-
return
|
|
47758
|
+
/** @internal */ KTX2Loader._parseBuffer = function _parseBuffer(buffer, engine, params) {
|
|
47759
|
+
var ktx2Container = new KTX2Container(buffer);
|
|
47760
|
+
var _params_priorityFormats;
|
|
47761
|
+
var formatPriorities = (_params_priorityFormats = params == null ? void 0 : params.priorityFormats) != null ? _params_priorityFormats : KTX2Loader._priorityFormats[ktx2Container.colorModel];
|
|
47762
|
+
var targetFormat = KTX2Loader._decideTargetFormat(engine, ktx2Container, formatPriorities);
|
|
47763
|
+
var binomialLLCWorker = KTX2Loader._getBinomialLLCTranscoder();
|
|
47764
|
+
return binomialLLCWorker.init().then(function() {
|
|
47765
|
+
return binomialLLCWorker.transcode(buffer, targetFormat);
|
|
47766
|
+
}).then(function(result) {
|
|
47767
|
+
return {
|
|
47768
|
+
ktx2Container: ktx2Container,
|
|
47769
|
+
engine: engine,
|
|
47770
|
+
result: result,
|
|
47771
|
+
targetFormat: targetFormat,
|
|
47772
|
+
params: ktx2Container.keyValue["GalaceanTextureParams"]
|
|
47773
|
+
};
|
|
47774
|
+
});
|
|
47933
47775
|
};
|
|
47934
|
-
|
|
47935
|
-
var
|
|
47936
|
-
var
|
|
47937
|
-
|
|
47938
|
-
|
|
47939
|
-
|
|
47776
|
+
/** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params, restoredTexture) {
|
|
47777
|
+
var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
|
|
47778
|
+
var faceCount = faces.length;
|
|
47779
|
+
var mipmaps = faces[0];
|
|
47780
|
+
var mipmap = mipmaps.length > 1;
|
|
47781
|
+
var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
|
|
47782
|
+
var texture;
|
|
47783
|
+
if (faceCount !== 6) {
|
|
47784
|
+
texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
|
|
47785
|
+
for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
|
|
47786
|
+
var data = mipmaps[mipLevel].data;
|
|
47787
|
+
texture.setPixelBuffer(data, mipLevel);
|
|
47940
47788
|
}
|
|
47941
47789
|
} else {
|
|
47942
|
-
|
|
47943
|
-
|
|
47790
|
+
texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap, isSRGB);
|
|
47791
|
+
for(var i = 0; i < faces.length; i++){
|
|
47792
|
+
var faceData = faces[i];
|
|
47793
|
+
for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
|
|
47794
|
+
texture.setPixelBuffer(TextureCubeFace.PositiveX + i, faceData[mipLevel1].data, mipLevel1);
|
|
47795
|
+
}
|
|
47944
47796
|
}
|
|
47945
47797
|
}
|
|
47946
|
-
|
|
47947
|
-
|
|
47948
|
-
|
|
47949
|
-
|
|
47950
|
-
|
|
47951
|
-
switch(accessorType){
|
|
47952
|
-
case AccessorType.SCALAR:
|
|
47953
|
-
return 1;
|
|
47954
|
-
case AccessorType.VEC2:
|
|
47955
|
-
return 2;
|
|
47956
|
-
case AccessorType.VEC3:
|
|
47957
|
-
return 3;
|
|
47958
|
-
case AccessorType.VEC4:
|
|
47959
|
-
return 4;
|
|
47960
|
-
case AccessorType.MAT2:
|
|
47961
|
-
return 4;
|
|
47962
|
-
case AccessorType.MAT3:
|
|
47963
|
-
return 9;
|
|
47964
|
-
case AccessorType.MAT4:
|
|
47965
|
-
return 16;
|
|
47798
|
+
if (params) {
|
|
47799
|
+
texture.wrapModeU = params[0];
|
|
47800
|
+
texture.wrapModeV = params[1];
|
|
47801
|
+
texture.filterMode = params[2];
|
|
47802
|
+
texture.anisoLevel = params[3];
|
|
47966
47803
|
}
|
|
47804
|
+
return texture;
|
|
47967
47805
|
};
|
|
47968
|
-
|
|
47969
|
-
|
|
47970
|
-
|
|
47971
|
-
|
|
47972
|
-
|
|
47973
|
-
|
|
47974
|
-
|
|
47975
|
-
return Uint8Array;
|
|
47976
|
-
case AccessorComponentType.SHORT:
|
|
47977
|
-
return Int16Array;
|
|
47978
|
-
case AccessorComponentType.UNSIGNED_SHORT:
|
|
47979
|
-
return Uint16Array;
|
|
47980
|
-
case AccessorComponentType.UNSIGNED_INT:
|
|
47981
|
-
return Uint32Array;
|
|
47982
|
-
case AccessorComponentType.FLOAT:
|
|
47983
|
-
return Float32Array;
|
|
47806
|
+
KTX2Loader._decideTargetFormat = function _decideTargetFormat(engine, ktx2Container, priorityFormats) {
|
|
47807
|
+
var renderer = engine._hardwareRenderer;
|
|
47808
|
+
var isSRGB = ktx2Container.isSRGB, pixelWidth = ktx2Container.pixelWidth, pixelHeight = ktx2Container.pixelHeight;
|
|
47809
|
+
var targetFormat = this._detectSupportedFormat(renderer, priorityFormats, isSRGB);
|
|
47810
|
+
if (targetFormat === KTX2TargetFormat.PVRTC && (!MathUtil.isPowerOf2(pixelWidth) || !MathUtil.isPowerOf2(pixelHeight) || pixelWidth !== pixelHeight)) {
|
|
47811
|
+
Logger.warn("PVRTC image need power of 2 and width===height, downgrade to RGBA8");
|
|
47812
|
+
return KTX2TargetFormat.R8G8B8A8;
|
|
47984
47813
|
}
|
|
47985
|
-
|
|
47986
|
-
|
|
47987
|
-
|
|
47988
|
-
switch(componentType){
|
|
47989
|
-
case AccessorComponentType.BYTE:
|
|
47990
|
-
return 1 / 127;
|
|
47991
|
-
case AccessorComponentType.UNSIGNED_BYTE:
|
|
47992
|
-
return 1 / 255;
|
|
47993
|
-
case AccessorComponentType.SHORT:
|
|
47994
|
-
return 1 / 32767;
|
|
47995
|
-
case AccessorComponentType.UNSIGNED_SHORT:
|
|
47996
|
-
return 1 / 65535;
|
|
47997
|
-
default:
|
|
47998
|
-
throw new Error("Galacean.GLTFLoader: Unsupported normalized accessor component type.");
|
|
47814
|
+
if (targetFormat === null) {
|
|
47815
|
+
Logger.warn("Can't support any compressed texture, downgrade to RGBA8");
|
|
47816
|
+
return KTX2TargetFormat.R8G8B8A8;
|
|
47999
47817
|
}
|
|
47818
|
+
return targetFormat;
|
|
48000
47819
|
};
|
|
48001
|
-
|
|
48002
|
-
var
|
|
48003
|
-
|
|
48004
|
-
|
|
48005
|
-
|
|
48006
|
-
|
|
48007
|
-
|
|
48008
|
-
|
|
48009
|
-
|
|
48010
|
-
var bufferViewIndex = accessor.bufferView;
|
|
48011
|
-
var bufferView = bufferViews[bufferViewIndex];
|
|
48012
|
-
promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
48013
|
-
var bufferIndex = bufferView.buffer;
|
|
48014
|
-
var _bufferViewData_byteOffset;
|
|
48015
|
-
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
48016
|
-
var _accessor_byteOffset;
|
|
48017
|
-
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
48018
|
-
var bufferStride = bufferView.byteStride;
|
|
48019
|
-
var bufferInfo;
|
|
48020
|
-
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
48021
|
-
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
48022
|
-
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
48023
|
-
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
48024
|
-
var accessorBufferCache = context.accessorBufferCache;
|
|
48025
|
-
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
48026
|
-
if (!bufferInfo) {
|
|
48027
|
-
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
48028
|
-
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
48029
|
-
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
48030
|
-
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
48031
|
-
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
47820
|
+
KTX2Loader._detectSupportedFormat = function _detectSupportedFormat(renderer, priorityFormats, isSRGB) {
|
|
47821
|
+
for(var i = 0; i < priorityFormats.length; i++){
|
|
47822
|
+
var _this__capabilityMap_format;
|
|
47823
|
+
var format = priorityFormats[i];
|
|
47824
|
+
var capabilities = (_this__capabilityMap_format = this._capabilityMap[format]) == null ? void 0 : _this__capabilityMap_format[isSRGB ? DFDTransferFunction.sRGB : DFDTransferFunction.linear];
|
|
47825
|
+
if (capabilities) {
|
|
47826
|
+
for(var j = 0; j < capabilities.length; j++){
|
|
47827
|
+
if (renderer.canIUse(capabilities[j])) {
|
|
47828
|
+
return format;
|
|
48032
47829
|
}
|
|
48033
|
-
} else {
|
|
48034
|
-
var offset1 = bufferByteOffset + byteOffset;
|
|
48035
|
-
var count1 = accessorCount * dataElementSize;
|
|
48036
|
-
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
48037
|
-
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
48038
|
-
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
48039
47830
|
}
|
|
48040
|
-
|
|
48041
|
-
|
|
48042
|
-
|
|
48043
|
-
|
|
48044
|
-
|
|
48045
|
-
|
|
48046
|
-
|
|
48047
|
-
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
48048
|
-
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
48049
|
-
promise = AssetPromise.resolve(bufferInfo);
|
|
48050
|
-
}
|
|
48051
|
-
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
48052
|
-
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
48053
|
-
return bufferInfo;
|
|
48054
|
-
});
|
|
48055
|
-
}) : promise;
|
|
48056
|
-
};
|
|
48057
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
48058
|
-
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
48059
|
-
var stride = buffer.length / count;
|
|
48060
|
-
var vertices = new Array(count);
|
|
48061
|
-
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
48062
|
-
for(var i = 0; i < count; i++){
|
|
48063
|
-
var index = baseOffset + i * stride;
|
|
48064
|
-
vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
48065
|
-
}
|
|
48066
|
-
return vertices;
|
|
48067
|
-
};
|
|
48068
|
-
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
48069
|
-
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
48070
|
-
var arrayBuffer = buffers[bufferView.buffer];
|
|
48071
|
-
return arrayBuffer.slice(byteOffset, byteOffset + bufferView.byteLength);
|
|
48072
|
-
};
|
|
48073
|
-
/**
|
|
48074
|
-
* Get accessor data.
|
|
48075
|
-
*/ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
|
|
48076
|
-
var restoreInfo = bufferInfo.restoreInfo;
|
|
48077
|
-
var bufferViews = context.glTF.bufferViews;
|
|
48078
|
-
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
48079
|
-
var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
|
|
48080
|
-
var data = bufferInfo.data.slice();
|
|
48081
|
-
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
48082
|
-
var indicesBufferView = bufferViews[indices.bufferView];
|
|
48083
|
-
var valuesBufferView = bufferViews[values.bufferView];
|
|
48084
|
-
return AssetPromise.all([
|
|
48085
|
-
context.get(GLTFParserType.BufferView, indices.bufferView),
|
|
48086
|
-
context.get(GLTFParserType.BufferView, values.bufferView)
|
|
48087
|
-
]).then(function(param) {
|
|
48088
|
-
var indicesUint8Array = param[0], valuesUin8Array = param[1];
|
|
48089
|
-
var _indices_byteOffset, _indicesUint8Array_byteOffset;
|
|
48090
|
-
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
|
|
48091
|
-
var indicesByteLength = indicesUint8Array.byteLength;
|
|
48092
|
-
var _values_byteOffset, _valuesUin8Array_byteOffset;
|
|
48093
|
-
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
|
|
48094
|
-
var valuesByteLength = valuesUin8Array.byteLength;
|
|
48095
|
-
restoreInfo.typeSize = accessorTypeSize;
|
|
48096
|
-
restoreInfo.sparseCount = count;
|
|
48097
|
-
var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
|
|
48098
|
-
var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
|
|
48099
|
-
var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
|
|
48100
|
-
restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
|
|
48101
|
-
var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
|
|
48102
|
-
var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
|
|
48103
|
-
restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
|
|
48104
|
-
for(var i = 0; i < count; i++){
|
|
48105
|
-
var replaceIndex = indicesArray[i];
|
|
48106
|
-
for(var j = 0; j < accessorTypeSize; j++){
|
|
48107
|
-
data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
|
|
47831
|
+
} else {
|
|
47832
|
+
switch(priorityFormats[i]){
|
|
47833
|
+
case KTX2TargetFormat.R8G8B8A8:
|
|
47834
|
+
return format;
|
|
47835
|
+
case KTX2TargetFormat.R8:
|
|
47836
|
+
case KTX2TargetFormat.R8G8:
|
|
47837
|
+
if (renderer.isWebGL2) return format;
|
|
48108
47838
|
}
|
|
48109
47839
|
}
|
|
48110
|
-
bufferInfo.data = data;
|
|
48111
|
-
}).catch(function(e) {
|
|
48112
|
-
Logger.error("GLTFUtil processingSparseData error", e);
|
|
48113
|
-
});
|
|
48114
|
-
};
|
|
48115
|
-
GLTFUtils.getIndexFormat = function getIndexFormat(type) {
|
|
48116
|
-
switch(type){
|
|
48117
|
-
case AccessorComponentType.UNSIGNED_BYTE:
|
|
48118
|
-
return IndexFormat.UInt8;
|
|
48119
|
-
case AccessorComponentType.UNSIGNED_SHORT:
|
|
48120
|
-
return IndexFormat.UInt16;
|
|
48121
|
-
case AccessorComponentType.UNSIGNED_INT:
|
|
48122
|
-
return IndexFormat.UInt32;
|
|
48123
47840
|
}
|
|
47841
|
+
return null;
|
|
48124
47842
|
};
|
|
48125
|
-
|
|
48126
|
-
if (
|
|
48127
|
-
|
|
48128
|
-
|
|
48129
|
-
|
|
48130
|
-
|
|
48131
|
-
|
|
48132
|
-
|
|
48133
|
-
|
|
48134
|
-
|
|
48135
|
-
|
|
48136
|
-
|
|
48137
|
-
|
|
48138
|
-
|
|
48139
|
-
|
|
48140
|
-
|
|
48141
|
-
|
|
48142
|
-
|
|
48143
|
-
|
|
48144
|
-
|
|
48145
|
-
|
|
48146
|
-
|
|
47843
|
+
KTX2Loader._getBinomialLLCTranscoder = function _getBinomialLLCTranscoder(workerCount) {
|
|
47844
|
+
if (workerCount === void 0) workerCount = 4;
|
|
47845
|
+
var _this__binomialLLCTranscoder;
|
|
47846
|
+
return (_this__binomialLLCTranscoder = this._binomialLLCTranscoder) != null ? _this__binomialLLCTranscoder : this._binomialLLCTranscoder = new BinomialLLCTranscoder(workerCount);
|
|
47847
|
+
};
|
|
47848
|
+
KTX2Loader._getEngineTextureFormat = function _getEngineTextureFormat(basisFormat, transcodeResult) {
|
|
47849
|
+
var hasAlpha = transcodeResult.hasAlpha;
|
|
47850
|
+
switch(basisFormat){
|
|
47851
|
+
case KTX2TargetFormat.ASTC:
|
|
47852
|
+
return TextureFormat.ASTC_4x4;
|
|
47853
|
+
case KTX2TargetFormat.ETC:
|
|
47854
|
+
return hasAlpha ? TextureFormat.ETC2_RGBA8 : TextureFormat.ETC2_RGB;
|
|
47855
|
+
case KTX2TargetFormat.BC7:
|
|
47856
|
+
return TextureFormat.BC7;
|
|
47857
|
+
case KTX2TargetFormat.BC1_BC3:
|
|
47858
|
+
return hasAlpha ? TextureFormat.BC3 : TextureFormat.BC1;
|
|
47859
|
+
case KTX2TargetFormat.PVRTC:
|
|
47860
|
+
return hasAlpha ? TextureFormat.PVRTC_RGBA4 : TextureFormat.PVRTC_RGB4;
|
|
47861
|
+
case KTX2TargetFormat.R8G8B8A8:
|
|
47862
|
+
return TextureFormat.R8G8B8A8;
|
|
47863
|
+
case KTX2TargetFormat.BC6H:
|
|
47864
|
+
return TextureFormat.BC6H;
|
|
47865
|
+
case KTX2TargetFormat.ASTC_HDR_4x4:
|
|
47866
|
+
return TextureFormat.ASTC_4x4;
|
|
47867
|
+
case KTX2TargetFormat.R16G16B16A16:
|
|
47868
|
+
return TextureFormat.R16G16B16A16;
|
|
48147
47869
|
}
|
|
48148
|
-
|
|
48149
|
-
|
|
48150
|
-
|
|
48151
|
-
|
|
48152
|
-
|
|
48153
|
-
|
|
48154
|
-
|
|
47870
|
+
};
|
|
47871
|
+
return KTX2Loader;
|
|
47872
|
+
}(Loader);
|
|
47873
|
+
var _obj$2;
|
|
47874
|
+
exports.KTX2Loader._priorityFormats = (_obj$2 = {}, _obj$2[ColorModel.ETC1S] = [
|
|
47875
|
+
KTX2TargetFormat.ETC,
|
|
47876
|
+
KTX2TargetFormat.BC7,
|
|
47877
|
+
KTX2TargetFormat.ASTC,
|
|
47878
|
+
KTX2TargetFormat.BC1_BC3,
|
|
47879
|
+
KTX2TargetFormat.PVRTC
|
|
47880
|
+
], _obj$2[ColorModel.UASTC_LDR_4X4] = [
|
|
47881
|
+
KTX2TargetFormat.ASTC,
|
|
47882
|
+
KTX2TargetFormat.BC7,
|
|
47883
|
+
KTX2TargetFormat.ETC,
|
|
47884
|
+
KTX2TargetFormat.BC1_BC3,
|
|
47885
|
+
KTX2TargetFormat.PVRTC
|
|
47886
|
+
], _obj$2[ColorModel.UASTC_HDR_4X4] = [
|
|
47887
|
+
KTX2TargetFormat.ASTC_HDR_4x4,
|
|
47888
|
+
KTX2TargetFormat.BC6H,
|
|
47889
|
+
KTX2TargetFormat.R16G16B16A16
|
|
47890
|
+
], _obj$2);
|
|
47891
|
+
var _obj1$1, _obj2, _obj3, _obj4, _obj5, _obj6, _obj7, _obj8, _obj9;
|
|
47892
|
+
exports.KTX2Loader._capabilityMap = (_obj9 = {}, _obj9[KTX2TargetFormat.ASTC] = (_obj1$1 = {}, _obj1$1[DFDTransferFunction.linear] = [
|
|
47893
|
+
GLCapabilityType.astc,
|
|
47894
|
+
GLCapabilityType.astc_webkit
|
|
47895
|
+
], _obj1$1[DFDTransferFunction.sRGB] = [
|
|
47896
|
+
GLCapabilityType.astc,
|
|
47897
|
+
GLCapabilityType.astc_webkit
|
|
47898
|
+
], _obj1$1), _obj9[KTX2TargetFormat.ETC] = (_obj2 = {}, _obj2[DFDTransferFunction.linear] = [
|
|
47899
|
+
GLCapabilityType.etc,
|
|
47900
|
+
GLCapabilityType.etc_webkit
|
|
47901
|
+
], _obj2[DFDTransferFunction.sRGB] = [
|
|
47902
|
+
GLCapabilityType.etc,
|
|
47903
|
+
GLCapabilityType.etc_webkit
|
|
47904
|
+
], _obj2), _obj9[KTX2TargetFormat.BC7] = (_obj3 = {}, _obj3[DFDTransferFunction.linear] = [
|
|
47905
|
+
GLCapabilityType.bptc
|
|
47906
|
+
], _obj3[DFDTransferFunction.sRGB] = [
|
|
47907
|
+
GLCapabilityType.bptc
|
|
47908
|
+
], _obj3), _obj9[KTX2TargetFormat.BC1_BC3] = (_obj4 = {}, _obj4[DFDTransferFunction.linear] = [
|
|
47909
|
+
GLCapabilityType.s3tc
|
|
47910
|
+
], _obj4[DFDTransferFunction.sRGB] = [
|
|
47911
|
+
GLCapabilityType.s3tc_srgb
|
|
47912
|
+
], _obj4), _obj9[KTX2TargetFormat.BC6H] = (_obj5 = {}, _obj5[DFDTransferFunction.linear] = [
|
|
47913
|
+
GLCapabilityType.bptc
|
|
47914
|
+
], _obj5), _obj9[KTX2TargetFormat.ASTC_HDR_4x4] = (_obj6 = {}, _obj6[DFDTransferFunction.linear] = [
|
|
47915
|
+
GLCapabilityType.astc_hdr
|
|
47916
|
+
], _obj6), _obj9[KTX2TargetFormat.R16G16B16A16] = (_obj7 = {}, _obj7[DFDTransferFunction.linear] = [
|
|
47917
|
+
GLCapabilityType.textureHalfFloat
|
|
47918
|
+
], _obj7), _obj9[KTX2TargetFormat.PVRTC] = (_obj8 = {}, _obj8[DFDTransferFunction.linear] = [
|
|
47919
|
+
GLCapabilityType.pvrtc,
|
|
47920
|
+
GLCapabilityType.pvrtc_webkit
|
|
47921
|
+
], _obj8), _obj9);
|
|
47922
|
+
exports.KTX2Loader = __decorate([
|
|
47923
|
+
resourceLoader(AssetType.KTX2, [
|
|
47924
|
+
"ktx2"
|
|
47925
|
+
])
|
|
47926
|
+
], exports.KTX2Loader);
|
|
47927
|
+
var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
47928
|
+
_inherits(KTX2ContentRestorer, ContentRestorer);
|
|
47929
|
+
function KTX2ContentRestorer(resource, url, requestConfig) {
|
|
47930
|
+
var _this;
|
|
47931
|
+
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
47932
|
+
return _this;
|
|
47933
|
+
}
|
|
47934
|
+
var _proto = KTX2ContentRestorer.prototype;
|
|
47935
|
+
_proto.restoreContent = function restoreContent() {
|
|
47936
|
+
var _this = this;
|
|
47937
|
+
var _this1 = this, resource = _this1.resource, requestConfig = _this1.requestConfig;
|
|
47938
|
+
var engine = resource.engine;
|
|
47939
|
+
return new AssetPromise(function(resolve, reject) {
|
|
47940
|
+
engine.resourceManager // @ts-ignore
|
|
47941
|
+
._request(_this.url, requestConfig).then(function(buffer) {
|
|
47942
|
+
return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
|
|
47943
|
+
var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
47944
|
+
return exports.KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params, resource);
|
|
47945
|
+
});
|
|
47946
|
+
}).then(resolve).catch(reject);
|
|
47947
|
+
});
|
|
47948
|
+
};
|
|
47949
|
+
return KTX2ContentRestorer;
|
|
47950
|
+
}(ContentRestorer);
|
|
47951
|
+
var AmbientLightLoader = /*#__PURE__*/ function(Loader) {
|
|
47952
|
+
_inherits(AmbientLightLoader, Loader);
|
|
47953
|
+
function AmbientLightLoader() {
|
|
47954
|
+
return Loader.apply(this, arguments) || this;
|
|
47955
|
+
}
|
|
47956
|
+
var _proto = AmbientLightLoader.prototype;
|
|
47957
|
+
_proto.load = function load(item, resourceManager) {
|
|
47958
|
+
return new AssetPromise(function(resolve, reject) {
|
|
47959
|
+
var requestConfig = _extends({}, item, {
|
|
47960
|
+
type: "arraybuffer"
|
|
47961
|
+
});
|
|
47962
|
+
var engine = resourceManager.engine;
|
|
47963
|
+
var url = item.url;
|
|
47964
|
+
resourceManager // @ts-ignore
|
|
47965
|
+
._request(url, requestConfig).then(function(buffer) {
|
|
47966
|
+
var header = FileHeader.decode(buffer);
|
|
47967
|
+
var dataOffset = header.headerLength;
|
|
47968
|
+
var sh = new SphericalHarmonics3();
|
|
47969
|
+
sh.copyFromArray(new Float32Array(buffer, dataOffset, 27));
|
|
47970
|
+
var textureOffset = dataOffset + AmbientLightLoader._shByteLength;
|
|
47971
|
+
return AmbientLightLoader._parseTexture(engine, buffer, textureOffset, header.dataLength - AmbientLightLoader._shByteLength).then(function(specularTexture) {
|
|
47972
|
+
engine.resourceManager.addContentRestorer(new AmbientLightContentRestorer(specularTexture, url, requestConfig));
|
|
47973
|
+
var ambientLight = new AmbientLight(engine);
|
|
47974
|
+
ambientLight.diffuseMode = DiffuseMode.SphericalHarmonics;
|
|
47975
|
+
ambientLight.diffuseSphericalHarmonics = sh;
|
|
47976
|
+
ambientLight.specularTexture = specularTexture;
|
|
47977
|
+
resolve(ambientLight);
|
|
47978
|
+
});
|
|
47979
|
+
}).catch(reject);
|
|
47980
|
+
});
|
|
47981
|
+
};
|
|
47982
|
+
/** @internal */ AmbientLightLoader._parseTexture = function _parseTexture(engine, buffer, textureOffset, textureLength, texture) {
|
|
47983
|
+
if (KTX2Container.checkMagic(buffer, textureOffset)) {
|
|
47984
|
+
var ktx2Data = new Uint8Array(buffer, textureOffset, textureLength);
|
|
47985
|
+
return exports.KTX2Loader._parseBuffer(ktx2Data, engine).then(function(param) {
|
|
47986
|
+
var ktx2Container = param.ktx2Container, _$engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
47987
|
+
var tex = exports.KTX2Loader._createTextureByBuffer(_$engine, ktx2Container.isSRGB, result, targetFormat, params, texture);
|
|
47988
|
+
tex.filterMode = TextureFilterMode.Trilinear;
|
|
47989
|
+
return tex;
|
|
47990
|
+
});
|
|
47991
|
+
} else {
|
|
47992
|
+
var size = new Uint16Array(buffer, textureOffset, 1)[0];
|
|
47993
|
+
texture || (texture = new TextureCube(engine, size, TextureFormat.R16G16B16A16, true, false));
|
|
47994
|
+
texture.filterMode = TextureFilterMode.Trilinear;
|
|
47995
|
+
var mipmapCount = texture.mipmapCount;
|
|
47996
|
+
var offset = textureOffset + 2;
|
|
47997
|
+
for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
|
|
47998
|
+
var mipSize = size >> mipLevel;
|
|
47999
|
+
for(var face = 0; face < 6; face++){
|
|
48000
|
+
var dataSize = mipSize * mipSize * 4;
|
|
48001
|
+
var data = new Uint16Array(buffer, offset, dataSize);
|
|
48002
|
+
offset += dataSize * 2;
|
|
48003
|
+
texture.setPixelBuffer(TextureCubeFace.PositiveX + face, data, mipLevel);
|
|
48004
|
+
}
|
|
48155
48005
|
}
|
|
48006
|
+
return Promise.resolve(texture);
|
|
48156
48007
|
}
|
|
48157
|
-
|
|
48158
|
-
|
|
48159
|
-
|
|
48160
|
-
|
|
48161
|
-
|
|
48162
|
-
|
|
48008
|
+
};
|
|
48009
|
+
return AmbientLightLoader;
|
|
48010
|
+
}(Loader);
|
|
48011
|
+
AmbientLightLoader._shByteLength = 27 * 4;
|
|
48012
|
+
AmbientLightLoader = __decorate([
|
|
48013
|
+
resourceLoader(AssetType.AmbientLight, [
|
|
48014
|
+
"ambLight"
|
|
48015
|
+
])
|
|
48016
|
+
], AmbientLightLoader);
|
|
48017
|
+
/**
|
|
48018
|
+
* @internal
|
|
48019
|
+
*/ var AmbientLightContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
48020
|
+
_inherits(AmbientLightContentRestorer, ContentRestorer);
|
|
48021
|
+
function AmbientLightContentRestorer(resource, url, requestConfig) {
|
|
48022
|
+
var _this;
|
|
48023
|
+
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
48024
|
+
return _this;
|
|
48025
|
+
}
|
|
48026
|
+
var _proto = AmbientLightContentRestorer.prototype;
|
|
48027
|
+
_proto.restoreContent = function restoreContent() {
|
|
48028
|
+
var _this = this;
|
|
48029
|
+
return new AssetPromise(function(resolve, reject) {
|
|
48030
|
+
var resource = _this.resource;
|
|
48031
|
+
var engine = resource.engine;
|
|
48032
|
+
engine.resourceManager // @ts-ignore
|
|
48033
|
+
._request(_this.url, _this.requestConfig).then(function(buffer) {
|
|
48034
|
+
var header = FileHeader.decode(buffer);
|
|
48035
|
+
var dataOffset = header.headerLength;
|
|
48036
|
+
var textureOffset = dataOffset + AmbientLightLoader._shByteLength;
|
|
48037
|
+
return AmbientLightLoader._parseTexture(engine, buffer, textureOffset, header.dataLength - AmbientLightLoader._shByteLength, resource);
|
|
48038
|
+
}).then(resolve).catch(reject);
|
|
48039
|
+
});
|
|
48040
|
+
};
|
|
48041
|
+
return AmbientLightContentRestorer;
|
|
48042
|
+
}(ContentRestorer);
|
|
48043
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
48044
|
+
try {
|
|
48045
|
+
var info = gen[key](arg);
|
|
48046
|
+
var value = info.value;
|
|
48047
|
+
} catch (error) {
|
|
48048
|
+
reject(error);
|
|
48049
|
+
return;
|
|
48050
|
+
}
|
|
48051
|
+
if (info.done) resolve(value);
|
|
48052
|
+
else Promise.resolve(value).then(_next, _throw);
|
|
48053
|
+
}
|
|
48054
|
+
function _async_to_generator(fn) {
|
|
48055
|
+
return function() {
|
|
48056
|
+
var self1 = this, args = arguments;
|
|
48057
|
+
return new Promise(function(resolve, reject) {
|
|
48058
|
+
var gen = fn.apply(self1, args);
|
|
48059
|
+
function _next(value) {
|
|
48060
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
48163
48061
|
}
|
|
48164
|
-
|
|
48165
|
-
|
|
48166
|
-
switch(size){
|
|
48167
|
-
case 2:
|
|
48168
|
-
case 3:
|
|
48169
|
-
case 4:
|
|
48170
|
-
return normalized ? VertexElementFormat.NormalizedUByte4 : VertexElementFormat.UByte4;
|
|
48062
|
+
function _throw(err) {
|
|
48063
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
48171
48064
|
}
|
|
48172
|
-
|
|
48065
|
+
_next(undefined);
|
|
48066
|
+
});
|
|
48173
48067
|
};
|
|
48174
|
-
|
|
48175
|
-
|
|
48176
|
-
|
|
48177
|
-
|
|
48178
|
-
|
|
48179
|
-
|
|
48180
|
-
|
|
48181
|
-
|
|
48068
|
+
}
|
|
48069
|
+
var FontLoader = /*#__PURE__*/ function(Loader) {
|
|
48070
|
+
_inherits(FontLoader, Loader);
|
|
48071
|
+
function FontLoader() {
|
|
48072
|
+
return Loader.apply(this, arguments) || this;
|
|
48073
|
+
}
|
|
48074
|
+
var _proto = FontLoader.prototype;
|
|
48075
|
+
_proto.load = function load(item, resourceManager) {
|
|
48076
|
+
var _this = this;
|
|
48077
|
+
return new AssetPromise(function(resolve, reject) {
|
|
48078
|
+
resourceManager // @ts-ignore
|
|
48079
|
+
._request(item.url, _extends({}, item, {
|
|
48080
|
+
type: "json"
|
|
48081
|
+
})).then(function(data) {
|
|
48082
|
+
var fontName = data.fontName, fontUrl = data.fontUrl;
|
|
48083
|
+
if (fontUrl) {
|
|
48084
|
+
_this._registerFont(fontName, fontUrl).then(function() {
|
|
48085
|
+
var font = new Font(resourceManager.engine, fontName);
|
|
48086
|
+
resolve(font);
|
|
48087
|
+
}).catch(function(e) {
|
|
48088
|
+
reject("load font " + fontUrl + " fail");
|
|
48089
|
+
});
|
|
48090
|
+
} else {
|
|
48091
|
+
var font = new Font(resourceManager.engine, fontName);
|
|
48092
|
+
resolve(font);
|
|
48093
|
+
}
|
|
48094
|
+
}).catch(function(e) {
|
|
48095
|
+
reject(e);
|
|
48182
48096
|
});
|
|
48183
|
-
var img = new Image();
|
|
48184
|
-
img.onerror = function() {
|
|
48185
|
-
reject(new Error("Failed to load image buffer"));
|
|
48186
|
-
};
|
|
48187
|
-
img.onload = function() {
|
|
48188
|
-
// Call requestAnimationFrame to avoid iOS's bug.
|
|
48189
|
-
requestAnimationFrame(function() {
|
|
48190
|
-
resolve(img);
|
|
48191
|
-
img.onload = null;
|
|
48192
|
-
img.onerror = null;
|
|
48193
|
-
img.onabort = null;
|
|
48194
|
-
});
|
|
48195
|
-
};
|
|
48196
|
-
img.crossOrigin = "anonymous";
|
|
48197
|
-
img.src = URL.createObjectURL(blob);
|
|
48198
48097
|
});
|
|
48199
48098
|
};
|
|
48200
|
-
|
|
48201
|
-
|
|
48202
|
-
|
|
48203
|
-
|
|
48204
|
-
|
|
48205
|
-
|
|
48206
|
-
|
|
48207
|
-
|
|
48208
|
-
|
|
48209
|
-
|
|
48210
|
-
|
|
48211
|
-
|
|
48212
|
-
|
|
48213
|
-
|
|
48214
|
-
|
|
48215
|
-
|
|
48216
|
-
|
|
48217
|
-
|
|
48218
|
-
|
|
48219
|
-
|
|
48220
|
-
originBuffer: originBuffer
|
|
48221
|
-
};
|
|
48222
|
-
}
|
|
48223
|
-
// Read main data
|
|
48224
|
-
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
48225
|
-
var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
|
|
48226
|
-
// Read glTF json
|
|
48227
|
-
if (chunkType !== GLB_CHUNK_TYPES.JSON) {
|
|
48228
|
-
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
48229
|
-
return null;
|
|
48230
|
-
}
|
|
48231
|
-
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
48232
|
-
var glTF = JSON.parse(Utils.decodeText(glTFData));
|
|
48233
|
-
// Read all buffers
|
|
48234
|
-
var buffers = [];
|
|
48235
|
-
var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
|
|
48236
|
-
var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
|
|
48237
|
-
while(byteOffset < header.length){
|
|
48238
|
-
chunkLength = dataView.getUint32(byteOffset, true);
|
|
48239
|
-
chunkType = dataView.getUint32(byteOffset + UINT32_LENGTH, true);
|
|
48240
|
-
if (chunkType !== GLB_CHUNK_TYPES.BIN) {
|
|
48241
|
-
console.error("Invalid glb chunk type. Expected 0x004E4942, found 0x" + chunkType.toString(16));
|
|
48242
|
-
return null;
|
|
48243
|
-
}
|
|
48244
|
-
var currentOffset = byteOffset + 2 * UINT32_LENGTH;
|
|
48245
|
-
var buffer = originBuffer.slice(currentOffset, currentOffset + chunkLength);
|
|
48246
|
-
buffers.push(buffer);
|
|
48247
|
-
restoreGLBBufferSlice.push(new Vector2(currentOffset, chunkLength));
|
|
48248
|
-
byteOffset += chunkLength + 2 * UINT32_LENGTH;
|
|
48249
|
-
}
|
|
48250
|
-
return {
|
|
48251
|
-
glTF: glTF,
|
|
48252
|
-
buffers: buffers
|
|
48253
|
-
};
|
|
48254
|
-
};
|
|
48255
|
-
GLTFUtils.parseSampler = function parseSampler(texture, samplerInfo) {
|
|
48256
|
-
var filterMode = samplerInfo.filterMode, wrapModeU = samplerInfo.wrapModeU, wrapModeV = samplerInfo.wrapModeV;
|
|
48257
|
-
if (filterMode !== undefined) {
|
|
48258
|
-
texture.filterMode = filterMode;
|
|
48259
|
-
}
|
|
48260
|
-
if (wrapModeU !== undefined) {
|
|
48261
|
-
texture.wrapModeU = wrapModeU;
|
|
48262
|
-
}
|
|
48263
|
-
if (wrapModeV !== undefined) {
|
|
48264
|
-
texture.wrapModeV = wrapModeV;
|
|
48265
|
-
}
|
|
48099
|
+
_proto._registerFont = function _registerFont(fontName, fontUrl) {
|
|
48100
|
+
return _async_to_generator(function() {
|
|
48101
|
+
var fontFace;
|
|
48102
|
+
return __generator(this, function(_state) {
|
|
48103
|
+
switch(_state.label){
|
|
48104
|
+
case 0:
|
|
48105
|
+
fontFace = new FontFace(fontName, "url(" + fontUrl + ")");
|
|
48106
|
+
return [
|
|
48107
|
+
4,
|
|
48108
|
+
fontFace.load()
|
|
48109
|
+
];
|
|
48110
|
+
case 1:
|
|
48111
|
+
_state.sent();
|
|
48112
|
+
document.fonts.add(fontFace);
|
|
48113
|
+
return [
|
|
48114
|
+
2
|
|
48115
|
+
];
|
|
48116
|
+
}
|
|
48117
|
+
});
|
|
48118
|
+
})();
|
|
48266
48119
|
};
|
|
48267
|
-
|
|
48268
|
-
|
|
48269
|
-
|
|
48270
|
-
|
|
48271
|
-
|
|
48272
|
-
|
|
48273
|
-
|
|
48274
|
-
|
|
48275
|
-
|
|
48276
|
-
|
|
48277
|
-
|
|
48278
|
-
|
|
48120
|
+
return FontLoader;
|
|
48121
|
+
}(Loader);
|
|
48122
|
+
FontLoader = __decorate([
|
|
48123
|
+
resourceLoader(AssetType.Font, [
|
|
48124
|
+
"font"
|
|
48125
|
+
])
|
|
48126
|
+
], FontLoader);
|
|
48127
|
+
// Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
|
|
48128
|
+
var ready;
|
|
48129
|
+
function getMeshoptDecoder() {
|
|
48130
|
+
if (ready) return ready;
|
|
48131
|
+
var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
|
|
48132
|
+
var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
|
|
48133
|
+
var wasmpack = new Uint8Array([
|
|
48134
|
+
32,
|
|
48135
|
+
0,
|
|
48136
|
+
65,
|
|
48137
|
+
2,
|
|
48138
|
+
1,
|
|
48139
|
+
106,
|
|
48140
|
+
34,
|
|
48141
|
+
33,
|
|
48142
|
+
3,
|
|
48143
|
+
128,
|
|
48144
|
+
11,
|
|
48145
|
+
4,
|
|
48146
|
+
13,
|
|
48147
|
+
64,
|
|
48148
|
+
6,
|
|
48149
|
+
253,
|
|
48150
|
+
10,
|
|
48151
|
+
7,
|
|
48152
|
+
15,
|
|
48153
|
+
116,
|
|
48154
|
+
127,
|
|
48155
|
+
5,
|
|
48156
|
+
8,
|
|
48157
|
+
12,
|
|
48158
|
+
40,
|
|
48159
|
+
16,
|
|
48160
|
+
19,
|
|
48161
|
+
54,
|
|
48162
|
+
20,
|
|
48163
|
+
9,
|
|
48164
|
+
27,
|
|
48165
|
+
255,
|
|
48166
|
+
113,
|
|
48167
|
+
17,
|
|
48168
|
+
42,
|
|
48169
|
+
67,
|
|
48170
|
+
24,
|
|
48171
|
+
23,
|
|
48172
|
+
146,
|
|
48173
|
+
148,
|
|
48174
|
+
18,
|
|
48175
|
+
14,
|
|
48176
|
+
22,
|
|
48177
|
+
45,
|
|
48178
|
+
70,
|
|
48179
|
+
69,
|
|
48180
|
+
56,
|
|
48181
|
+
114,
|
|
48182
|
+
101,
|
|
48183
|
+
21,
|
|
48184
|
+
25,
|
|
48185
|
+
63,
|
|
48186
|
+
75,
|
|
48187
|
+
136,
|
|
48188
|
+
108,
|
|
48189
|
+
28,
|
|
48190
|
+
118,
|
|
48191
|
+
29,
|
|
48192
|
+
73,
|
|
48193
|
+
115
|
|
48194
|
+
]);
|
|
48195
|
+
// @ts-ignore
|
|
48196
|
+
var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
|
|
48197
|
+
var instance;
|
|
48198
|
+
ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
|
|
48199
|
+
instance = result.instance;
|
|
48200
|
+
instance.exports.__wasm_call_ctors();
|
|
48201
|
+
}).then(function() {
|
|
48202
|
+
return {
|
|
48203
|
+
workerCount: 4,
|
|
48204
|
+
ready: ready,
|
|
48205
|
+
useWorkers: function useWorkers(workerCount) {
|
|
48206
|
+
this.workerCount = workerCount != null ? workerCount : this.workerCount;
|
|
48207
|
+
initWorkers(this.workerCount);
|
|
48208
|
+
},
|
|
48209
|
+
decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
|
|
48210
|
+
if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
|
|
48211
|
+
if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
|
|
48212
|
+
return ready.then(function() {
|
|
48213
|
+
var target = new Uint8Array(count * stride);
|
|
48214
|
+
decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
|
|
48215
|
+
return target;
|
|
48216
|
+
});
|
|
48217
|
+
},
|
|
48218
|
+
release: function release() {
|
|
48219
|
+
for(var i = 0; i < workers.length; i++){
|
|
48220
|
+
workers[i].object.terminate();
|
|
48279
48221
|
}
|
|
48280
48222
|
}
|
|
48281
|
-
}
|
|
48282
|
-
|
|
48283
|
-
|
|
48284
|
-
|
|
48285
|
-
|
|
48286
|
-
|
|
48287
|
-
|
|
48288
|
-
|
|
48289
|
-
|
|
48290
|
-
|
|
48291
|
-
|
|
48292
|
-
|
|
48293
|
-
|
|
48294
|
-
DFDTransferFunction[DFDTransferFunction["sRGB"] = 2] = "sRGB";
|
|
48295
|
-
return DFDTransferFunction;
|
|
48296
|
-
}({});
|
|
48297
|
-
var ColorModel = /*#__PURE__*/ function(ColorModel) {
|
|
48298
|
-
ColorModel[ColorModel["ETC1S"] = 163] = "ETC1S";
|
|
48299
|
-
ColorModel[ColorModel["UASTC_LDR_4X4"] = 166] = "UASTC_LDR_4X4";
|
|
48300
|
-
ColorModel[ColorModel["UASTC_HDR_4X4"] = 167] = "UASTC_HDR_4X4";
|
|
48301
|
-
return ColorModel;
|
|
48302
|
-
}({});
|
|
48303
|
-
/** @internal */ var KTX2Container = /*#__PURE__*/ function() {
|
|
48304
|
-
function KTX2Container(buffer) {
|
|
48305
|
-
this.vkFormat = 0;
|
|
48306
|
-
this.typeSize = 1;
|
|
48307
|
-
this.pixelWidth = 0;
|
|
48308
|
-
this.pixelHeight = 0;
|
|
48309
|
-
this.pixelDepth = 0;
|
|
48310
|
-
this.layerCount = 0;
|
|
48311
|
-
this.faceCount = 1;
|
|
48312
|
-
this.supercompressionScheme = 0;
|
|
48313
|
-
this.levels = [];
|
|
48314
|
-
this.keyValue = {};
|
|
48315
|
-
this.globalData = null;
|
|
48316
|
-
this.parse(buffer);
|
|
48223
|
+
};
|
|
48224
|
+
});
|
|
48225
|
+
function unpack(data) {
|
|
48226
|
+
var result = new Uint8Array(data.length);
|
|
48227
|
+
for(var i = 0; i < data.length; ++i){
|
|
48228
|
+
var ch = data.charCodeAt(i);
|
|
48229
|
+
result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
|
|
48230
|
+
}
|
|
48231
|
+
var write = 0;
|
|
48232
|
+
for(var i1 = 0; i1 < data.length; ++i1){
|
|
48233
|
+
result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
|
|
48234
|
+
}
|
|
48235
|
+
return result.buffer.slice(0, write);
|
|
48317
48236
|
}
|
|
48318
|
-
|
|
48319
|
-
|
|
48320
|
-
var
|
|
48321
|
-
var
|
|
48322
|
-
var
|
|
48323
|
-
|
|
48324
|
-
|
|
48325
|
-
|
|
48326
|
-
|
|
48327
|
-
|
|
48328
|
-
this.layerCount = headerBufferReader.nextUint32();
|
|
48329
|
-
this.faceCount = headerBufferReader.nextUint32();
|
|
48330
|
-
var levelCount = Math.max(1, headerBufferReader.nextUint32());
|
|
48331
|
-
this.supercompressionScheme = headerBufferReader.nextUint32();
|
|
48332
|
-
var dfdByteOffset = headerBufferReader.nextUint32();
|
|
48333
|
-
var dfdByteLength = headerBufferReader.nextUint32();
|
|
48334
|
-
var kvdByteOffset = headerBufferReader.nextUint32();
|
|
48335
|
-
var kvdByteLength = headerBufferReader.nextUint32();
|
|
48336
|
-
var sgdByteOffset = headerBufferReader.nextUint64();
|
|
48337
|
-
var sgdByteLength = headerBufferReader.nextUint64();
|
|
48338
|
-
// level index
|
|
48339
|
-
var ktxLevels = new Array(levelCount);
|
|
48340
|
-
var levelByteLength = levelCount * 3 * 8;
|
|
48341
|
-
var levelReader = new BufferReader(data, headerBufferReader.offset, levelByteLength);
|
|
48342
|
-
this.levels = ktxLevels;
|
|
48343
|
-
for(var i = 0; i < levelCount; i++){
|
|
48344
|
-
ktxLevels[i] = {
|
|
48345
|
-
levelData: new Uint8Array(buffer, byteOffset + levelReader.nextUint64(), levelReader.nextUint64()),
|
|
48346
|
-
uncompressedByteLength: levelReader.nextUint64()
|
|
48347
|
-
};
|
|
48237
|
+
function decode(fun, target, count, size, source, filter) {
|
|
48238
|
+
var sbrk = instance.exports.sbrk;
|
|
48239
|
+
var count4 = count + 3 & ~3;
|
|
48240
|
+
var tp = sbrk(count4 * size);
|
|
48241
|
+
var sp = sbrk(source.length);
|
|
48242
|
+
var heap = new Uint8Array(instance.exports.memory.buffer);
|
|
48243
|
+
heap.set(source, sp);
|
|
48244
|
+
var res = fun(tp, count, size, sp, source.length);
|
|
48245
|
+
if (res == 0 && filter) {
|
|
48246
|
+
filter(tp, count4, size);
|
|
48348
48247
|
}
|
|
48349
|
-
|
|
48350
|
-
|
|
48351
|
-
|
|
48352
|
-
|
|
48353
|
-
|
|
48354
|
-
|
|
48355
|
-
|
|
48356
|
-
|
|
48357
|
-
|
|
48358
|
-
|
|
48359
|
-
|
|
48360
|
-
|
|
48361
|
-
|
|
48362
|
-
|
|
48363
|
-
|
|
48364
|
-
|
|
48365
|
-
|
|
48366
|
-
|
|
48367
|
-
|
|
48368
|
-
|
|
48369
|
-
|
|
48370
|
-
|
|
48371
|
-
|
|
48372
|
-
|
|
48373
|
-
dfdReader.nextUint8(),
|
|
48374
|
-
dfdReader.nextUint8()
|
|
48375
|
-
],
|
|
48376
|
-
samples: []
|
|
48248
|
+
target.set(heap.subarray(tp, tp + count * size));
|
|
48249
|
+
sbrk(tp - sbrk(0));
|
|
48250
|
+
if (res != 0) {
|
|
48251
|
+
throw new Error("Malformed buffer data: " + res);
|
|
48252
|
+
}
|
|
48253
|
+
}
|
|
48254
|
+
var filters = {
|
|
48255
|
+
NONE: "",
|
|
48256
|
+
OCTAHEDRAL: "meshopt_decodeFilterOct",
|
|
48257
|
+
QUATERNION: "meshopt_decodeFilterQuat",
|
|
48258
|
+
EXPONENTIAL: "meshopt_decodeFilterExp"
|
|
48259
|
+
};
|
|
48260
|
+
var decoders = {
|
|
48261
|
+
ATTRIBUTES: "meshopt_decodeVertexBuffer",
|
|
48262
|
+
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
48263
|
+
INDICES: "meshopt_decodeIndexSequence"
|
|
48264
|
+
};
|
|
48265
|
+
var workers = [];
|
|
48266
|
+
var requestId = 0;
|
|
48267
|
+
function createWorker(url) {
|
|
48268
|
+
var worker = {
|
|
48269
|
+
object: new Worker(url),
|
|
48270
|
+
pending: 0,
|
|
48271
|
+
requests: {}
|
|
48377
48272
|
};
|
|
48378
|
-
|
|
48379
|
-
|
|
48380
|
-
|
|
48381
|
-
|
|
48382
|
-
|
|
48383
|
-
|
|
48384
|
-
|
|
48385
|
-
|
|
48386
|
-
|
|
48387
|
-
|
|
48388
|
-
|
|
48389
|
-
|
|
48390
|
-
|
|
48391
|
-
|
|
48392
|
-
|
|
48393
|
-
|
|
48394
|
-
|
|
48395
|
-
|
|
48396
|
-
if (sample.channelType & 0x40) {
|
|
48397
|
-
sample.sampleLower = dfdReader.nextInt32();
|
|
48398
|
-
sample.sampleUpper = dfdReader.nextInt32();
|
|
48399
|
-
} else {
|
|
48400
|
-
sample.sampleLower = dfdReader.nextUint32();
|
|
48401
|
-
sample.sampleUpper = dfdReader.nextUint32();
|
|
48402
|
-
}
|
|
48403
|
-
dfd.samples[i1] = sample;
|
|
48273
|
+
worker.object.onmessage = function(event) {
|
|
48274
|
+
var data = event.data;
|
|
48275
|
+
worker.pending -= data.count;
|
|
48276
|
+
worker.requests[data.id][data.action](data.value);
|
|
48277
|
+
delete worker.requests[data.id];
|
|
48278
|
+
};
|
|
48279
|
+
return worker;
|
|
48280
|
+
}
|
|
48281
|
+
function initWorkers(count) {
|
|
48282
|
+
var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
|
|
48283
|
+
var blob = new Blob([
|
|
48284
|
+
source
|
|
48285
|
+
], {
|
|
48286
|
+
type: "text/javascript"
|
|
48287
|
+
});
|
|
48288
|
+
var url = URL.createObjectURL(blob);
|
|
48289
|
+
for(var i = 0; i < count; ++i){
|
|
48290
|
+
workers[i] = createWorker(url);
|
|
48404
48291
|
}
|
|
48405
|
-
|
|
48406
|
-
|
|
48407
|
-
|
|
48408
|
-
|
|
48409
|
-
|
|
48410
|
-
|
|
48411
|
-
|
|
48412
|
-
|
|
48413
|
-
var kvPadding = keyValueByteLength % 4 ? 4 - keyValueByteLength % 4 : 0; // align(4)
|
|
48414
|
-
// 4-byte alignment.
|
|
48415
|
-
kvdReader.skip(kvPadding);
|
|
48292
|
+
URL.revokeObjectURL(url);
|
|
48293
|
+
}
|
|
48294
|
+
function decodeWorker(count, size, source, mode, filter) {
|
|
48295
|
+
var worker = workers[0];
|
|
48296
|
+
for(var i = 1; i < workers.length; ++i){
|
|
48297
|
+
if (workers[i].pending < worker.pending) {
|
|
48298
|
+
worker = workers[i];
|
|
48299
|
+
}
|
|
48416
48300
|
}
|
|
48417
|
-
|
|
48418
|
-
|
|
48419
|
-
|
|
48420
|
-
|
|
48421
|
-
|
|
48422
|
-
|
|
48423
|
-
|
|
48424
|
-
var extendedByteLength = sgdReader.nextUint32();
|
|
48425
|
-
var imageDescs = new Array(levelCount);
|
|
48426
|
-
for(var i2 = 0; i2 < levelCount; i2++){
|
|
48427
|
-
imageDescs[i2] = {
|
|
48428
|
-
imageFlags: sgdReader.nextUint32(),
|
|
48429
|
-
rgbSliceByteOffset: sgdReader.nextUint32(),
|
|
48430
|
-
rgbSliceByteLength: sgdReader.nextUint32(),
|
|
48431
|
-
alphaSliceByteOffset: sgdReader.nextUint32(),
|
|
48432
|
-
alphaSliceByteLength: sgdReader.nextUint32()
|
|
48301
|
+
return new Promise(function(resolve, reject) {
|
|
48302
|
+
var data = new Uint8Array(source);
|
|
48303
|
+
var id = requestId++;
|
|
48304
|
+
worker.pending += count;
|
|
48305
|
+
worker.requests[id] = {
|
|
48306
|
+
resolve: resolve,
|
|
48307
|
+
reject: reject
|
|
48433
48308
|
};
|
|
48309
|
+
worker.object.postMessage({
|
|
48310
|
+
id: id,
|
|
48311
|
+
count: count,
|
|
48312
|
+
size: size,
|
|
48313
|
+
source: data,
|
|
48314
|
+
mode: mode,
|
|
48315
|
+
filter: filter
|
|
48316
|
+
}, [
|
|
48317
|
+
data.buffer
|
|
48318
|
+
]);
|
|
48319
|
+
});
|
|
48320
|
+
}
|
|
48321
|
+
return ready;
|
|
48322
|
+
}
|
|
48323
|
+
/**
|
|
48324
|
+
* The glTF resource.
|
|
48325
|
+
*/ var GLTFResource = /*#__PURE__*/ function(ReferResource) {
|
|
48326
|
+
_inherits(GLTFResource, ReferResource);
|
|
48327
|
+
function GLTFResource(engine, url) {
|
|
48328
|
+
var _this;
|
|
48329
|
+
_this = ReferResource.call(this, engine) || this;
|
|
48330
|
+
_this.url = url;
|
|
48331
|
+
return _this;
|
|
48332
|
+
}
|
|
48333
|
+
var _proto = GLTFResource.prototype;
|
|
48334
|
+
/**
|
|
48335
|
+
* Instantiate scene root entity.
|
|
48336
|
+
* @param sceneIndex - Scene index
|
|
48337
|
+
* @returns Root entity
|
|
48338
|
+
*/ _proto.instantiateSceneRoot = function instantiateSceneRoot(sceneIndex) {
|
|
48339
|
+
var sceneRoot = sceneIndex === undefined ? this._defaultSceneRoot : this._sceneRoots[sceneIndex];
|
|
48340
|
+
return sceneRoot.clone();
|
|
48341
|
+
};
|
|
48342
|
+
_proto._onDestroy = function _onDestroy() {
|
|
48343
|
+
ReferResource.prototype._onDestroy.call(this);
|
|
48344
|
+
var _this = this, textures = _this.textures, materials = _this.materials, meshes = _this.meshes;
|
|
48345
|
+
textures && this._disassociationSuperResource(textures);
|
|
48346
|
+
materials && this._disassociationSuperResource(materials);
|
|
48347
|
+
if (meshes) {
|
|
48348
|
+
for(var i = 0, n = meshes.length; i < n; i++){
|
|
48349
|
+
var meshArr = meshes[i];
|
|
48350
|
+
meshArr && this._disassociationSuperResource(meshArr);
|
|
48351
|
+
}
|
|
48434
48352
|
}
|
|
48435
|
-
var endpointsByteOffset = sgdByteOffset + sgdReader.position;
|
|
48436
|
-
var selectorsByteOffset = endpointsByteOffset + endpointsByteLength;
|
|
48437
|
-
var tablesByteOffset = selectorsByteOffset + selectorsByteLength;
|
|
48438
|
-
var extendedByteOffset = tablesByteOffset + tablesByteLength;
|
|
48439
|
-
var endpointsData = new Uint8Array(buffer, byteOffset + endpointsByteOffset, endpointsByteLength);
|
|
48440
|
-
var selectorsData = new Uint8Array(buffer, byteOffset + selectorsByteOffset, selectorsByteLength);
|
|
48441
|
-
var tablesData = new Uint8Array(buffer, byteOffset + tablesByteOffset, tablesByteLength);
|
|
48442
|
-
var extendedData = new Uint8Array(buffer, byteOffset + extendedByteOffset, extendedByteLength);
|
|
48443
|
-
this.globalData = {
|
|
48444
|
-
endpointCount: endpointCount,
|
|
48445
|
-
selectorCount: selectorCount,
|
|
48446
|
-
imageDescs: imageDescs,
|
|
48447
|
-
endpointsData: endpointsData,
|
|
48448
|
-
selectorsData: selectorsData,
|
|
48449
|
-
tablesData: tablesData,
|
|
48450
|
-
extendedData: extendedData
|
|
48451
|
-
};
|
|
48452
48353
|
};
|
|
48453
|
-
|
|
48354
|
+
_proto._disassociationSuperResource = function _disassociationSuperResource(resources) {
|
|
48355
|
+
for(var i = 0, n = resources.length; i < n; i++){
|
|
48356
|
+
var _resources_i;
|
|
48357
|
+
(_resources_i = resources[i]) == null ? void 0 : _resources_i._disassociationSuperResource(this);
|
|
48358
|
+
}
|
|
48359
|
+
};
|
|
48360
|
+
_create_class(GLTFResource, [
|
|
48361
|
+
{
|
|
48362
|
+
key: "extensionsData",
|
|
48363
|
+
get: /**
|
|
48364
|
+
* Extensions data.
|
|
48365
|
+
*/ function get() {
|
|
48366
|
+
return this._extensionsData;
|
|
48367
|
+
}
|
|
48368
|
+
},
|
|
48454
48369
|
{
|
|
48455
|
-
key: "
|
|
48456
|
-
get:
|
|
48457
|
-
|
|
48370
|
+
key: "sceneRoots",
|
|
48371
|
+
get: /**
|
|
48372
|
+
* @deprecated Please use `instantiateSceneRoot` instead.
|
|
48373
|
+
* RootEntities after SceneParser.
|
|
48374
|
+
*/ function get() {
|
|
48375
|
+
return this._sceneRoots;
|
|
48458
48376
|
}
|
|
48459
48377
|
},
|
|
48460
48378
|
{
|
|
48461
|
-
key: "
|
|
48462
|
-
get:
|
|
48463
|
-
|
|
48379
|
+
key: "defaultSceneRoot",
|
|
48380
|
+
get: /**
|
|
48381
|
+
* @deprecated Please use `instantiateSceneRoot` instead.
|
|
48382
|
+
* RootEntity after SceneParser.
|
|
48383
|
+
*/ function get() {
|
|
48384
|
+
return this._defaultSceneRoot;
|
|
48464
48385
|
}
|
|
48465
48386
|
}
|
|
48466
48387
|
]);
|
|
48467
|
-
return
|
|
48468
|
-
}();
|
|
48388
|
+
return GLTFResource;
|
|
48389
|
+
}(ReferResource);
|
|
48469
48390
|
/**
|
|
48470
|
-
*
|
|
48471
|
-
*/
|
|
48472
|
-
|
|
48473
|
-
|
|
48474
|
-
/**
|
|
48475
|
-
|
|
48476
|
-
|
|
48477
|
-
/**
|
|
48478
|
-
|
|
48479
|
-
|
|
48480
|
-
/**
|
|
48481
|
-
|
|
48482
|
-
|
|
48483
|
-
|
|
48391
|
+
* Module for glTF 2.0 Interface
|
|
48392
|
+
*/ /**
|
|
48393
|
+
* The datatype of the components in the attribute
|
|
48394
|
+
*/ var AccessorComponentType = /*#__PURE__*/ function(AccessorComponentType) {
|
|
48395
|
+
/**
|
|
48396
|
+
* Byte
|
|
48397
|
+
*/ AccessorComponentType[AccessorComponentType["BYTE"] = 5120] = "BYTE";
|
|
48398
|
+
/**
|
|
48399
|
+
* Unsigned Byte
|
|
48400
|
+
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE";
|
|
48401
|
+
/**
|
|
48402
|
+
* Short
|
|
48403
|
+
*/ AccessorComponentType[AccessorComponentType["SHORT"] = 5122] = "SHORT";
|
|
48404
|
+
/**
|
|
48405
|
+
* Unsigned Short
|
|
48406
|
+
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT";
|
|
48407
|
+
/**
|
|
48408
|
+
* Unsigned Int
|
|
48409
|
+
*/ AccessorComponentType[AccessorComponentType["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT";
|
|
48410
|
+
/**
|
|
48411
|
+
* Float
|
|
48412
|
+
*/ AccessorComponentType[AccessorComponentType["FLOAT"] = 5126] = "FLOAT";
|
|
48413
|
+
return AccessorComponentType;
|
|
48414
|
+
}({});
|
|
48415
|
+
/**
|
|
48416
|
+
* Specifies if the attirbute is a scalar, vector, or matrix
|
|
48417
|
+
*/ var AccessorType = /*#__PURE__*/ function(AccessorType) {
|
|
48418
|
+
/**
|
|
48419
|
+
* Scalar
|
|
48420
|
+
*/ AccessorType["SCALAR"] = "SCALAR";
|
|
48421
|
+
/**
|
|
48422
|
+
* Vector2
|
|
48423
|
+
*/ AccessorType["VEC2"] = "VEC2";
|
|
48424
|
+
/**
|
|
48425
|
+
* Vector3
|
|
48426
|
+
*/ AccessorType["VEC3"] = "VEC3";
|
|
48427
|
+
/**
|
|
48428
|
+
* Vector4
|
|
48429
|
+
*/ AccessorType["VEC4"] = "VEC4";
|
|
48430
|
+
/**
|
|
48431
|
+
* Matrix2x2
|
|
48432
|
+
*/ AccessorType["MAT2"] = "MAT2";
|
|
48433
|
+
/**
|
|
48434
|
+
* Matrix3x3
|
|
48435
|
+
*/ AccessorType["MAT3"] = "MAT3";
|
|
48436
|
+
/**
|
|
48437
|
+
* Matrix4x4
|
|
48438
|
+
*/ AccessorType["MAT4"] = "MAT4";
|
|
48439
|
+
return AccessorType;
|
|
48440
|
+
}({});
|
|
48441
|
+
/**
|
|
48442
|
+
* The name of the node's TRS property to modify, or the weights of the Morph Targets it instantiates
|
|
48443
|
+
*/ var AnimationChannelTargetPath = /*#__PURE__*/ function(AnimationChannelTargetPath) {
|
|
48444
|
+
/**
|
|
48445
|
+
* Translation
|
|
48446
|
+
*/ AnimationChannelTargetPath["TRANSLATION"] = "translation";
|
|
48447
|
+
/**
|
|
48448
|
+
* Rotation
|
|
48449
|
+
*/ AnimationChannelTargetPath["ROTATION"] = "rotation";
|
|
48450
|
+
/**
|
|
48451
|
+
* Scale
|
|
48452
|
+
*/ AnimationChannelTargetPath["SCALE"] = "scale";
|
|
48453
|
+
/**
|
|
48454
|
+
* Weights
|
|
48455
|
+
*/ AnimationChannelTargetPath["WEIGHTS"] = "weights";
|
|
48456
|
+
return AnimationChannelTargetPath;
|
|
48457
|
+
}({});
|
|
48458
|
+
/**
|
|
48459
|
+
* Interpolation algorithm
|
|
48460
|
+
*/ var AnimationSamplerInterpolation = /*#__PURE__*/ function(AnimationSamplerInterpolation) {
|
|
48461
|
+
/**
|
|
48462
|
+
* The animated values are linearly interpolated between keyframes
|
|
48463
|
+
*/ AnimationSamplerInterpolation["Linear"] = "LINEAR";
|
|
48464
|
+
/**
|
|
48465
|
+
* The animated values remain constant to the output of the first keyframe, until the next keyframe
|
|
48466
|
+
*/ AnimationSamplerInterpolation["Step"] = "STEP";
|
|
48467
|
+
/**
|
|
48468
|
+
* The animation's interpolation is computed using a cubic spline with specified tangents
|
|
48469
|
+
*/ AnimationSamplerInterpolation["CubicSpine"] = "CUBICSPLINE";
|
|
48470
|
+
return AnimationSamplerInterpolation;
|
|
48471
|
+
}({});
|
|
48472
|
+
/**
|
|
48473
|
+
* A camera's projection. A node can reference a camera to apply a transform to place the camera in the scene
|
|
48474
|
+
*/ var CameraType = /*#__PURE__*/ function(CameraType) {
|
|
48475
|
+
/**
|
|
48476
|
+
* A perspective camera containing properties to create a perspective projection matrix
|
|
48477
|
+
*/ CameraType["PERSPECTIVE"] = "perspective";
|
|
48478
|
+
/**
|
|
48479
|
+
* An orthographic camera containing properties to create an orthographic projection matrix
|
|
48480
|
+
*/ CameraType["ORTHOGRAPHIC"] = "orthographic";
|
|
48481
|
+
return CameraType;
|
|
48482
|
+
}({});
|
|
48483
|
+
/**
|
|
48484
|
+
* The alpha rendering mode of the material
|
|
48485
|
+
*/ var MaterialAlphaMode = /*#__PURE__*/ function(MaterialAlphaMode) {
|
|
48486
|
+
/**
|
|
48487
|
+
* The alpha value is ignored and the rendered output is fully opaque
|
|
48488
|
+
*/ MaterialAlphaMode["OPAQUE"] = "OPAQUE";
|
|
48489
|
+
/**
|
|
48490
|
+
* The rendered output is either fully opaque or fully transparent depending on the alpha value and the specified alpha cutoff value
|
|
48491
|
+
*/ MaterialAlphaMode["MASK"] = "MASK";
|
|
48492
|
+
/**
|
|
48493
|
+
* The alpha value is used to composite the source and destination areas. The rendered output is combined with the background using the normal painting operation (i.e. the Porter and Duff over operator)
|
|
48494
|
+
*/ MaterialAlphaMode["BLEND"] = "BLEND";
|
|
48495
|
+
return MaterialAlphaMode;
|
|
48496
|
+
}({});
|
|
48497
|
+
/**
|
|
48498
|
+
* Magnification filter. Valid values correspond to WebGL enums: 9728 (NEAREST) and 9729 (LINEAR)
|
|
48499
|
+
*/ var TextureMagFilter = /*#__PURE__*/ function(TextureMagFilter) {
|
|
48500
|
+
/**
|
|
48501
|
+
* Nearest
|
|
48502
|
+
*/ TextureMagFilter[TextureMagFilter["NEAREST"] = 9728] = "NEAREST";
|
|
48503
|
+
/**
|
|
48504
|
+
* Linear
|
|
48505
|
+
*/ TextureMagFilter[TextureMagFilter["LINEAR"] = 9729] = "LINEAR";
|
|
48506
|
+
return TextureMagFilter;
|
|
48507
|
+
}({});
|
|
48508
|
+
/**
|
|
48509
|
+
* Minification filter. All valid values correspond to WebGL enums
|
|
48510
|
+
*/ var TextureMinFilter = /*#__PURE__*/ function(TextureMinFilter) {
|
|
48511
|
+
/**
|
|
48512
|
+
* Nearest
|
|
48513
|
+
*/ TextureMinFilter[TextureMinFilter["NEAREST"] = 9728] = "NEAREST";
|
|
48514
|
+
/**
|
|
48515
|
+
* Linear
|
|
48516
|
+
*/ TextureMinFilter[TextureMinFilter["LINEAR"] = 9729] = "LINEAR";
|
|
48517
|
+
/**
|
|
48518
|
+
* Nearest Mip-Map Nearest
|
|
48519
|
+
*/ TextureMinFilter[TextureMinFilter["NEAREST_MIPMAP_NEAREST"] = 9984] = "NEAREST_MIPMAP_NEAREST";
|
|
48520
|
+
/**
|
|
48521
|
+
* Linear Mipmap Nearest
|
|
48522
|
+
*/ TextureMinFilter[TextureMinFilter["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST";
|
|
48523
|
+
/**
|
|
48524
|
+
* Nearest Mipmap Linear
|
|
48525
|
+
*/ TextureMinFilter[TextureMinFilter["NEAREST_MIPMAP_LINEAR"] = 9986] = "NEAREST_MIPMAP_LINEAR";
|
|
48526
|
+
/**
|
|
48527
|
+
* Linear Mipmap Linear
|
|
48528
|
+
*/ TextureMinFilter[TextureMinFilter["LINEAR_MIPMAP_LINEAR"] = 9987] = "LINEAR_MIPMAP_LINEAR";
|
|
48529
|
+
return TextureMinFilter;
|
|
48530
|
+
}({});
|
|
48531
|
+
/**
|
|
48532
|
+
* S (U) wrapping mode. All valid values correspond to WebGL enums
|
|
48533
|
+
*/ var TextureWrapMode = /*#__PURE__*/ function(TextureWrapMode) {
|
|
48534
|
+
/**
|
|
48535
|
+
* Clamp to Edge
|
|
48536
|
+
*/ TextureWrapMode[TextureWrapMode["CLAMP_TO_EDGE"] = 33071] = "CLAMP_TO_EDGE";
|
|
48537
|
+
/**
|
|
48538
|
+
* Mirrored Repeat
|
|
48539
|
+
*/ TextureWrapMode[TextureWrapMode["MIRRORED_REPEAT"] = 33648] = "MIRRORED_REPEAT";
|
|
48540
|
+
/**
|
|
48541
|
+
* Repeat
|
|
48542
|
+
*/ TextureWrapMode[TextureWrapMode["REPEAT"] = 10497] = "REPEAT";
|
|
48543
|
+
return TextureWrapMode;
|
|
48484
48544
|
}({});
|
|
48485
48545
|
/**
|
|
48486
48546
|
* @internal
|
|
48487
|
-
|
|
48488
|
-
|
|
48489
|
-
|
|
48490
|
-
|
|
48491
|
-
this.
|
|
48492
|
-
this.
|
|
48493
|
-
this.
|
|
48494
|
-
this.
|
|
48495
|
-
this
|
|
48547
|
+
*/ var GLTFParserContext = /*#__PURE__*/ function() {
|
|
48548
|
+
function GLTFParserContext(glTFResource, resourceManager, params) {
|
|
48549
|
+
var _this = this;
|
|
48550
|
+
this.glTFResource = glTFResource;
|
|
48551
|
+
this.resourceManager = resourceManager;
|
|
48552
|
+
this.params = params;
|
|
48553
|
+
this.accessorBufferCache = {};
|
|
48554
|
+
this.needAnimatorController = false;
|
|
48555
|
+
this./** @internal */ _getPromises = [];
|
|
48556
|
+
this._resourceCache = new Map();
|
|
48557
|
+
this._progress = {
|
|
48558
|
+
taskDetail: {},
|
|
48559
|
+
taskComplete: {
|
|
48560
|
+
loaded: 0,
|
|
48561
|
+
total: 0
|
|
48562
|
+
}
|
|
48563
|
+
};
|
|
48564
|
+
this./**
|
|
48565
|
+
* @internal
|
|
48566
|
+
*/ _onTaskDetail = function(url, loaded, total) {
|
|
48567
|
+
var _this__progress_taskDetail, _url;
|
|
48568
|
+
var detail = (_this__progress_taskDetail = _this._progress.taskDetail)[_url = url] || (_this__progress_taskDetail[_url] = {});
|
|
48569
|
+
detail.loaded = loaded;
|
|
48570
|
+
detail.total = total;
|
|
48571
|
+
_this._setTaskDetailProgress(url, loaded, total);
|
|
48572
|
+
};
|
|
48573
|
+
this.contentRestorer = new GLTFContentRestorer(glTFResource);
|
|
48496
48574
|
}
|
|
48497
|
-
var _proto =
|
|
48498
|
-
_proto.
|
|
48499
|
-
var
|
|
48500
|
-
var
|
|
48501
|
-
|
|
48502
|
-
|
|
48575
|
+
var _proto = GLTFParserContext.prototype;
|
|
48576
|
+
_proto.get = function get(type, index) {
|
|
48577
|
+
var _this = this;
|
|
48578
|
+
var parser = GLTFParserContext._parsers[type];
|
|
48579
|
+
if (!parser) {
|
|
48580
|
+
return AssetPromise.resolve(null);
|
|
48581
|
+
}
|
|
48582
|
+
var cache = this._resourceCache;
|
|
48583
|
+
var cacheKey = index === undefined ? "" + type : type + ":" + index;
|
|
48584
|
+
var resource = cache.get(cacheKey);
|
|
48585
|
+
if (resource) {
|
|
48586
|
+
return resource;
|
|
48587
|
+
}
|
|
48588
|
+
var glTFSchemaKey = glTFSchemaMap[type];
|
|
48589
|
+
var isSubAsset = !!glTFResourceMap[type];
|
|
48590
|
+
if (glTFSchemaKey) {
|
|
48591
|
+
var glTFItems = this.glTF[glTFSchemaKey];
|
|
48592
|
+
if (glTFItems && (index === undefined || glTFItems[index])) {
|
|
48593
|
+
if (index === undefined) {
|
|
48594
|
+
resource = type === 8 ? glTFItems.map(function(_, index) {
|
|
48595
|
+
return _this.get(type, index);
|
|
48596
|
+
}) : AssetPromise.all(glTFItems.map(function(_, index) {
|
|
48597
|
+
return _this.get(type, index);
|
|
48598
|
+
}));
|
|
48599
|
+
} else {
|
|
48600
|
+
resource = parser.parse(this, index);
|
|
48601
|
+
isSubAsset && this._handleSubAsset(resource, type, index);
|
|
48602
|
+
}
|
|
48603
|
+
} else {
|
|
48604
|
+
resource = AssetPromise.resolve(null);
|
|
48605
|
+
}
|
|
48606
|
+
} else {
|
|
48607
|
+
resource = parser.parse(this, index);
|
|
48608
|
+
isSubAsset && this._handleSubAsset(resource, type, index);
|
|
48503
48609
|
}
|
|
48504
|
-
|
|
48610
|
+
if (_instanceof1(resource, AssetPromise)) {
|
|
48611
|
+
this._getPromises.push(resource);
|
|
48612
|
+
}
|
|
48613
|
+
cache.set(cacheKey, resource);
|
|
48614
|
+
return resource;
|
|
48505
48615
|
};
|
|
48506
|
-
|
|
48507
|
-
* Post message to worker.
|
|
48508
|
-
* @param message - Message which posted to worker
|
|
48509
|
-
* @returns Return a promise of message
|
|
48510
|
-
*/ _proto.postMessage = function postMessage(message) {
|
|
48616
|
+
_proto.parse = function parse() {
|
|
48511
48617
|
var _this = this;
|
|
48512
|
-
|
|
48513
|
-
|
|
48514
|
-
|
|
48515
|
-
|
|
48516
|
-
|
|
48517
|
-
|
|
48518
|
-
|
|
48519
|
-
|
|
48520
|
-
|
|
48521
|
-
|
|
48522
|
-
|
|
48523
|
-
|
|
48524
|
-
|
|
48525
|
-
_this.
|
|
48526
|
-
|
|
48527
|
-
|
|
48528
|
-
|
|
48529
|
-
|
|
48530
|
-
|
|
48618
|
+
var promise = this.get(0).then(function(json) {
|
|
48619
|
+
_this.glTF = json;
|
|
48620
|
+
_this.needAnimatorController = !!(json.skins || json.animations);
|
|
48621
|
+
return AssetPromise.all([
|
|
48622
|
+
_this.get(1),
|
|
48623
|
+
_this.get(5),
|
|
48624
|
+
_this.get(6),
|
|
48625
|
+
_this.get(7),
|
|
48626
|
+
_this.get(9),
|
|
48627
|
+
_this.get(10),
|
|
48628
|
+
_this.get(11),
|
|
48629
|
+
_this.get(2)
|
|
48630
|
+
]).then(function() {
|
|
48631
|
+
var glTFResource = _this.glTFResource;
|
|
48632
|
+
var animatorController = glTFResource.animatorController;
|
|
48633
|
+
if (animatorController) {
|
|
48634
|
+
var animator = glTFResource._defaultSceneRoot.addComponent(Animator);
|
|
48635
|
+
animator.animatorController = animatorController;
|
|
48636
|
+
}
|
|
48637
|
+
_this.resourceManager.addContentRestorer(_this.contentRestorer);
|
|
48638
|
+
return glTFResource;
|
|
48639
|
+
});
|
|
48531
48640
|
});
|
|
48641
|
+
this._addTaskCompletePromise(promise);
|
|
48642
|
+
return promise;
|
|
48532
48643
|
};
|
|
48533
48644
|
/**
|
|
48534
|
-
*
|
|
48535
|
-
*/ _proto.
|
|
48536
|
-
var workerItems = this._workerItems;
|
|
48537
|
-
for(var i = 0, n = workerItems.length; i < n; i++){
|
|
48538
|
-
var workerItem = workerItems[i];
|
|
48539
|
-
workerItem.worker.terminate();
|
|
48540
|
-
workerItem.reject = null;
|
|
48541
|
-
workerItem.resolve = null;
|
|
48542
|
-
}
|
|
48543
|
-
workerItems.length = 0;
|
|
48544
|
-
this._taskQueue.length = 0;
|
|
48545
|
-
this._workerStatus = 0;
|
|
48546
|
-
};
|
|
48547
|
-
_proto._initWorker = function _initWorker(workerId) {
|
|
48645
|
+
* @internal
|
|
48646
|
+
*/ _proto._addTaskCompletePromise = function _addTaskCompletePromise(taskPromise) {
|
|
48548
48647
|
var _this = this;
|
|
48549
|
-
|
|
48550
|
-
|
|
48551
|
-
|
|
48552
|
-
|
|
48553
|
-
|
|
48554
|
-
|
|
48555
|
-
};
|
|
48556
|
-
return worker;
|
|
48648
|
+
var task = this._progress.taskComplete;
|
|
48649
|
+
task.total += 1;
|
|
48650
|
+
taskPromise.finally(function() {
|
|
48651
|
+
_this._setTaskCompleteProgress(++task.loaded, task.total);
|
|
48652
|
+
}).catch(function(e) {
|
|
48653
|
+
// Need catch to avoid unhandled rejection
|
|
48557
48654
|
});
|
|
48558
48655
|
};
|
|
48559
|
-
_proto.
|
|
48560
|
-
|
|
48561
|
-
|
|
48562
|
-
|
|
48563
|
-
|
|
48564
|
-
|
|
48565
|
-
_proto._onMessage = function _onMessage(workerId, msg) {
|
|
48566
|
-
// onerror of web worker can't catch error in promise
|
|
48567
|
-
var error = msg.data.error;
|
|
48568
|
-
if (error) {
|
|
48569
|
-
this._workerItems[workerId].reject(error);
|
|
48656
|
+
_proto._handleSubAsset = function _handleSubAsset(resource, type, index) {
|
|
48657
|
+
var _this = this;
|
|
48658
|
+
var glTFResourceKey = glTFResourceMap[type];
|
|
48659
|
+
if (type === 8) {
|
|
48660
|
+
var _this_glTFResource, _glTFResourceKey;
|
|
48661
|
+
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
48570
48662
|
} else {
|
|
48571
|
-
this.
|
|
48663
|
+
var url = this.glTFResource.url;
|
|
48664
|
+
resource.then(function(item) {
|
|
48665
|
+
if (index == undefined) {
|
|
48666
|
+
_this.glTFResource[glTFResourceKey] = item;
|
|
48667
|
+
} else {
|
|
48668
|
+
var _this_glTFResource, _glTFResourceKey;
|
|
48669
|
+
((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
|
|
48670
|
+
}
|
|
48671
|
+
if (type === 7) {
|
|
48672
|
+
for(var i = 0, length = item.length; i < length; i++){
|
|
48673
|
+
var mesh = item[i];
|
|
48674
|
+
// @ts-ignore
|
|
48675
|
+
_this.resourceManager._onSubAssetSuccess(url, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
|
|
48676
|
+
}
|
|
48677
|
+
} else {
|
|
48678
|
+
// @ts-ignore
|
|
48679
|
+
_this.resourceManager._onSubAssetSuccess(url, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
|
|
48680
|
+
var _this_glTF_scene;
|
|
48681
|
+
if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
|
|
48682
|
+
// @ts-ignore
|
|
48683
|
+
_this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
|
|
48684
|
+
}
|
|
48685
|
+
}
|
|
48686
|
+
}).catch(function(e) {
|
|
48687
|
+
Logger.error("GLTFParserContext", "Failed to load " + glTFResourceKey + " " + index + ": " + e);
|
|
48688
|
+
});
|
|
48572
48689
|
}
|
|
48573
|
-
this._nextTask(workerId);
|
|
48574
48690
|
};
|
|
48575
|
-
|
|
48576
|
-
|
|
48577
|
-
var taskItem = this._taskQueue.shift();
|
|
48578
|
-
var workerItem = this._workerItems[workerId];
|
|
48579
|
-
workerItem.resolve = taskItem.resolve;
|
|
48580
|
-
workerItem.reject = taskItem.reject;
|
|
48581
|
-
workerItem.worker.postMessage(taskItem.message);
|
|
48582
|
-
} else {
|
|
48583
|
-
this._workerStatus ^= 1 << workerId;
|
|
48584
|
-
}
|
|
48691
|
+
GLTFParserContext.addParser = function addParser(parserType, parser) {
|
|
48692
|
+
this._parsers[parserType] = parser;
|
|
48585
48693
|
};
|
|
48586
|
-
return
|
|
48694
|
+
return GLTFParserContext;
|
|
48587
48695
|
}();
|
|
48588
|
-
|
|
48589
|
-
|
|
48590
|
-
|
|
48591
|
-
|
|
48592
|
-
|
|
48593
|
-
|
|
48594
|
-
|
|
48595
|
-
|
|
48596
|
-
|
|
48597
|
-
|
|
48598
|
-
|
|
48599
|
-
|
|
48600
|
-
|
|
48696
|
+
GLTFParserContext._parsers = {};
|
|
48697
|
+
/**
|
|
48698
|
+
* @internal
|
|
48699
|
+
*/ var BufferInfo = function BufferInfo(data, interleaved, stride) {
|
|
48700
|
+
this.data = data;
|
|
48701
|
+
this.interleaved = interleaved;
|
|
48702
|
+
this.stride = stride;
|
|
48703
|
+
this.vertexBindingInfos = {};
|
|
48704
|
+
};
|
|
48705
|
+
var GLTFParserType = /*#__PURE__*/ function(GLTFParserType) {
|
|
48706
|
+
GLTFParserType[GLTFParserType["Schema"] = 0] = "Schema";
|
|
48707
|
+
GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
|
|
48708
|
+
GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
|
|
48709
|
+
GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
|
|
48710
|
+
GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
|
|
48711
|
+
GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
|
|
48712
|
+
GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
|
|
48713
|
+
GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
|
|
48714
|
+
GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
|
|
48715
|
+
GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
|
|
48716
|
+
GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
|
|
48717
|
+
GLTFParserType[GLTFParserType["AnimatorController"] = 11] = "AnimatorController";
|
|
48718
|
+
return GLTFParserType;
|
|
48719
|
+
}({});
|
|
48720
|
+
var _obj$1;
|
|
48721
|
+
var glTFSchemaMap = (_obj$1 = {}, _obj$1[2] = "scenes", _obj$1[3] = "buffers", _obj$1[5] = "textures", _obj$1[6] = "materials", _obj$1[7] = "meshes", _obj$1[8] = "nodes", _obj$1[9] = "skins", _obj$1[10] = "animations", _obj$1[4] = "bufferViews", _obj$1);
|
|
48722
|
+
var _obj1;
|
|
48723
|
+
var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[5] = "textures", _obj1[6] = "materials", _obj1[7] = "meshes", _obj1[8] = "entities", _obj1[9] = "skins", _obj1[10] = "animations", _obj1[11] = "animatorController", _obj1);
|
|
48724
|
+
function registerGLTFParser(pipeline) {
|
|
48725
|
+
return function(Parser) {
|
|
48726
|
+
var parser = new Parser();
|
|
48727
|
+
GLTFParserContext.addParser(pipeline, parser);
|
|
48601
48728
|
};
|
|
48602
|
-
|
|
48603
|
-
|
|
48604
|
-
|
|
48605
|
-
|
|
48606
|
-
|
|
48607
|
-
|
|
48608
|
-
|
|
48609
|
-
|
|
48610
|
-
|
|
48611
|
-
|
|
48612
|
-
|
|
48613
|
-
|
|
48614
|
-
type: "init",
|
|
48615
|
-
transcoderWasm: wasmBuffer
|
|
48616
|
-
};
|
|
48617
|
-
worker.addEventListener("message", onMessage);
|
|
48618
|
-
worker.postMessage(msg);
|
|
48619
|
-
});
|
|
48620
|
-
});
|
|
48621
|
-
return this._transcodeWorkerPool.prepareWorker();
|
|
48729
|
+
}
|
|
48730
|
+
/**
|
|
48731
|
+
* @internal
|
|
48732
|
+
*/ var GLTFUtils = /*#__PURE__*/ function() {
|
|
48733
|
+
function GLTFUtils() {}
|
|
48734
|
+
GLTFUtils.floatBufferToVector2Array = function floatBufferToVector2Array(buffer) {
|
|
48735
|
+
var bufferLen = buffer.length;
|
|
48736
|
+
var array = new Array(bufferLen / 2);
|
|
48737
|
+
for(var i = 0; i < bufferLen; i += 2){
|
|
48738
|
+
array[i / 2] = new Vector2(buffer[i], buffer[i + 1]);
|
|
48739
|
+
}
|
|
48740
|
+
return array;
|
|
48622
48741
|
};
|
|
48623
|
-
|
|
48624
|
-
|
|
48625
|
-
|
|
48626
|
-
|
|
48627
|
-
|
|
48628
|
-
if (!initPromise) {
|
|
48629
|
-
initPromise = new Promise(function(resolve, reject) {
|
|
48630
|
-
var BasisModule = {
|
|
48631
|
-
wasmBinary: wasmBinary,
|
|
48632
|
-
onRuntimeInitialized: function onRuntimeInitialized() {
|
|
48633
|
-
return resolve(BasisModule);
|
|
48634
|
-
},
|
|
48635
|
-
onAbort: reject
|
|
48636
|
-
};
|
|
48637
|
-
self["BASIS"](BasisModule);
|
|
48638
|
-
}).then(function(BasisModule) {
|
|
48639
|
-
BasisModule.initializeBasis();
|
|
48640
|
-
return BasisModule.KTX2File;
|
|
48641
|
-
});
|
|
48742
|
+
GLTFUtils.floatBufferToVector3Array = function floatBufferToVector3Array(buffer) {
|
|
48743
|
+
var bufferLen = buffer.length;
|
|
48744
|
+
var array = new Array(bufferLen / 3);
|
|
48745
|
+
for(var i = 0; i < bufferLen; i += 3){
|
|
48746
|
+
array[i / 3] = new Vector3(buffer[i], buffer[i + 1], buffer[i + 2]);
|
|
48642
48747
|
}
|
|
48643
|
-
return
|
|
48748
|
+
return array;
|
|
48644
48749
|
};
|
|
48645
|
-
|
|
48646
|
-
var
|
|
48647
|
-
|
|
48648
|
-
|
|
48649
|
-
|
|
48650
|
-
self.postMessage("init-completed");
|
|
48651
|
-
}).catch(function(e) {
|
|
48652
|
-
return self.postMessage({
|
|
48653
|
-
error: e
|
|
48654
|
-
});
|
|
48655
|
-
});
|
|
48656
|
-
break;
|
|
48657
|
-
case "transcode":
|
|
48658
|
-
init().then(function(KTX2File) {
|
|
48659
|
-
var result = transcode(message.buffer, message.format, KTX2File);
|
|
48660
|
-
// @ts-ignore
|
|
48661
|
-
result.type = "transcoded";
|
|
48662
|
-
self.postMessage(result);
|
|
48663
|
-
}).catch(function(e) {
|
|
48664
|
-
return self.postMessage({
|
|
48665
|
-
error: e
|
|
48666
|
-
});
|
|
48667
|
-
});
|
|
48668
|
-
break;
|
|
48750
|
+
GLTFUtils.floatBufferToVector4Array = function floatBufferToVector4Array(buffer) {
|
|
48751
|
+
var bufferLen = buffer.length;
|
|
48752
|
+
var array = new Array(bufferLen / 4);
|
|
48753
|
+
for(var i = 0; i < bufferLen; i += 4){
|
|
48754
|
+
array[i / 4] = new Vector4(buffer[i], buffer[i + 1], buffer[i + 2], buffer[i + 3]);
|
|
48669
48755
|
}
|
|
48756
|
+
return array;
|
|
48670
48757
|
};
|
|
48671
|
-
|
|
48672
|
-
|
|
48673
|
-
|
|
48674
|
-
|
|
48675
|
-
|
|
48676
|
-
|
|
48677
|
-
|
|
48678
|
-
|
|
48679
|
-
|
|
48680
|
-
|
|
48681
|
-
|
|
48682
|
-
onAbort: reject
|
|
48683
|
-
};
|
|
48684
|
-
self["BASIS"](BasisModule);
|
|
48685
|
-
}).then(function(BasisModule) {
|
|
48686
|
-
BasisModule.initializeBasis();
|
|
48687
|
-
return BasisModule.KTX2File;
|
|
48688
|
-
});
|
|
48758
|
+
GLTFUtils.floatBufferToColorArray = function floatBufferToColorArray(buffer, isColor3) {
|
|
48759
|
+
var bufferLen = buffer.length;
|
|
48760
|
+
var colors = new Array(bufferLen / (isColor3 ? 3 : 4));
|
|
48761
|
+
if (isColor3) {
|
|
48762
|
+
for(var i = 0; i < bufferLen; i += 3){
|
|
48763
|
+
colors[i / 3] = new Color(buffer[i], buffer[i + 1], buffer[i + 2], 1.0);
|
|
48764
|
+
}
|
|
48765
|
+
} else {
|
|
48766
|
+
for(var i1 = 0; i1 < bufferLen; i1 += 4){
|
|
48767
|
+
colors[i1 / 4] = new Color(buffer[i1], buffer[i1 + 1], buffer[i1 + 2], buffer[i1 + 3]);
|
|
48768
|
+
}
|
|
48689
48769
|
}
|
|
48690
|
-
return
|
|
48770
|
+
return colors;
|
|
48691
48771
|
};
|
|
48692
|
-
|
|
48693
|
-
|
|
48694
|
-
|
|
48695
|
-
|
|
48696
|
-
|
|
48697
|
-
|
|
48698
|
-
|
|
48699
|
-
|
|
48700
|
-
|
|
48701
|
-
|
|
48702
|
-
|
|
48703
|
-
|
|
48704
|
-
|
|
48705
|
-
|
|
48706
|
-
|
|
48707
|
-
|
|
48708
|
-
|
|
48709
|
-
|
|
48710
|
-
return 22;
|
|
48711
|
-
case 9:
|
|
48712
|
-
return 23;
|
|
48713
|
-
case 10:
|
|
48714
|
-
return 25;
|
|
48772
|
+
/**
|
|
48773
|
+
* Get the number of bytes occupied by accessor type.
|
|
48774
|
+
*/ GLTFUtils.getAccessorTypeSize = function getAccessorTypeSize(accessorType) {
|
|
48775
|
+
switch(accessorType){
|
|
48776
|
+
case AccessorType.SCALAR:
|
|
48777
|
+
return 1;
|
|
48778
|
+
case AccessorType.VEC2:
|
|
48779
|
+
return 2;
|
|
48780
|
+
case AccessorType.VEC3:
|
|
48781
|
+
return 3;
|
|
48782
|
+
case AccessorType.VEC4:
|
|
48783
|
+
return 4;
|
|
48784
|
+
case AccessorType.MAT2:
|
|
48785
|
+
return 4;
|
|
48786
|
+
case AccessorType.MAT3:
|
|
48787
|
+
return 9;
|
|
48788
|
+
case AccessorType.MAT4:
|
|
48789
|
+
return 16;
|
|
48715
48790
|
}
|
|
48716
|
-
}
|
|
48717
|
-
|
|
48718
|
-
|
|
48719
|
-
|
|
48720
|
-
|
|
48721
|
-
|
|
48791
|
+
};
|
|
48792
|
+
/**
|
|
48793
|
+
* Get the TypedArray corresponding to the component type.
|
|
48794
|
+
*/ GLTFUtils.getComponentType = function getComponentType(componentType) {
|
|
48795
|
+
switch(componentType){
|
|
48796
|
+
case AccessorComponentType.BYTE:
|
|
48797
|
+
return Int8Array;
|
|
48798
|
+
case AccessorComponentType.UNSIGNED_BYTE:
|
|
48799
|
+
return Uint8Array;
|
|
48800
|
+
case AccessorComponentType.SHORT:
|
|
48801
|
+
return Int16Array;
|
|
48802
|
+
case AccessorComponentType.UNSIGNED_SHORT:
|
|
48803
|
+
return Uint16Array;
|
|
48804
|
+
case AccessorComponentType.UNSIGNED_INT:
|
|
48805
|
+
return Uint32Array;
|
|
48806
|
+
case AccessorComponentType.FLOAT:
|
|
48807
|
+
return Float32Array;
|
|
48722
48808
|
}
|
|
48723
|
-
|
|
48724
|
-
|
|
48725
|
-
|
|
48726
|
-
|
|
48727
|
-
|
|
48809
|
+
};
|
|
48810
|
+
GLTFUtils.getNormalizedComponentScale = function getNormalizedComponentScale(componentType) {
|
|
48811
|
+
// Reference: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data
|
|
48812
|
+
switch(componentType){
|
|
48813
|
+
case AccessorComponentType.BYTE:
|
|
48814
|
+
return 1 / 127;
|
|
48815
|
+
case AccessorComponentType.UNSIGNED_BYTE:
|
|
48816
|
+
return 1 / 255;
|
|
48817
|
+
case AccessorComponentType.SHORT:
|
|
48818
|
+
return 1 / 32767;
|
|
48819
|
+
case AccessorComponentType.UNSIGNED_SHORT:
|
|
48820
|
+
return 1 / 65535;
|
|
48821
|
+
default:
|
|
48822
|
+
throw new Error("Galacean.GLTFLoader: Unsupported normalized accessor component type.");
|
|
48728
48823
|
}
|
|
48729
|
-
|
|
48730
|
-
|
|
48731
|
-
|
|
48732
|
-
|
|
48733
|
-
|
|
48734
|
-
|
|
48735
|
-
|
|
48736
|
-
|
|
48737
|
-
|
|
48738
|
-
|
|
48739
|
-
|
|
48740
|
-
|
|
48741
|
-
|
|
48742
|
-
|
|
48743
|
-
|
|
48744
|
-
|
|
48745
|
-
|
|
48746
|
-
|
|
48747
|
-
|
|
48748
|
-
|
|
48749
|
-
|
|
48750
|
-
|
|
48751
|
-
|
|
48752
|
-
|
|
48753
|
-
|
|
48754
|
-
|
|
48755
|
-
|
|
48756
|
-
|
|
48757
|
-
|
|
48758
|
-
|
|
48759
|
-
|
|
48760
|
-
|
|
48761
|
-
|
|
48762
|
-
width = mipWidth = levelInfo.width;
|
|
48763
|
-
height = mipHeight = levelInfo.height;
|
|
48764
|
-
console.warn("KTX2 transcode to BC will resize to width: " + width + ", height: " + height + ". You'd better use an image whose size if multiple of 4.");
|
|
48824
|
+
};
|
|
48825
|
+
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
48826
|
+
var componentType = accessor.componentType;
|
|
48827
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
48828
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
48829
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
48830
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
48831
|
+
var accessorCount = accessor.count;
|
|
48832
|
+
var promise;
|
|
48833
|
+
if (accessor.bufferView !== undefined) {
|
|
48834
|
+
var bufferViewIndex = accessor.bufferView;
|
|
48835
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
48836
|
+
promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
48837
|
+
var bufferIndex = bufferView.buffer;
|
|
48838
|
+
var _bufferViewData_byteOffset;
|
|
48839
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
48840
|
+
var _accessor_byteOffset;
|
|
48841
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
48842
|
+
var bufferStride = bufferView.byteStride;
|
|
48843
|
+
var bufferInfo;
|
|
48844
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
48845
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
48846
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
48847
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
48848
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
48849
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
48850
|
+
if (!bufferInfo) {
|
|
48851
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
48852
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
48853
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
48854
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
48855
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
48856
|
+
}
|
|
48765
48857
|
} else {
|
|
48766
|
-
|
|
48767
|
-
|
|
48768
|
-
|
|
48769
|
-
|
|
48770
|
-
|
|
48771
|
-
if (targetFormat === 10) {
|
|
48772
|
-
dst = new Uint16Array(dst.buffer, dst.byteOffset, dst.byteLength / Uint16Array.BYTES_PER_ELEMENT);
|
|
48773
|
-
}
|
|
48774
|
-
if (!status) {
|
|
48775
|
-
cleanup();
|
|
48776
|
-
throw new Error("transcodeImage failed.");
|
|
48858
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
48859
|
+
var count1 = accessorCount * dataElementSize;
|
|
48860
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
48861
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
48862
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
48777
48863
|
}
|
|
48778
|
-
|
|
48779
|
-
}
|
|
48780
|
-
|
|
48781
|
-
|
|
48782
|
-
|
|
48783
|
-
|
|
48784
|
-
|
|
48864
|
+
return bufferInfo;
|
|
48865
|
+
}).catch(function(e) {
|
|
48866
|
+
Logger.error("GLTFUtil getAccessorBuffer error", e);
|
|
48867
|
+
});
|
|
48868
|
+
} else {
|
|
48869
|
+
var count = accessorCount * dataElementSize;
|
|
48870
|
+
var data = new TypedArray(count);
|
|
48871
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
48872
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
48873
|
+
promise = AssetPromise.resolve(bufferInfo);
|
|
48874
|
+
}
|
|
48875
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
48876
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
48877
|
+
return bufferInfo;
|
|
48878
|
+
});
|
|
48879
|
+
}) : promise;
|
|
48880
|
+
};
|
|
48881
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
48882
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
48883
|
+
var stride = buffer.length / count;
|
|
48884
|
+
var vertices = new Array(count);
|
|
48885
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
48886
|
+
for(var i = 0; i < count; i++){
|
|
48887
|
+
var index = baseOffset + i * stride;
|
|
48888
|
+
vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
48785
48889
|
}
|
|
48786
|
-
|
|
48787
|
-
}
|
|
48788
|
-
cleanup();
|
|
48789
|
-
return {
|
|
48790
|
-
faces: faces,
|
|
48791
|
-
width: width,
|
|
48792
|
-
height: height,
|
|
48793
|
-
hasAlpha: hasAlpha,
|
|
48794
|
-
faceCount: faceCount,
|
|
48795
|
-
format: format
|
|
48890
|
+
return vertices;
|
|
48796
48891
|
};
|
|
48797
|
-
|
|
48798
|
-
|
|
48799
|
-
|
|
48800
|
-
|
|
48801
|
-
|
|
48802
|
-
|
|
48803
|
-
|
|
48804
|
-
|
|
48805
|
-
var
|
|
48806
|
-
|
|
48807
|
-
|
|
48808
|
-
|
|
48809
|
-
|
|
48810
|
-
|
|
48811
|
-
|
|
48812
|
-
|
|
48892
|
+
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
48893
|
+
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
48894
|
+
var arrayBuffer = buffers[bufferView.buffer];
|
|
48895
|
+
return arrayBuffer.slice(byteOffset, byteOffset + bufferView.byteLength);
|
|
48896
|
+
};
|
|
48897
|
+
/**
|
|
48898
|
+
* Get accessor data.
|
|
48899
|
+
*/ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
|
|
48900
|
+
var restoreInfo = bufferInfo.restoreInfo;
|
|
48901
|
+
var bufferViews = context.glTF.bufferViews;
|
|
48902
|
+
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
48903
|
+
var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
|
|
48904
|
+
var data = bufferInfo.data.slice();
|
|
48905
|
+
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
48906
|
+
var indicesBufferView = bufferViews[indices.bufferView];
|
|
48907
|
+
var valuesBufferView = bufferViews[values.bufferView];
|
|
48908
|
+
return AssetPromise.all([
|
|
48909
|
+
context.get(GLTFParserType.BufferView, indices.bufferView),
|
|
48910
|
+
context.get(GLTFParserType.BufferView, values.bufferView)
|
|
48813
48911
|
]).then(function(param) {
|
|
48814
|
-
var
|
|
48815
|
-
|
|
48816
|
-
|
|
48817
|
-
|
|
48818
|
-
|
|
48819
|
-
|
|
48820
|
-
|
|
48821
|
-
|
|
48822
|
-
|
|
48823
|
-
|
|
48824
|
-
|
|
48825
|
-
|
|
48826
|
-
|
|
48827
|
-
|
|
48828
|
-
|
|
48829
|
-
|
|
48830
|
-
|
|
48831
|
-
|
|
48832
|
-
|
|
48833
|
-
|
|
48834
|
-
|
|
48835
|
-
var transcodeString = funcCode.substring(funcCode.indexOf("{"), funcCode.lastIndexOf("}") + 1);
|
|
48836
|
-
var workerCode = "\n " + jsCode + "\n " + transcode.toString() + "\n " + transcodeString + "\n ";
|
|
48837
|
-
var workerURL = URL.createObjectURL(new Blob([
|
|
48838
|
-
workerCode
|
|
48839
|
-
], {
|
|
48840
|
-
type: "application/javascript"
|
|
48841
|
-
}));
|
|
48842
|
-
return _this._createTranscodePool(workerURL, wasmBuffer);
|
|
48912
|
+
var indicesUint8Array = param[0], valuesUin8Array = param[1];
|
|
48913
|
+
var _indices_byteOffset, _indicesUint8Array_byteOffset;
|
|
48914
|
+
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
|
|
48915
|
+
var indicesByteLength = indicesUint8Array.byteLength;
|
|
48916
|
+
var _values_byteOffset, _valuesUin8Array_byteOffset;
|
|
48917
|
+
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
|
|
48918
|
+
var valuesByteLength = valuesUin8Array.byteLength;
|
|
48919
|
+
restoreInfo.typeSize = accessorTypeSize;
|
|
48920
|
+
restoreInfo.sparseCount = count;
|
|
48921
|
+
var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
|
|
48922
|
+
var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
|
|
48923
|
+
var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
|
|
48924
|
+
restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
|
|
48925
|
+
var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
|
|
48926
|
+
var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
|
|
48927
|
+
restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
|
|
48928
|
+
for(var i = 0; i < count; i++){
|
|
48929
|
+
var replaceIndex = indicesArray[i];
|
|
48930
|
+
for(var j = 0; j < accessorTypeSize; j++){
|
|
48931
|
+
data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
|
|
48932
|
+
}
|
|
48843
48933
|
}
|
|
48934
|
+
bufferInfo.data = data;
|
|
48935
|
+
}).catch(function(e) {
|
|
48936
|
+
Logger.error("GLTFUtil processingSparseData error", e);
|
|
48844
48937
|
});
|
|
48845
48938
|
};
|
|
48846
|
-
|
|
48847
|
-
|
|
48848
|
-
|
|
48849
|
-
return
|
|
48850
|
-
|
|
48851
|
-
|
|
48852
|
-
|
|
48853
|
-
|
|
48854
|
-
format: format,
|
|
48855
|
-
type: "transcode"
|
|
48856
|
-
});
|
|
48939
|
+
GLTFUtils.getIndexFormat = function getIndexFormat(type) {
|
|
48940
|
+
switch(type){
|
|
48941
|
+
case AccessorComponentType.UNSIGNED_BYTE:
|
|
48942
|
+
return IndexFormat.UInt8;
|
|
48943
|
+
case AccessorComponentType.UNSIGNED_SHORT:
|
|
48944
|
+
return IndexFormat.UInt16;
|
|
48945
|
+
case AccessorComponentType.UNSIGNED_INT:
|
|
48946
|
+
return IndexFormat.UInt32;
|
|
48857
48947
|
}
|
|
48858
48948
|
};
|
|
48859
|
-
|
|
48860
|
-
|
|
48861
|
-
|
|
48862
|
-
|
|
48863
|
-
|
|
48864
|
-
|
|
48865
|
-
|
|
48866
|
-
|
|
48867
|
-
|
|
48868
|
-
|
|
48869
|
-
|
|
48870
|
-
|
|
48871
|
-
|
|
48872
|
-
|
|
48949
|
+
GLTFUtils.getElementFormat = function getElementFormat(type, size, normalized) {
|
|
48950
|
+
if (normalized === void 0) normalized = false;
|
|
48951
|
+
if (type == AccessorComponentType.FLOAT) {
|
|
48952
|
+
switch(size){
|
|
48953
|
+
case 1:
|
|
48954
|
+
return VertexElementFormat.Float;
|
|
48955
|
+
case 2:
|
|
48956
|
+
return VertexElementFormat.Vector2;
|
|
48957
|
+
case 3:
|
|
48958
|
+
return VertexElementFormat.Vector3;
|
|
48959
|
+
case 4:
|
|
48960
|
+
return VertexElementFormat.Vector4;
|
|
48961
|
+
}
|
|
48962
|
+
}
|
|
48963
|
+
if (type == AccessorComponentType.SHORT) {
|
|
48964
|
+
switch(size){
|
|
48965
|
+
case 2:
|
|
48966
|
+
return normalized ? VertexElementFormat.NormalizedShort2 : VertexElementFormat.Short2;
|
|
48967
|
+
case 3:
|
|
48968
|
+
case 4:
|
|
48969
|
+
return normalized ? VertexElementFormat.NormalizedShort4 : VertexElementFormat.Short4;
|
|
48970
|
+
}
|
|
48971
|
+
}
|
|
48972
|
+
if (type == AccessorComponentType.UNSIGNED_SHORT) {
|
|
48973
|
+
switch(size){
|
|
48974
|
+
case 2:
|
|
48975
|
+
return normalized ? VertexElementFormat.NormalizedUShort2 : VertexElementFormat.UShort2;
|
|
48976
|
+
case 3:
|
|
48977
|
+
case 4:
|
|
48978
|
+
return normalized ? VertexElementFormat.NormalizedUShort4 : VertexElementFormat.UShort4;
|
|
48979
|
+
}
|
|
48980
|
+
}
|
|
48981
|
+
if (type == AccessorComponentType.BYTE) {
|
|
48982
|
+
switch(size){
|
|
48983
|
+
case 2:
|
|
48984
|
+
case 3:
|
|
48985
|
+
case 4:
|
|
48986
|
+
return normalized ? VertexElementFormat.NormalizedByte4 : VertexElementFormat.Byte4;
|
|
48987
|
+
}
|
|
48988
|
+
}
|
|
48989
|
+
if (type == AccessorComponentType.UNSIGNED_BYTE) {
|
|
48990
|
+
switch(size){
|
|
48991
|
+
case 2:
|
|
48992
|
+
case 3:
|
|
48993
|
+
case 4:
|
|
48994
|
+
return normalized ? VertexElementFormat.NormalizedUByte4 : VertexElementFormat.UByte4;
|
|
48873
48995
|
}
|
|
48874
|
-
return KTX2Loader._getBinomialLLCTranscoder(options.workerCount).init();
|
|
48875
48996
|
}
|
|
48876
48997
|
};
|
|
48877
48998
|
/**
|
|
48878
|
-
*
|
|
48879
|
-
*/
|
|
48880
|
-
return new
|
|
48881
|
-
var
|
|
48882
|
-
|
|
48999
|
+
* Load image buffer
|
|
49000
|
+
*/ GLTFUtils.loadImageBuffer = function loadImageBuffer(imageBuffer, type) {
|
|
49001
|
+
return new Promise(function(resolve, reject) {
|
|
49002
|
+
var blob = new window.Blob([
|
|
49003
|
+
imageBuffer
|
|
49004
|
+
], {
|
|
49005
|
+
type: type
|
|
48883
49006
|
});
|
|
48884
|
-
var
|
|
48885
|
-
|
|
48886
|
-
|
|
48887
|
-
|
|
48888
|
-
|
|
48889
|
-
|
|
48890
|
-
|
|
48891
|
-
|
|
48892
|
-
|
|
49007
|
+
var img = new Image();
|
|
49008
|
+
img.onerror = function() {
|
|
49009
|
+
reject(new Error("Failed to load image buffer"));
|
|
49010
|
+
};
|
|
49011
|
+
img.onload = function() {
|
|
49012
|
+
// Call requestAnimationFrame to avoid iOS's bug.
|
|
49013
|
+
requestAnimationFrame(function() {
|
|
49014
|
+
resolve(img);
|
|
49015
|
+
img.onload = null;
|
|
49016
|
+
img.onerror = null;
|
|
49017
|
+
img.onabort = null;
|
|
48893
49018
|
});
|
|
48894
|
-
}
|
|
49019
|
+
};
|
|
49020
|
+
img.crossOrigin = "anonymous";
|
|
49021
|
+
img.src = URL.createObjectURL(blob);
|
|
48895
49022
|
});
|
|
48896
49023
|
};
|
|
48897
49024
|
/**
|
|
48898
|
-
*
|
|
48899
|
-
|
|
48900
|
-
|
|
48901
|
-
|
|
48902
|
-
|
|
48903
|
-
|
|
48904
|
-
|
|
48905
|
-
|
|
48906
|
-
|
|
48907
|
-
var
|
|
48908
|
-
|
|
48909
|
-
var
|
|
48910
|
-
|
|
48911
|
-
|
|
48912
|
-
|
|
49025
|
+
* Parse the glb format.
|
|
49026
|
+
*/ GLTFUtils.parseGLB = function parseGLB(context, originBuffer) {
|
|
49027
|
+
var UINT32_LENGTH = 4;
|
|
49028
|
+
var GLB_HEADER_MAGIC = 0x46546c67; // 'glTF'
|
|
49029
|
+
var GLB_HEADER_LENGTH = 12;
|
|
49030
|
+
var GLB_CHUNK_TYPES = {
|
|
49031
|
+
JSON: 0x4e4f534a,
|
|
49032
|
+
BIN: 0x004e4942
|
|
49033
|
+
};
|
|
49034
|
+
var dataView = new DataView(originBuffer);
|
|
49035
|
+
// Read header
|
|
49036
|
+
var header = {
|
|
49037
|
+
magic: dataView.getUint32(0, true),
|
|
49038
|
+
version: dataView.getUint32(UINT32_LENGTH, true),
|
|
49039
|
+
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
49040
|
+
};
|
|
49041
|
+
// Return the original buffer if it is not a glb
|
|
49042
|
+
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
48913
49043
|
return {
|
|
48914
|
-
|
|
48915
|
-
engine: engine,
|
|
48916
|
-
result: result,
|
|
48917
|
-
targetFormat: targetFormat,
|
|
48918
|
-
params: ktx2Container.keyValue["GalaceanTextureParams"]
|
|
49044
|
+
originBuffer: originBuffer
|
|
48919
49045
|
};
|
|
48920
|
-
});
|
|
48921
|
-
};
|
|
48922
|
-
/** @internal */ KTX2Loader._createTextureByBuffer = function _createTextureByBuffer(engine, isSRGB, transcodeResult, targetFormat, params, restoredTexture) {
|
|
48923
|
-
var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
|
|
48924
|
-
var faceCount = faces.length;
|
|
48925
|
-
var mipmaps = faces[0];
|
|
48926
|
-
var mipmap = mipmaps.length > 1;
|
|
48927
|
-
var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
|
|
48928
|
-
var texture;
|
|
48929
|
-
if (faceCount !== 6) {
|
|
48930
|
-
texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap, isSRGB);
|
|
48931
|
-
for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
|
|
48932
|
-
var data = mipmaps[mipLevel].data;
|
|
48933
|
-
texture.setPixelBuffer(data, mipLevel);
|
|
48934
|
-
}
|
|
48935
|
-
} else {
|
|
48936
|
-
texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap, isSRGB);
|
|
48937
|
-
for(var i = 0; i < faces.length; i++){
|
|
48938
|
-
var faceData = faces[i];
|
|
48939
|
-
for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
|
|
48940
|
-
texture.setPixelBuffer(TextureCubeFace.PositiveX + i, faceData[mipLevel1].data, mipLevel1);
|
|
48941
|
-
}
|
|
48942
|
-
}
|
|
48943
49046
|
}
|
|
48944
|
-
|
|
48945
|
-
|
|
48946
|
-
|
|
48947
|
-
|
|
48948
|
-
|
|
49047
|
+
// Read main data
|
|
49048
|
+
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
49049
|
+
var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
|
|
49050
|
+
// Read glTF json
|
|
49051
|
+
if (chunkType !== GLB_CHUNK_TYPES.JSON) {
|
|
49052
|
+
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
49053
|
+
return null;
|
|
48949
49054
|
}
|
|
48950
|
-
|
|
49055
|
+
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
49056
|
+
var glTF = JSON.parse(Utils.decodeText(glTFData));
|
|
49057
|
+
// Read all buffers
|
|
49058
|
+
var buffers = [];
|
|
49059
|
+
var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
|
|
49060
|
+
var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
|
|
49061
|
+
while(byteOffset < header.length){
|
|
49062
|
+
chunkLength = dataView.getUint32(byteOffset, true);
|
|
49063
|
+
chunkType = dataView.getUint32(byteOffset + UINT32_LENGTH, true);
|
|
49064
|
+
if (chunkType !== GLB_CHUNK_TYPES.BIN) {
|
|
49065
|
+
console.error("Invalid glb chunk type. Expected 0x004E4942, found 0x" + chunkType.toString(16));
|
|
49066
|
+
return null;
|
|
49067
|
+
}
|
|
49068
|
+
var currentOffset = byteOffset + 2 * UINT32_LENGTH;
|
|
49069
|
+
var buffer = originBuffer.slice(currentOffset, currentOffset + chunkLength);
|
|
49070
|
+
buffers.push(buffer);
|
|
49071
|
+
restoreGLBBufferSlice.push(new Vector2(currentOffset, chunkLength));
|
|
49072
|
+
byteOffset += chunkLength + 2 * UINT32_LENGTH;
|
|
49073
|
+
}
|
|
49074
|
+
return {
|
|
49075
|
+
glTF: glTF,
|
|
49076
|
+
buffers: buffers
|
|
49077
|
+
};
|
|
48951
49078
|
};
|
|
48952
|
-
|
|
48953
|
-
var
|
|
48954
|
-
|
|
48955
|
-
|
|
48956
|
-
if (targetFormat === KTX2TargetFormat.PVRTC && (!MathUtil.isPowerOf2(pixelWidth) || !MathUtil.isPowerOf2(pixelHeight) || pixelWidth !== pixelHeight)) {
|
|
48957
|
-
Logger.warn("PVRTC image need power of 2 and width===height, downgrade to RGBA8");
|
|
48958
|
-
return KTX2TargetFormat.R8G8B8A8;
|
|
49079
|
+
GLTFUtils.parseSampler = function parseSampler(texture, samplerInfo) {
|
|
49080
|
+
var filterMode = samplerInfo.filterMode, wrapModeU = samplerInfo.wrapModeU, wrapModeV = samplerInfo.wrapModeV;
|
|
49081
|
+
if (filterMode !== undefined) {
|
|
49082
|
+
texture.filterMode = filterMode;
|
|
48959
49083
|
}
|
|
48960
|
-
if (
|
|
48961
|
-
|
|
48962
|
-
|
|
49084
|
+
if (wrapModeU !== undefined) {
|
|
49085
|
+
texture.wrapModeU = wrapModeU;
|
|
49086
|
+
}
|
|
49087
|
+
if (wrapModeV !== undefined) {
|
|
49088
|
+
texture.wrapModeV = wrapModeV;
|
|
48963
49089
|
}
|
|
48964
|
-
return targetFormat;
|
|
48965
49090
|
};
|
|
48966
|
-
|
|
48967
|
-
|
|
48968
|
-
|
|
48969
|
-
|
|
48970
|
-
|
|
48971
|
-
if (
|
|
48972
|
-
|
|
48973
|
-
if (renderer.canIUse(capabilities[j])) {
|
|
48974
|
-
return format;
|
|
48975
|
-
}
|
|
48976
|
-
}
|
|
49091
|
+
GLTFUtils.getSamplerInfo = function getSamplerInfo(sampler) {
|
|
49092
|
+
var minFilter = sampler.minFilter, magFilter = sampler.magFilter, wrapS = sampler.wrapS, wrapT = sampler.wrapT;
|
|
49093
|
+
var info = {};
|
|
49094
|
+
if (minFilter || magFilter) {
|
|
49095
|
+
info.mipmap = minFilter >= TextureMinFilter.NEAREST_MIPMAP_NEAREST;
|
|
49096
|
+
if (magFilter === TextureMagFilter.NEAREST) {
|
|
49097
|
+
info.filterMode = TextureFilterMode.Point;
|
|
48977
49098
|
} else {
|
|
48978
|
-
|
|
48979
|
-
|
|
48980
|
-
|
|
48981
|
-
|
|
48982
|
-
case KTX2TargetFormat.R8G8:
|
|
48983
|
-
if (renderer.isWebGL2) return format;
|
|
49099
|
+
if (minFilter <= TextureMinFilter.LINEAR_MIPMAP_NEAREST) {
|
|
49100
|
+
info.filterMode = TextureFilterMode.Bilinear;
|
|
49101
|
+
} else {
|
|
49102
|
+
info.filterMode = TextureFilterMode.Trilinear;
|
|
48984
49103
|
}
|
|
48985
49104
|
}
|
|
48986
49105
|
}
|
|
48987
|
-
|
|
48988
|
-
|
|
48989
|
-
KTX2Loader._getBinomialLLCTranscoder = function _getBinomialLLCTranscoder(workerCount) {
|
|
48990
|
-
if (workerCount === void 0) workerCount = 4;
|
|
48991
|
-
var _this__binomialLLCTranscoder;
|
|
48992
|
-
return (_this__binomialLLCTranscoder = this._binomialLLCTranscoder) != null ? _this__binomialLLCTranscoder : this._binomialLLCTranscoder = new BinomialLLCTranscoder(workerCount);
|
|
48993
|
-
};
|
|
48994
|
-
KTX2Loader._getEngineTextureFormat = function _getEngineTextureFormat(basisFormat, transcodeResult) {
|
|
48995
|
-
var hasAlpha = transcodeResult.hasAlpha;
|
|
48996
|
-
switch(basisFormat){
|
|
48997
|
-
case KTX2TargetFormat.ASTC:
|
|
48998
|
-
return TextureFormat.ASTC_4x4;
|
|
48999
|
-
case KTX2TargetFormat.ETC:
|
|
49000
|
-
return hasAlpha ? TextureFormat.ETC2_RGBA8 : TextureFormat.ETC2_RGB;
|
|
49001
|
-
case KTX2TargetFormat.BC7:
|
|
49002
|
-
return TextureFormat.BC7;
|
|
49003
|
-
case KTX2TargetFormat.BC1_BC3:
|
|
49004
|
-
return hasAlpha ? TextureFormat.BC3 : TextureFormat.BC1;
|
|
49005
|
-
case KTX2TargetFormat.PVRTC:
|
|
49006
|
-
return hasAlpha ? TextureFormat.PVRTC_RGBA4 : TextureFormat.PVRTC_RGB4;
|
|
49007
|
-
case KTX2TargetFormat.R8G8B8A8:
|
|
49008
|
-
return TextureFormat.R8G8B8A8;
|
|
49009
|
-
case KTX2TargetFormat.BC6H:
|
|
49010
|
-
return TextureFormat.BC6H;
|
|
49011
|
-
case KTX2TargetFormat.ASTC_HDR_4x4:
|
|
49012
|
-
return TextureFormat.ASTC_4x4;
|
|
49013
|
-
case KTX2TargetFormat.R16G16B16A16:
|
|
49014
|
-
return TextureFormat.R16G16B16A16;
|
|
49106
|
+
if (wrapS) {
|
|
49107
|
+
info.wrapModeU = exports.GLTFTextureParser._wrapMap[wrapS];
|
|
49015
49108
|
}
|
|
49109
|
+
if (wrapT) {
|
|
49110
|
+
info.wrapModeV = exports.GLTFTextureParser._wrapMap[wrapT];
|
|
49111
|
+
}
|
|
49112
|
+
return info;
|
|
49016
49113
|
};
|
|
49017
|
-
return
|
|
49018
|
-
}(
|
|
49019
|
-
var _obj$1;
|
|
49020
|
-
exports.KTX2Loader._priorityFormats = (_obj$1 = {}, _obj$1[ColorModel.ETC1S] = [
|
|
49021
|
-
KTX2TargetFormat.ETC,
|
|
49022
|
-
KTX2TargetFormat.BC7,
|
|
49023
|
-
KTX2TargetFormat.ASTC,
|
|
49024
|
-
KTX2TargetFormat.BC1_BC3,
|
|
49025
|
-
KTX2TargetFormat.PVRTC
|
|
49026
|
-
], _obj$1[ColorModel.UASTC_LDR_4X4] = [
|
|
49027
|
-
KTX2TargetFormat.ASTC,
|
|
49028
|
-
KTX2TargetFormat.BC7,
|
|
49029
|
-
KTX2TargetFormat.ETC,
|
|
49030
|
-
KTX2TargetFormat.BC1_BC3,
|
|
49031
|
-
KTX2TargetFormat.PVRTC
|
|
49032
|
-
], _obj$1[ColorModel.UASTC_HDR_4X4] = [
|
|
49033
|
-
KTX2TargetFormat.ASTC_HDR_4x4,
|
|
49034
|
-
KTX2TargetFormat.BC6H,
|
|
49035
|
-
KTX2TargetFormat.R16G16B16A16
|
|
49036
|
-
], _obj$1);
|
|
49037
|
-
var _obj1, _obj2, _obj3, _obj4, _obj5, _obj6, _obj7, _obj8, _obj9;
|
|
49038
|
-
exports.KTX2Loader._capabilityMap = (_obj9 = {}, _obj9[KTX2TargetFormat.ASTC] = (_obj1 = {}, _obj1[DFDTransferFunction.linear] = [
|
|
49039
|
-
GLCapabilityType.astc,
|
|
49040
|
-
GLCapabilityType.astc_webkit
|
|
49041
|
-
], _obj1[DFDTransferFunction.sRGB] = [
|
|
49042
|
-
GLCapabilityType.astc,
|
|
49043
|
-
GLCapabilityType.astc_webkit
|
|
49044
|
-
], _obj1), _obj9[KTX2TargetFormat.ETC] = (_obj2 = {}, _obj2[DFDTransferFunction.linear] = [
|
|
49045
|
-
GLCapabilityType.etc,
|
|
49046
|
-
GLCapabilityType.etc_webkit
|
|
49047
|
-
], _obj2[DFDTransferFunction.sRGB] = [
|
|
49048
|
-
GLCapabilityType.etc,
|
|
49049
|
-
GLCapabilityType.etc_webkit
|
|
49050
|
-
], _obj2), _obj9[KTX2TargetFormat.BC7] = (_obj3 = {}, _obj3[DFDTransferFunction.linear] = [
|
|
49051
|
-
GLCapabilityType.bptc
|
|
49052
|
-
], _obj3[DFDTransferFunction.sRGB] = [
|
|
49053
|
-
GLCapabilityType.bptc
|
|
49054
|
-
], _obj3), _obj9[KTX2TargetFormat.BC1_BC3] = (_obj4 = {}, _obj4[DFDTransferFunction.linear] = [
|
|
49055
|
-
GLCapabilityType.s3tc
|
|
49056
|
-
], _obj4[DFDTransferFunction.sRGB] = [
|
|
49057
|
-
GLCapabilityType.s3tc_srgb
|
|
49058
|
-
], _obj4), _obj9[KTX2TargetFormat.BC6H] = (_obj5 = {}, _obj5[DFDTransferFunction.linear] = [
|
|
49059
|
-
GLCapabilityType.bptc
|
|
49060
|
-
], _obj5), _obj9[KTX2TargetFormat.ASTC_HDR_4x4] = (_obj6 = {}, _obj6[DFDTransferFunction.linear] = [
|
|
49061
|
-
GLCapabilityType.astc_hdr
|
|
49062
|
-
], _obj6), _obj9[KTX2TargetFormat.R16G16B16A16] = (_obj7 = {}, _obj7[DFDTransferFunction.linear] = [
|
|
49063
|
-
GLCapabilityType.textureHalfFloat
|
|
49064
|
-
], _obj7), _obj9[KTX2TargetFormat.PVRTC] = (_obj8 = {}, _obj8[DFDTransferFunction.linear] = [
|
|
49065
|
-
GLCapabilityType.pvrtc,
|
|
49066
|
-
GLCapabilityType.pvrtc_webkit
|
|
49067
|
-
], _obj8), _obj9);
|
|
49068
|
-
exports.KTX2Loader = __decorate([
|
|
49069
|
-
resourceLoader(AssetType.KTX2, [
|
|
49070
|
-
"ktx2"
|
|
49071
|
-
])
|
|
49072
|
-
], exports.KTX2Loader);
|
|
49073
|
-
var KTX2ContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
49074
|
-
_inherits(KTX2ContentRestorer, ContentRestorer);
|
|
49075
|
-
function KTX2ContentRestorer(resource, url, requestConfig) {
|
|
49076
|
-
var _this;
|
|
49077
|
-
_this = ContentRestorer.call(this, resource) || this, _this.url = url, _this.requestConfig = requestConfig;
|
|
49078
|
-
return _this;
|
|
49079
|
-
}
|
|
49080
|
-
var _proto = KTX2ContentRestorer.prototype;
|
|
49081
|
-
_proto.restoreContent = function restoreContent() {
|
|
49082
|
-
var _this = this;
|
|
49083
|
-
var _this1 = this, resource = _this1.resource, requestConfig = _this1.requestConfig;
|
|
49084
|
-
var engine = resource.engine;
|
|
49085
|
-
return new AssetPromise(function(resolve, reject) {
|
|
49086
|
-
engine.resourceManager // @ts-ignore
|
|
49087
|
-
._request(_this.url, requestConfig).then(function(buffer) {
|
|
49088
|
-
return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), engine, requestConfig.params).then(function(param) {
|
|
49089
|
-
var ktx2Container = param.ktx2Container, engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
49090
|
-
return exports.KTX2Loader._createTextureByBuffer(engine, ktx2Container.isSRGB, result, targetFormat, params, resource);
|
|
49091
|
-
});
|
|
49092
|
-
}).then(resolve).catch(reject);
|
|
49093
|
-
});
|
|
49094
|
-
};
|
|
49095
|
-
return KTX2ContentRestorer;
|
|
49096
|
-
}(ContentRestorer);
|
|
49114
|
+
return GLTFUtils;
|
|
49115
|
+
}();
|
|
49097
49116
|
/**
|
|
49098
49117
|
* @internal
|
|
49099
49118
|
*/ var GLTFContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
@@ -51789,13 +51808,6 @@
|
|
|
51789
51808
|
}
|
|
51790
51809
|
var _proto = TextureCubeLoader.prototype;
|
|
51791
51810
|
_proto.load = function load(item, resourceManager) {
|
|
51792
|
-
if (item.urls) {
|
|
51793
|
-
return this._loadCubeFaces(item, resourceManager);
|
|
51794
|
-
} else {
|
|
51795
|
-
return this._loadHDR(item, resourceManager);
|
|
51796
|
-
}
|
|
51797
|
-
};
|
|
51798
|
-
_proto._loadHDR = function _loadHDR(item, resourceManager) {
|
|
51799
51811
|
return new AssetPromise(function(resolve, reject) {
|
|
51800
51812
|
var engine = resourceManager.engine;
|
|
51801
51813
|
var url = item.url;
|
|
@@ -51826,39 +51838,6 @@
|
|
|
51826
51838
|
}).catch(reject);
|
|
51827
51839
|
});
|
|
51828
51840
|
};
|
|
51829
|
-
_proto._loadCubeFaces = function _loadCubeFaces(item, resourceManager) {
|
|
51830
|
-
return new AssetPromise(function(resolve, reject) {
|
|
51831
|
-
var urls = item.urls;
|
|
51832
|
-
var requestConfig = _extends({}, item, {
|
|
51833
|
-
type: "image"
|
|
51834
|
-
});
|
|
51835
|
-
// @ts-ignore
|
|
51836
|
-
Promise.all(urls.map(function(url) {
|
|
51837
|
-
return resourceManager._request(url, requestConfig);
|
|
51838
|
-
})).then(function(images) {
|
|
51839
|
-
var _item_params;
|
|
51840
|
-
var _ref = (_item_params = item.params) != null ? _item_params : {}, _ref_format = _ref.format, format = _ref_format === void 0 ? TextureFormat.R8G8B8A8 : _ref_format, anisoLevel = _ref.anisoLevel, wrapModeU = _ref.wrapModeU, wrapModeV = _ref.wrapModeV, filterMode = _ref.filterMode, _ref_isSRGBColorSpace = _ref.isSRGBColorSpace, isSRGBColorSpace = _ref_isSRGBColorSpace === void 0 ? true : _ref_isSRGBColorSpace, _ref_mipmap = _ref.mipmap, mipmap = _ref_mipmap === void 0 ? true : _ref_mipmap;
|
|
51841
|
-
var _images_ = images[0], width = _images_.width, height = _images_.height;
|
|
51842
|
-
if (width !== height) {
|
|
51843
|
-
reject(new Error("The cube texture must have the same width and height"));
|
|
51844
|
-
return;
|
|
51845
|
-
}
|
|
51846
|
-
var engine = resourceManager.engine;
|
|
51847
|
-
var generateMipmap = TextureUtils.supportGenerateMipmapsWithCorrection(engine, width, height, format, mipmap, isSRGBColorSpace);
|
|
51848
|
-
var texture = new TextureCube(engine, width, format, generateMipmap, isSRGBColorSpace);
|
|
51849
|
-
texture.anisoLevel = anisoLevel != null ? anisoLevel : texture.anisoLevel;
|
|
51850
|
-
texture.filterMode = filterMode != null ? filterMode : texture.filterMode;
|
|
51851
|
-
texture.wrapModeU = wrapModeU != null ? wrapModeU : texture.wrapModeU;
|
|
51852
|
-
texture.wrapModeV = wrapModeV != null ? wrapModeV : texture.wrapModeV;
|
|
51853
|
-
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
51854
|
-
texture.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
|
|
51855
|
-
}
|
|
51856
|
-
texture.generateMipmaps();
|
|
51857
|
-
resourceManager.addContentRestorer(new CubeFaceContentRestorer(texture, urls, requestConfig));
|
|
51858
|
-
resolve(texture);
|
|
51859
|
-
}).catch(reject);
|
|
51860
|
-
});
|
|
51861
|
-
};
|
|
51862
51841
|
return TextureCubeLoader;
|
|
51863
51842
|
}(Loader);
|
|
51864
51843
|
TextureCubeLoader = __decorate([
|
|
@@ -51892,31 +51871,6 @@
|
|
|
51892
51871
|
};
|
|
51893
51872
|
return HDRContentRestorer;
|
|
51894
51873
|
}(ContentRestorer);
|
|
51895
|
-
var CubeFaceContentRestorer = /*#__PURE__*/ function(ContentRestorer) {
|
|
51896
|
-
_inherits(CubeFaceContentRestorer, ContentRestorer);
|
|
51897
|
-
function CubeFaceContentRestorer(resource, urls, requestConfig) {
|
|
51898
|
-
var _this;
|
|
51899
|
-
_this = ContentRestorer.call(this, resource) || this, _this.urls = urls, _this.requestConfig = requestConfig;
|
|
51900
|
-
return _this;
|
|
51901
|
-
}
|
|
51902
|
-
var _proto = CubeFaceContentRestorer.prototype;
|
|
51903
|
-
_proto.restoreContent = function restoreContent() {
|
|
51904
|
-
var _this = this;
|
|
51905
|
-
return new AssetPromise(function(resolve, reject) {
|
|
51906
|
-
Promise.all(_this.urls.map(function(url) {
|
|
51907
|
-
return request(url, _this.requestConfig);
|
|
51908
|
-
})).then(function(images) {
|
|
51909
|
-
var resource = _this.resource;
|
|
51910
|
-
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
51911
|
-
resource.setImageSource(TextureCubeFace.PositiveX + faceIndex, images[faceIndex], 0);
|
|
51912
|
-
}
|
|
51913
|
-
resource.generateMipmaps();
|
|
51914
|
-
resolve(resource);
|
|
51915
|
-
}).catch(reject);
|
|
51916
|
-
});
|
|
51917
|
-
};
|
|
51918
|
-
return CubeFaceContentRestorer;
|
|
51919
|
-
}(ContentRestorer);
|
|
51920
51874
|
var AudioLoader = /*#__PURE__*/ function(Loader) {
|
|
51921
51875
|
_inherits(AudioLoader, Loader);
|
|
51922
51876
|
function AudioLoader() {
|
|
@@ -52713,7 +52667,7 @@
|
|
|
52713
52667
|
], EXT_texture_webp);
|
|
52714
52668
|
|
|
52715
52669
|
//@ts-ignore
|
|
52716
|
-
var version = "2.0.0-alpha.
|
|
52670
|
+
var version = "2.0.0-alpha.12";
|
|
52717
52671
|
console.log("Galacean Engine Version: " + version);
|
|
52718
52672
|
for(var key in CoreObjects){
|
|
52719
52673
|
Loader.registerClass(key, CoreObjects[key]);
|