@galacean/engine-loader 1.1.2 → 1.1.6
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/main.js +728 -598
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +728 -598
- package/dist/module.js +730 -601
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFContentRestorer.d.ts +7 -6
- package/types/gltf/GLTFUtils.d.ts +2 -7
- package/types/gltf/parser/GLTFMeshParser.d.ts +11 -6
- package/types/gltf/parser/GLTFParser.d.ts +1 -1
- package/types/gltf/parser/GLTFParserContext.d.ts +7 -6
- package/types/gltf/parser/index.d.ts +2 -1
- package/types/ktx2/KTX2Loader.d.ts +1 -1
- package/types/resource-deserialize/index.d.ts +8 -8
- package/types/resource-deserialize/resources/mesh/MeshDecoder.d.ts +1 -1
- package/types/resource-deserialize/resources/texture2D/TextureDecoder.d.ts +1 -1
- package/types/resource-deserialize/utils/Decorator.d.ts +1 -1
- package/types/PrimitiveMeshLoader.d.ts +0 -1
- package/types/gltf/GLTFParser.d.ts +0 -9
- package/types/gltf/GLTFPipeline.d.ts +0 -23
- package/types/gltf/GLTFUtil.d.ts +0 -53
- package/types/gltf/Schema.d.ts +0 -814
- package/types/gltf/extensions/EXT_meshopt_compression.d.ts +0 -13
- package/types/gltf/extensions/ExtensionParser.d.ts +0 -8
- package/types/gltf/extensions/KHR_materials_anisotropy.d.ts +0 -1
- package/types/gltf/extensions/MeshoptDecoder.d.ts +0 -8
- package/types/gltf/extensions/Schema.d.ts +0 -142
- package/types/gltf/parser/AnimationParser.d.ts +0 -7
- package/types/gltf/parser/BufferParser.d.ts +0 -7
- package/types/gltf/parser/EntityParser.d.ts +0 -9
- package/types/gltf/parser/MaterialParser.d.ts +0 -8
- package/types/gltf/parser/MeshParser.d.ts +0 -13
- package/types/gltf/parser/Parser.d.ts +0 -21
- package/types/gltf/parser/ParserContext.d.ts +0 -46
- package/types/gltf/parser/SceneParser.d.ts +0 -11
- package/types/gltf/parser/SkinParser.d.ts +0 -6
- package/types/gltf/parser/TextureParser.d.ts +0 -8
- package/types/gltf/parser/Validator.d.ts +0 -5
- package/types/ktx2/BinomialLLCTranscoder/BinomialLLCTranscoder.d.ts +0 -13
- package/types/ktx2/BinomialLLCTranscoder/TranscodeWorkerCode.d.ts +0 -33
- package/types/ktx2/KhronosTranscoder/KhronosTranscoder.d.ts +0 -17
- package/types/ktx2/KhronosTranscoder/TranscoderWorkerCode.d.ts +0 -34
- package/types/ktx2/TranscodeResult.d.ts +0 -10
- package/types/ktx2/constants.d.ts +0 -7
- package/types/ktx2/zstddec.d.ts +0 -62
- package/types/resource-deserialize/resources/parser/HierarchyParser.d.ts +0 -36
- package/types/resource-deserialize/resources/parser/ParserContext.d.ts +0 -29
- package/types/resource-deserialize/resources/prefab/PrefabDesign.d.ts +0 -70
- package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +0 -14
- package/types/resource-deserialize/resources/prefab/PrefabParserContext.d.ts +0 -5
- package/types/resource-deserialize/resources/prefab/ReflectionParser.d.ts +0 -14
package/dist/miniprogram.js
CHANGED
|
@@ -285,11 +285,201 @@ var FileHeader = /*#__PURE__*/ function() {
|
|
|
285
285
|
return FileHeader;
|
|
286
286
|
}();
|
|
287
287
|
|
|
288
|
+
var ComponentMap = {
|
|
289
|
+
Transform: miniprogram.Transform,
|
|
290
|
+
Animator: miniprogram.Animator,
|
|
291
|
+
DirectLight: miniprogram.DirectLight,
|
|
292
|
+
Camera: miniprogram.Camera,
|
|
293
|
+
MeshRenderer: miniprogram.MeshRenderer,
|
|
294
|
+
ParticleRenderer: miniprogram.ParticleRenderer,
|
|
295
|
+
PointLight: miniprogram.PointLight,
|
|
296
|
+
SpotLight: miniprogram.SpotLight,
|
|
297
|
+
Script: miniprogram.Script,
|
|
298
|
+
SpriteMask: miniprogram.SpriteMask,
|
|
299
|
+
SpriteRenderer: miniprogram.SpriteRenderer,
|
|
300
|
+
TextRenderer: miniprogram.TextRenderer
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
exports.InterpolableValueType = void 0;
|
|
304
|
+
(function(InterpolableValueType) {
|
|
305
|
+
InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
|
|
306
|
+
InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
|
|
307
|
+
InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
|
|
308
|
+
InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
|
|
309
|
+
InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
|
|
310
|
+
InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
|
|
311
|
+
InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
|
|
312
|
+
InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
|
|
313
|
+
InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
|
|
314
|
+
InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
|
|
315
|
+
InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
|
|
316
|
+
})(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
|
|
317
|
+
exports.AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
318
|
+
function AnimationClipDecoder() {}
|
|
319
|
+
AnimationClipDecoder.decode = function decode(engine, bufferReader) {
|
|
320
|
+
return new Promise(function(resolve) {
|
|
321
|
+
var name = bufferReader.nextStr();
|
|
322
|
+
var clip = new miniprogram.AnimationClip(name);
|
|
323
|
+
var eventsLen = bufferReader.nextUint16();
|
|
324
|
+
for(var i = 0; i < eventsLen; ++i){
|
|
325
|
+
var event = new miniprogram.AnimationEvent();
|
|
326
|
+
event.time = bufferReader.nextFloat32();
|
|
327
|
+
event.functionName = bufferReader.nextStr();
|
|
328
|
+
event.parameter = JSON.parse(bufferReader.nextStr()).val;
|
|
329
|
+
clip.addEvent(event);
|
|
330
|
+
}
|
|
331
|
+
var curveBindingsLen = bufferReader.nextUint16();
|
|
332
|
+
for(var i1 = 0; i1 < curveBindingsLen; ++i1){
|
|
333
|
+
var relativePath = bufferReader.nextStr();
|
|
334
|
+
var componentStr = bufferReader.nextStr();
|
|
335
|
+
var componentType = ComponentMap[componentStr];
|
|
336
|
+
var property = bufferReader.nextStr();
|
|
337
|
+
var curve = void 0;
|
|
338
|
+
var interpolation = bufferReader.nextUint8();
|
|
339
|
+
var keysLen = bufferReader.nextUint16();
|
|
340
|
+
var curveType = bufferReader.nextStr();
|
|
341
|
+
switch(curveType){
|
|
342
|
+
case "AnimationFloatCurve":
|
|
343
|
+
{
|
|
344
|
+
curve = new miniprogram.AnimationFloatCurve();
|
|
345
|
+
curve.interpolation = interpolation;
|
|
346
|
+
for(var j = 0; j < keysLen; ++j){
|
|
347
|
+
var keyframe = new miniprogram.Keyframe();
|
|
348
|
+
keyframe.time = bufferReader.nextFloat32();
|
|
349
|
+
keyframe.value = bufferReader.nextFloat32();
|
|
350
|
+
keyframe.inTangent = bufferReader.nextFloat32();
|
|
351
|
+
keyframe.outTangent = bufferReader.nextFloat32();
|
|
352
|
+
curve.addKey(keyframe);
|
|
353
|
+
}
|
|
354
|
+
break;
|
|
355
|
+
}
|
|
356
|
+
case "AnimationArrayCurve":
|
|
357
|
+
{
|
|
358
|
+
curve = new miniprogram.AnimationArrayCurve();
|
|
359
|
+
curve.interpolation = interpolation;
|
|
360
|
+
for(var j1 = 0; j1 < keysLen; ++j1){
|
|
361
|
+
var keyframe1 = new miniprogram.Keyframe();
|
|
362
|
+
keyframe1.time = bufferReader.nextFloat32();
|
|
363
|
+
var len = bufferReader.nextUint16();
|
|
364
|
+
keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
|
|
365
|
+
keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
366
|
+
keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
367
|
+
curve.addKey(keyframe1);
|
|
368
|
+
}
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
case "AnimationFloatArrayCurve":
|
|
372
|
+
{
|
|
373
|
+
curve = new miniprogram.AnimationFloatArrayCurve();
|
|
374
|
+
curve.interpolation = interpolation;
|
|
375
|
+
for(var j2 = 0; j2 < keysLen; ++j2){
|
|
376
|
+
var keyframe2 = new miniprogram.Keyframe();
|
|
377
|
+
keyframe2.time = bufferReader.nextFloat32();
|
|
378
|
+
var len1 = bufferReader.nextUint16();
|
|
379
|
+
keyframe2.value = bufferReader.nextFloat32Array(len1);
|
|
380
|
+
keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
381
|
+
keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
382
|
+
curve.addKey(keyframe2);
|
|
383
|
+
}
|
|
384
|
+
break;
|
|
385
|
+
}
|
|
386
|
+
case "AnimationVector2Curve":
|
|
387
|
+
{
|
|
388
|
+
curve = new miniprogram.AnimationVector2Curve();
|
|
389
|
+
curve.interpolation = interpolation;
|
|
390
|
+
for(var j3 = 0; j3 < keysLen; ++j3){
|
|
391
|
+
var keyframe3 = new miniprogram.Keyframe();
|
|
392
|
+
keyframe3.time = bufferReader.nextFloat32();
|
|
393
|
+
keyframe3.value = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
394
|
+
keyframe3.inTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
395
|
+
keyframe3.outTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
396
|
+
curve.addKey(keyframe3);
|
|
397
|
+
}
|
|
398
|
+
break;
|
|
399
|
+
}
|
|
400
|
+
case "AnimationVector3Curve":
|
|
401
|
+
{
|
|
402
|
+
curve = new miniprogram.AnimationVector3Curve();
|
|
403
|
+
curve.interpolation = interpolation;
|
|
404
|
+
for(var j4 = 0; j4 < keysLen; ++j4){
|
|
405
|
+
var keyframe4 = new miniprogram.Keyframe();
|
|
406
|
+
keyframe4.time = bufferReader.nextFloat32();
|
|
407
|
+
keyframe4.value = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
408
|
+
keyframe4.inTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
409
|
+
keyframe4.outTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
410
|
+
curve.addKey(keyframe4);
|
|
411
|
+
}
|
|
412
|
+
break;
|
|
413
|
+
}
|
|
414
|
+
case "AnimationVector4Curve":
|
|
415
|
+
{
|
|
416
|
+
curve = new miniprogram.AnimationVector4Curve();
|
|
417
|
+
curve.interpolation = interpolation;
|
|
418
|
+
var keyframe5 = new miniprogram.Keyframe();
|
|
419
|
+
keyframe5.time = bufferReader.nextFloat32();
|
|
420
|
+
keyframe5.value = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
421
|
+
keyframe5.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
422
|
+
keyframe5.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
423
|
+
curve.addKey(keyframe5);
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
case "AnimationColorCurve":
|
|
427
|
+
{
|
|
428
|
+
curve = new miniprogram.AnimationColorCurve();
|
|
429
|
+
curve.interpolation = interpolation;
|
|
430
|
+
for(var j5 = 0; j5 < keysLen; ++j5){
|
|
431
|
+
var keyframe6 = new miniprogram.Keyframe();
|
|
432
|
+
keyframe6.time = bufferReader.nextFloat32();
|
|
433
|
+
keyframe6.value = new miniprogram$1.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
434
|
+
keyframe6.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
435
|
+
keyframe6.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
436
|
+
curve.addKey(keyframe6);
|
|
437
|
+
}
|
|
438
|
+
break;
|
|
439
|
+
}
|
|
440
|
+
case "AnimationQuaternionCurve":
|
|
441
|
+
{
|
|
442
|
+
curve = new miniprogram.AnimationQuaternionCurve();
|
|
443
|
+
curve.interpolation = interpolation;
|
|
444
|
+
for(var j6 = 0; j6 < keysLen; ++j6){
|
|
445
|
+
var keyframe7 = new miniprogram.Keyframe();
|
|
446
|
+
keyframe7.time = bufferReader.nextFloat32();
|
|
447
|
+
keyframe7.value = new miniprogram$1.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
448
|
+
keyframe7.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
449
|
+
keyframe7.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
450
|
+
curve.addKey(keyframe7);
|
|
451
|
+
}
|
|
452
|
+
break;
|
|
453
|
+
}
|
|
454
|
+
case "AnimationRefCurve":
|
|
455
|
+
{
|
|
456
|
+
curve = new miniprogram.AnimationRefCurve();
|
|
457
|
+
curve.interpolation = interpolation;
|
|
458
|
+
for(var j7 = 0; j7 < keysLen; ++j7){
|
|
459
|
+
var keyframe8 = new miniprogram.Keyframe();
|
|
460
|
+
keyframe8.time = bufferReader.nextFloat32();
|
|
461
|
+
keyframe8.value = JSON.parse(bufferReader.nextStr());
|
|
462
|
+
curve.addKey(keyframe8);
|
|
463
|
+
}
|
|
464
|
+
break;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
clip.addCurveBinding(relativePath, componentType, property, curve);
|
|
468
|
+
}
|
|
469
|
+
resolve(clip);
|
|
470
|
+
});
|
|
471
|
+
};
|
|
472
|
+
return AnimationClipDecoder;
|
|
473
|
+
}();
|
|
474
|
+
exports.AnimationClipDecoder = __decorate([
|
|
475
|
+
decoder("AnimationClip")
|
|
476
|
+
], exports.AnimationClipDecoder);
|
|
477
|
+
|
|
288
478
|
exports.MeshDecoder = /*#__PURE__*/ function() {
|
|
289
479
|
function MeshDecoder() {}
|
|
290
|
-
MeshDecoder.decode = function decode(engine, bufferReader) {
|
|
480
|
+
MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
|
|
291
481
|
return new Promise(function(resolve) {
|
|
292
|
-
var modelMesh = new miniprogram.ModelMesh(engine);
|
|
482
|
+
var modelMesh = restoredMesh || new miniprogram.ModelMesh(engine);
|
|
293
483
|
var jsonDataString = bufferReader.nextStr();
|
|
294
484
|
var encodedMeshData = JSON.parse(jsonDataString);
|
|
295
485
|
// @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
|
|
@@ -419,80 +609,22 @@ function float32ArrayToVector2(float32Array, vertexCount) {
|
|
|
419
609
|
return array;
|
|
420
610
|
}
|
|
421
611
|
|
|
422
|
-
|
|
423
|
-
function
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
var
|
|
428
|
-
var
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
var width = bufferReader.nextUint16();
|
|
434
|
-
var height = bufferReader.nextUint16();
|
|
435
|
-
var isPixelBuffer = bufferReader.nextUint8();
|
|
436
|
-
var mipCount = bufferReader.nextUint8();
|
|
437
|
-
var imagesData = bufferReader.nextImagesData(mipCount);
|
|
438
|
-
var texture2D = new miniprogram.Texture2D(engine, width, height, format, mipmap);
|
|
439
|
-
texture2D.filterMode = filterMode;
|
|
440
|
-
texture2D.anisoLevel = anisoLevel;
|
|
441
|
-
texture2D.wrapModeU = wrapModeU;
|
|
442
|
-
texture2D.wrapModeV = wrapModeV;
|
|
443
|
-
if (isPixelBuffer) {
|
|
444
|
-
var pixelBuffer = imagesData[0];
|
|
445
|
-
texture2D.setPixelBuffer(pixelBuffer);
|
|
446
|
-
if (mipmap) {
|
|
447
|
-
texture2D.generateMipmaps();
|
|
448
|
-
for(var i = 1; i < mipCount; i++){
|
|
449
|
-
var pixelBuffer1 = imagesData[i];
|
|
450
|
-
texture2D.setPixelBuffer(pixelBuffer1, i);
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
// @ts-ignore
|
|
454
|
-
engine.resourceManager._objectPool[objectId] = texture2D;
|
|
455
|
-
resolve(texture2D);
|
|
456
|
-
} else {
|
|
457
|
-
var blob = new engineMiniprogramAdapter.window.Blob([
|
|
458
|
-
imagesData[0]
|
|
459
|
-
]);
|
|
460
|
-
var img = new engineMiniprogramAdapter.Image();
|
|
461
|
-
img.onload = function() {
|
|
462
|
-
texture2D.setImageSource(img);
|
|
463
|
-
var completedCount = 0;
|
|
464
|
-
var onComplete = function() {
|
|
465
|
-
completedCount++;
|
|
466
|
-
if (completedCount >= mipCount) {
|
|
467
|
-
resolve(texture2D);
|
|
468
|
-
}
|
|
469
|
-
};
|
|
470
|
-
onComplete();
|
|
471
|
-
if (mipmap) {
|
|
472
|
-
var _loop = function(i) {
|
|
473
|
-
var blob = new engineMiniprogramAdapter.window.Blob([
|
|
474
|
-
imagesData[i]
|
|
475
|
-
]);
|
|
476
|
-
var img = new engineMiniprogramAdapter.Image();
|
|
477
|
-
img.onload = function() {
|
|
478
|
-
texture2D.setImageSource(img, i);
|
|
479
|
-
onComplete();
|
|
480
|
-
};
|
|
481
|
-
img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
|
|
482
|
-
};
|
|
483
|
-
texture2D.generateMipmaps();
|
|
484
|
-
for(var i = 1; i < mipCount; i++)_loop(i);
|
|
485
|
-
}
|
|
486
|
-
};
|
|
487
|
-
img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
|
|
612
|
+
var PrefabParser = /*#__PURE__*/ function() {
|
|
613
|
+
function PrefabParser() {}
|
|
614
|
+
PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
|
|
615
|
+
var children = entitiesConfig.get(parentId).children;
|
|
616
|
+
if (children && children.length > 0) {
|
|
617
|
+
var parent = entities.get(parentId);
|
|
618
|
+
for(var i = 0; i < children.length; i++){
|
|
619
|
+
var childId = children[i];
|
|
620
|
+
var entity = entities.get(childId);
|
|
621
|
+
parent.addChild(entity);
|
|
622
|
+
this.parseChildren(entitiesConfig, entities, childId);
|
|
488
623
|
}
|
|
489
|
-
}
|
|
624
|
+
}
|
|
490
625
|
};
|
|
491
|
-
return
|
|
626
|
+
return PrefabParser;
|
|
492
627
|
}();
|
|
493
|
-
exports.Texture2DDecoder = __decorate([
|
|
494
|
-
decoder("Texture2D")
|
|
495
|
-
], exports.Texture2DDecoder);
|
|
496
628
|
|
|
497
629
|
function _is_native_reflect_construct() {
|
|
498
630
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
@@ -674,218 +806,148 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
674
806
|
ReflectionParser.customParseComponentHandles = new Map();
|
|
675
807
|
})();
|
|
676
808
|
|
|
677
|
-
|
|
678
|
-
function
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
var
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
};
|
|
708
|
-
|
|
709
|
-
exports.InterpolableValueType = void 0;
|
|
710
|
-
(function(InterpolableValueType) {
|
|
711
|
-
InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
|
|
712
|
-
InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
|
|
713
|
-
InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
|
|
714
|
-
InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
|
|
715
|
-
InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
|
|
716
|
-
InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
|
|
717
|
-
InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
|
|
718
|
-
InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
|
|
719
|
-
InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
|
|
720
|
-
InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
|
|
721
|
-
InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
|
|
722
|
-
})(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
|
|
723
|
-
exports.AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
724
|
-
function AnimationClipDecoder() {}
|
|
725
|
-
AnimationClipDecoder.decode = function decode(engine, bufferReader) {
|
|
726
|
-
return new Promise(function(resolve) {
|
|
727
|
-
var name = bufferReader.nextStr();
|
|
728
|
-
var clip = new miniprogram.AnimationClip(name);
|
|
729
|
-
var eventsLen = bufferReader.nextUint16();
|
|
730
|
-
for(var i = 0; i < eventsLen; ++i){
|
|
731
|
-
var event = new miniprogram.AnimationEvent();
|
|
732
|
-
event.time = bufferReader.nextFloat32();
|
|
733
|
-
event.functionName = bufferReader.nextStr();
|
|
734
|
-
event.parameter = JSON.parse(bufferReader.nextStr()).val;
|
|
735
|
-
clip.addEvent(event);
|
|
736
|
-
}
|
|
737
|
-
var curveBindingsLen = bufferReader.nextUint16();
|
|
738
|
-
for(var i1 = 0; i1 < curveBindingsLen; ++i1){
|
|
739
|
-
var relativePath = bufferReader.nextStr();
|
|
740
|
-
var componentStr = bufferReader.nextStr();
|
|
741
|
-
var componentType = ComponentMap[componentStr];
|
|
742
|
-
var property = bufferReader.nextStr();
|
|
743
|
-
var curve = void 0;
|
|
744
|
-
var interpolation = bufferReader.nextUint8();
|
|
745
|
-
var keysLen = bufferReader.nextUint16();
|
|
746
|
-
var curveType = bufferReader.nextStr();
|
|
747
|
-
switch(curveType){
|
|
748
|
-
case "AnimationFloatCurve":
|
|
749
|
-
{
|
|
750
|
-
curve = new miniprogram.AnimationFloatCurve();
|
|
751
|
-
curve.interpolation = interpolation;
|
|
752
|
-
for(var j = 0; j < keysLen; ++j){
|
|
753
|
-
var keyframe = new miniprogram.Keyframe();
|
|
754
|
-
keyframe.time = bufferReader.nextFloat32();
|
|
755
|
-
keyframe.value = bufferReader.nextFloat32();
|
|
756
|
-
keyframe.inTangent = bufferReader.nextFloat32();
|
|
757
|
-
keyframe.outTangent = bufferReader.nextFloat32();
|
|
758
|
-
curve.addKey(keyframe);
|
|
759
|
-
}
|
|
760
|
-
break;
|
|
761
|
-
}
|
|
762
|
-
case "AnimationArrayCurve":
|
|
763
|
-
{
|
|
764
|
-
curve = new miniprogram.AnimationArrayCurve();
|
|
765
|
-
curve.interpolation = interpolation;
|
|
766
|
-
for(var j1 = 0; j1 < keysLen; ++j1){
|
|
767
|
-
var keyframe1 = new miniprogram.Keyframe();
|
|
768
|
-
keyframe1.time = bufferReader.nextFloat32();
|
|
769
|
-
var len = bufferReader.nextUint16();
|
|
770
|
-
keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
|
|
771
|
-
keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
772
|
-
keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
773
|
-
curve.addKey(keyframe1);
|
|
774
|
-
}
|
|
775
|
-
break;
|
|
776
|
-
}
|
|
777
|
-
case "AnimationFloatArrayCurve":
|
|
778
|
-
{
|
|
779
|
-
curve = new miniprogram.AnimationFloatArrayCurve();
|
|
780
|
-
curve.interpolation = interpolation;
|
|
781
|
-
for(var j2 = 0; j2 < keysLen; ++j2){
|
|
782
|
-
var keyframe2 = new miniprogram.Keyframe();
|
|
783
|
-
keyframe2.time = bufferReader.nextFloat32();
|
|
784
|
-
var len1 = bufferReader.nextUint16();
|
|
785
|
-
keyframe2.value = bufferReader.nextFloat32Array(len1);
|
|
786
|
-
keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
787
|
-
keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
788
|
-
curve.addKey(keyframe2);
|
|
789
|
-
}
|
|
790
|
-
break;
|
|
791
|
-
}
|
|
792
|
-
case "AnimationVector2Curve":
|
|
793
|
-
{
|
|
794
|
-
curve = new miniprogram.AnimationVector2Curve();
|
|
795
|
-
curve.interpolation = interpolation;
|
|
796
|
-
for(var j3 = 0; j3 < keysLen; ++j3){
|
|
797
|
-
var keyframe3 = new miniprogram.Keyframe();
|
|
798
|
-
keyframe3.time = bufferReader.nextFloat32();
|
|
799
|
-
keyframe3.value = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
800
|
-
keyframe3.inTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
801
|
-
keyframe3.outTangent = new miniprogram$1.Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
802
|
-
curve.addKey(keyframe3);
|
|
803
|
-
}
|
|
804
|
-
break;
|
|
805
|
-
}
|
|
806
|
-
case "AnimationVector3Curve":
|
|
807
|
-
{
|
|
808
|
-
curve = new miniprogram.AnimationVector3Curve();
|
|
809
|
-
curve.interpolation = interpolation;
|
|
810
|
-
for(var j4 = 0; j4 < keysLen; ++j4){
|
|
811
|
-
var keyframe4 = new miniprogram.Keyframe();
|
|
812
|
-
keyframe4.time = bufferReader.nextFloat32();
|
|
813
|
-
keyframe4.value = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
814
|
-
keyframe4.inTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
815
|
-
keyframe4.outTangent = new miniprogram$1.Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
816
|
-
curve.addKey(keyframe4);
|
|
817
|
-
}
|
|
818
|
-
break;
|
|
819
|
-
}
|
|
820
|
-
case "AnimationVector4Curve":
|
|
821
|
-
{
|
|
822
|
-
curve = new miniprogram.AnimationVector4Curve();
|
|
823
|
-
curve.interpolation = interpolation;
|
|
824
|
-
var keyframe5 = new miniprogram.Keyframe();
|
|
825
|
-
keyframe5.time = bufferReader.nextFloat32();
|
|
826
|
-
keyframe5.value = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
827
|
-
keyframe5.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
828
|
-
keyframe5.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
829
|
-
curve.addKey(keyframe5);
|
|
830
|
-
break;
|
|
831
|
-
}
|
|
832
|
-
case "AnimationColorCurve":
|
|
833
|
-
{
|
|
834
|
-
curve = new miniprogram.AnimationColorCurve();
|
|
835
|
-
curve.interpolation = interpolation;
|
|
836
|
-
for(var j5 = 0; j5 < keysLen; ++j5){
|
|
837
|
-
var keyframe6 = new miniprogram.Keyframe();
|
|
838
|
-
keyframe6.time = bufferReader.nextFloat32();
|
|
839
|
-
keyframe6.value = new miniprogram$1.Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
840
|
-
keyframe6.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
841
|
-
keyframe6.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
842
|
-
curve.addKey(keyframe6);
|
|
843
|
-
}
|
|
844
|
-
break;
|
|
845
|
-
}
|
|
846
|
-
case "AnimationQuaternionCurve":
|
|
847
|
-
{
|
|
848
|
-
curve = new miniprogram.AnimationQuaternionCurve();
|
|
849
|
-
curve.interpolation = interpolation;
|
|
850
|
-
for(var j6 = 0; j6 < keysLen; ++j6){
|
|
851
|
-
var keyframe7 = new miniprogram.Keyframe();
|
|
852
|
-
keyframe7.time = bufferReader.nextFloat32();
|
|
853
|
-
keyframe7.value = new miniprogram$1.Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
854
|
-
keyframe7.inTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
855
|
-
keyframe7.outTangent = new miniprogram$1.Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
856
|
-
curve.addKey(keyframe7);
|
|
857
|
-
}
|
|
858
|
-
break;
|
|
859
|
-
}
|
|
860
|
-
case "AnimationRefCurve":
|
|
861
|
-
{
|
|
862
|
-
curve = new miniprogram.AnimationRefCurve();
|
|
863
|
-
curve.interpolation = interpolation;
|
|
864
|
-
for(var j7 = 0; j7 < keysLen; ++j7){
|
|
865
|
-
var keyframe8 = new miniprogram.Keyframe();
|
|
866
|
-
keyframe8.time = bufferReader.nextFloat32();
|
|
867
|
-
keyframe8.value = JSON.parse(bufferReader.nextStr());
|
|
868
|
-
curve.addKey(keyframe8);
|
|
869
|
-
}
|
|
870
|
-
break;
|
|
871
|
-
}
|
|
809
|
+
exports.Texture2DDecoder = /*#__PURE__*/ function() {
|
|
810
|
+
function Texture2DDecoder() {}
|
|
811
|
+
Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
|
|
812
|
+
return new Promise(function(resolve, reject) {
|
|
813
|
+
var objectId = bufferReader.nextStr();
|
|
814
|
+
var mipmap = !!bufferReader.nextUint8();
|
|
815
|
+
var filterMode = bufferReader.nextUint8();
|
|
816
|
+
var anisoLevel = bufferReader.nextUint8();
|
|
817
|
+
var wrapModeU = bufferReader.nextUint8();
|
|
818
|
+
var wrapModeV = bufferReader.nextUint8();
|
|
819
|
+
var format = bufferReader.nextUint8();
|
|
820
|
+
var width = bufferReader.nextUint16();
|
|
821
|
+
var height = bufferReader.nextUint16();
|
|
822
|
+
var isPixelBuffer = bufferReader.nextUint8();
|
|
823
|
+
var mipCount = bufferReader.nextUint8();
|
|
824
|
+
var imagesData = bufferReader.nextImagesData(mipCount);
|
|
825
|
+
var texture2D = restoredTexture || new miniprogram.Texture2D(engine, width, height, format, mipmap);
|
|
826
|
+
texture2D.filterMode = filterMode;
|
|
827
|
+
texture2D.anisoLevel = anisoLevel;
|
|
828
|
+
texture2D.wrapModeU = wrapModeU;
|
|
829
|
+
texture2D.wrapModeV = wrapModeV;
|
|
830
|
+
if (isPixelBuffer) {
|
|
831
|
+
var pixelBuffer = imagesData[0];
|
|
832
|
+
texture2D.setPixelBuffer(pixelBuffer);
|
|
833
|
+
if (mipmap) {
|
|
834
|
+
texture2D.generateMipmaps();
|
|
835
|
+
for(var i = 1; i < mipCount; i++){
|
|
836
|
+
var pixelBuffer1 = imagesData[i];
|
|
837
|
+
texture2D.setPixelBuffer(pixelBuffer1, i);
|
|
838
|
+
}
|
|
872
839
|
}
|
|
873
|
-
|
|
840
|
+
// @ts-ignore
|
|
841
|
+
engine.resourceManager._objectPool[objectId] = texture2D;
|
|
842
|
+
resolve(texture2D);
|
|
843
|
+
} else {
|
|
844
|
+
var blob = new engineMiniprogramAdapter.window.Blob([
|
|
845
|
+
imagesData[0]
|
|
846
|
+
]);
|
|
847
|
+
var img = new engineMiniprogramAdapter.Image();
|
|
848
|
+
img.onload = function() {
|
|
849
|
+
texture2D.setImageSource(img);
|
|
850
|
+
var completedCount = 0;
|
|
851
|
+
var onComplete = function() {
|
|
852
|
+
completedCount++;
|
|
853
|
+
if (completedCount >= mipCount) {
|
|
854
|
+
resolve(texture2D);
|
|
855
|
+
}
|
|
856
|
+
};
|
|
857
|
+
onComplete();
|
|
858
|
+
if (mipmap) {
|
|
859
|
+
var _loop = function(i) {
|
|
860
|
+
var blob = new engineMiniprogramAdapter.window.Blob([
|
|
861
|
+
imagesData[i]
|
|
862
|
+
]);
|
|
863
|
+
var img = new engineMiniprogramAdapter.Image();
|
|
864
|
+
img.onload = function() {
|
|
865
|
+
texture2D.setImageSource(img, i);
|
|
866
|
+
onComplete();
|
|
867
|
+
};
|
|
868
|
+
img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
|
|
869
|
+
};
|
|
870
|
+
texture2D.generateMipmaps();
|
|
871
|
+
for(var i = 1; i < mipCount; i++)_loop(i);
|
|
872
|
+
}
|
|
873
|
+
};
|
|
874
|
+
img.src = engineMiniprogramAdapter.URL.createObjectURL(blob);
|
|
874
875
|
}
|
|
875
|
-
resolve(clip);
|
|
876
876
|
});
|
|
877
877
|
};
|
|
878
|
-
return
|
|
878
|
+
return Texture2DDecoder;
|
|
879
879
|
}();
|
|
880
|
-
exports.
|
|
881
|
-
decoder("
|
|
882
|
-
], exports.
|
|
880
|
+
exports.Texture2DDecoder = __decorate([
|
|
881
|
+
decoder("Texture2D")
|
|
882
|
+
], exports.Texture2DDecoder);
|
|
883
883
|
|
|
884
|
-
exports.
|
|
885
|
-
(
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
}
|
|
884
|
+
exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
|
|
885
|
+
_inherits(EditorTextureLoader, Loader1);
|
|
886
|
+
function EditorTextureLoader() {
|
|
887
|
+
return Loader1.apply(this, arguments);
|
|
888
|
+
}
|
|
889
|
+
var _proto = EditorTextureLoader.prototype;
|
|
890
|
+
_proto.load = function load(item, resourceManager) {
|
|
891
|
+
var _this = this;
|
|
892
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
893
|
+
var request = _this.request;
|
|
894
|
+
request(item.url, _extends({}, item, {
|
|
895
|
+
type: "arraybuffer"
|
|
896
|
+
})).then(function(data) {
|
|
897
|
+
decode(data, resourceManager.engine).then(function(texture) {
|
|
898
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
899
|
+
_inherits(_class, ContentRestorer);
|
|
900
|
+
function _class() {
|
|
901
|
+
return ContentRestorer.apply(this, arguments);
|
|
902
|
+
}
|
|
903
|
+
var _proto = _class.prototype;
|
|
904
|
+
_proto.restoreContent = function restoreContent() {
|
|
905
|
+
return request(item.url, _extends({}, item, {
|
|
906
|
+
type: "arraybuffer"
|
|
907
|
+
})).then(function(data) {
|
|
908
|
+
return decode(data, resourceManager.engine, texture);
|
|
909
|
+
});
|
|
910
|
+
};
|
|
911
|
+
return _class;
|
|
912
|
+
}(miniprogram.ContentRestorer))(texture));
|
|
913
|
+
resolve(texture);
|
|
914
|
+
});
|
|
915
|
+
}).catch(reject);
|
|
916
|
+
});
|
|
917
|
+
};
|
|
918
|
+
return EditorTextureLoader;
|
|
919
|
+
}(miniprogram.Loader);
|
|
920
|
+
exports.EditorTextureLoader = __decorate([
|
|
921
|
+
miniprogram.resourceLoader("EditorTexture2D", [
|
|
922
|
+
"prefab"
|
|
923
|
+
], true)
|
|
924
|
+
], exports.EditorTextureLoader);
|
|
925
|
+
|
|
926
|
+
exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
|
|
927
|
+
_inherits(MeshLoader, Loader1);
|
|
928
|
+
function MeshLoader() {
|
|
929
|
+
return Loader1.apply(this, arguments);
|
|
930
|
+
}
|
|
931
|
+
var _proto = MeshLoader.prototype;
|
|
932
|
+
_proto.load = function load(item, resourceManager) {
|
|
933
|
+
var _this = this;
|
|
934
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
935
|
+
_this.request(item.url, {
|
|
936
|
+
type: "arraybuffer"
|
|
937
|
+
}).then(function(data) {
|
|
938
|
+
decode(data, resourceManager.engine).then(function(mesh) {
|
|
939
|
+
resolve(mesh);
|
|
940
|
+
});
|
|
941
|
+
}).catch(reject);
|
|
942
|
+
});
|
|
943
|
+
};
|
|
944
|
+
return MeshLoader;
|
|
945
|
+
}(miniprogram.Loader);
|
|
946
|
+
exports.MeshLoader = __decorate([
|
|
947
|
+
miniprogram.resourceLoader("Mesh", [
|
|
948
|
+
"prefab"
|
|
949
|
+
], true)
|
|
950
|
+
], exports.MeshLoader);
|
|
889
951
|
|
|
890
952
|
function _array_like_to_array(arr, len) {
|
|
891
953
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -1042,57 +1104,11 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
1042
1104
|
return SceneParser;
|
|
1043
1105
|
}();
|
|
1044
1106
|
|
|
1045
|
-
exports.
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
var _proto = MeshLoader.prototype;
|
|
1051
|
-
_proto.load = function load(item, resourceManager) {
|
|
1052
|
-
var _this = this;
|
|
1053
|
-
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
1054
|
-
_this.request(item.url, {
|
|
1055
|
-
type: "arraybuffer"
|
|
1056
|
-
}).then(function(data) {
|
|
1057
|
-
decode(data, resourceManager.engine).then(function(mesh) {
|
|
1058
|
-
resolve(mesh);
|
|
1059
|
-
});
|
|
1060
|
-
}).catch(reject);
|
|
1061
|
-
});
|
|
1062
|
-
};
|
|
1063
|
-
return MeshLoader;
|
|
1064
|
-
}(miniprogram.Loader);
|
|
1065
|
-
exports.MeshLoader = __decorate([
|
|
1066
|
-
miniprogram.resourceLoader("Mesh", [
|
|
1067
|
-
"prefab"
|
|
1068
|
-
], true)
|
|
1069
|
-
], exports.MeshLoader);
|
|
1070
|
-
|
|
1071
|
-
exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
|
|
1072
|
-
_inherits(EditorTextureLoader, Loader1);
|
|
1073
|
-
function EditorTextureLoader() {
|
|
1074
|
-
return Loader1.apply(this, arguments);
|
|
1075
|
-
}
|
|
1076
|
-
var _proto = EditorTextureLoader.prototype;
|
|
1077
|
-
_proto.load = function load(item, resourceManager) {
|
|
1078
|
-
var _this = this;
|
|
1079
|
-
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
1080
|
-
_this.request(item.url, {
|
|
1081
|
-
type: "arraybuffer"
|
|
1082
|
-
}).then(function(data) {
|
|
1083
|
-
decode(data, resourceManager.engine).then(function(texture) {
|
|
1084
|
-
resolve(texture);
|
|
1085
|
-
});
|
|
1086
|
-
}).catch(reject);
|
|
1087
|
-
});
|
|
1088
|
-
};
|
|
1089
|
-
return EditorTextureLoader;
|
|
1090
|
-
}(miniprogram.Loader);
|
|
1091
|
-
exports.EditorTextureLoader = __decorate([
|
|
1092
|
-
miniprogram.resourceLoader("EditorTexture2D", [
|
|
1093
|
-
"prefab"
|
|
1094
|
-
], true)
|
|
1095
|
-
], exports.EditorTextureLoader);
|
|
1107
|
+
exports.SpecularMode = void 0;
|
|
1108
|
+
(function(SpecularMode) {
|
|
1109
|
+
SpecularMode["Sky"] = "Sky";
|
|
1110
|
+
SpecularMode["Custom"] = "Custom";
|
|
1111
|
+
})(exports.SpecularMode || (exports.SpecularMode = {}));
|
|
1096
1112
|
|
|
1097
1113
|
/**
|
|
1098
1114
|
* Decode engine binary resource.
|
|
@@ -1100,9 +1116,13 @@ exports.EditorTextureLoader = __decorate([
|
|
|
1100
1116
|
* @param engine - engine
|
|
1101
1117
|
* @returns
|
|
1102
1118
|
*/ function decode(arrayBuffer, engine) {
|
|
1119
|
+
for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
1120
|
+
args[_key - 2] = arguments[_key];
|
|
1121
|
+
}
|
|
1122
|
+
var _decoderMap_header_type;
|
|
1103
1123
|
var header = FileHeader.decode(arrayBuffer);
|
|
1104
1124
|
var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
|
|
1105
|
-
return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
|
|
1125
|
+
return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat(engine, bufferReader, args)).then(function(object) {
|
|
1106
1126
|
object.name = header.name;
|
|
1107
1127
|
return object;
|
|
1108
1128
|
});
|
|
@@ -1270,39 +1290,42 @@ BufferLoader = __decorate([
|
|
|
1270
1290
|
], BufferLoader);
|
|
1271
1291
|
|
|
1272
1292
|
var EnvLoader = /*#__PURE__*/ function(Loader1) {
|
|
1273
|
-
_inherits(
|
|
1274
|
-
function
|
|
1293
|
+
_inherits(EnvLoader1, Loader1);
|
|
1294
|
+
function EnvLoader1() {
|
|
1275
1295
|
return Loader1.apply(this, arguments);
|
|
1276
1296
|
}
|
|
1277
|
-
var _proto =
|
|
1297
|
+
var _proto = EnvLoader1.prototype;
|
|
1278
1298
|
_proto.load = function load(item, resourceManager) {
|
|
1279
1299
|
var _this = this;
|
|
1280
1300
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
1281
|
-
|
|
1301
|
+
var engine = resourceManager.engine;
|
|
1302
|
+
var request = _this.request;
|
|
1303
|
+
request(item.url, _extends({}, item, {
|
|
1282
1304
|
type: "arraybuffer"
|
|
1283
|
-
}).then(function(arraybuffer) {
|
|
1284
|
-
var
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
var texture = new miniprogram.TextureCube(engine, size);
|
|
1290
|
-
texture.filterMode = miniprogram.TextureFilterMode.Trilinear;
|
|
1291
|
-
var mipmapCount = texture.mipmapCount;
|
|
1292
|
-
var offset = shByteLength + 2;
|
|
1293
|
-
for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
|
|
1294
|
-
var mipSize = size >> mipLevel;
|
|
1295
|
-
for(var face = 0; face < 6; face++){
|
|
1296
|
-
var dataSize = mipSize * mipSize * 4;
|
|
1297
|
-
var data = new Uint8Array(arraybuffer, offset, dataSize);
|
|
1298
|
-
offset += dataSize;
|
|
1299
|
-
texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + face, data, mipLevel);
|
|
1305
|
+
})).then(function(arraybuffer) {
|
|
1306
|
+
var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
|
|
1307
|
+
engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
1308
|
+
_inherits(_class, ContentRestorer);
|
|
1309
|
+
function _class() {
|
|
1310
|
+
return ContentRestorer.apply(this, arguments);
|
|
1300
1311
|
}
|
|
1301
|
-
|
|
1312
|
+
var _proto = _class.prototype;
|
|
1313
|
+
_proto.restoreContent = function restoreContent() {
|
|
1314
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
1315
|
+
request(item.url, _extends({}, item, {
|
|
1316
|
+
type: "arraybuffer"
|
|
1317
|
+
})).then(function(buffer) {
|
|
1318
|
+
EnvLoader._setTextureByBuffer(engine, buffer, texture);
|
|
1319
|
+
resolve(texture);
|
|
1320
|
+
}).catch(reject);
|
|
1321
|
+
});
|
|
1322
|
+
};
|
|
1323
|
+
return _class;
|
|
1324
|
+
}(miniprogram.ContentRestorer))(texture));
|
|
1302
1325
|
var ambientLight = new miniprogram.AmbientLight(engine);
|
|
1303
1326
|
var sh = new miniprogram$1.SphericalHarmonics3();
|
|
1304
1327
|
ambientLight.diffuseMode = miniprogram.DiffuseMode.SphericalHarmonics;
|
|
1305
|
-
sh.copyFromArray(
|
|
1328
|
+
sh.copyFromArray(new Float32Array(arraybuffer, 0, 27));
|
|
1306
1329
|
ambientLight.diffuseSphericalHarmonics = sh;
|
|
1307
1330
|
ambientLight.specularTexture = texture;
|
|
1308
1331
|
ambientLight.specularTextureDecodeRGBM = true;
|
|
@@ -1312,7 +1335,28 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
1312
1335
|
});
|
|
1313
1336
|
});
|
|
1314
1337
|
};
|
|
1315
|
-
|
|
1338
|
+
/**
|
|
1339
|
+
* @internal
|
|
1340
|
+
*/ EnvLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
|
|
1341
|
+
var _this;
|
|
1342
|
+
var shByteLength = 27 * 4;
|
|
1343
|
+
var size = (_this = new Uint16Array(buffer, shByteLength, 1)) == null ? void 0 : _this[0];
|
|
1344
|
+
texture || (texture = new miniprogram.TextureCube(engine, size));
|
|
1345
|
+
texture.filterMode = miniprogram.TextureFilterMode.Trilinear;
|
|
1346
|
+
var mipmapCount = texture.mipmapCount;
|
|
1347
|
+
var offset = shByteLength + 2;
|
|
1348
|
+
for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
|
|
1349
|
+
var mipSize = size >> mipLevel;
|
|
1350
|
+
for(var face = 0; face < 6; face++){
|
|
1351
|
+
var dataSize = mipSize * mipSize * 4;
|
|
1352
|
+
var data = new Uint8Array(buffer, offset, dataSize);
|
|
1353
|
+
offset += dataSize;
|
|
1354
|
+
texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + face, data, mipLevel);
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
return texture;
|
|
1358
|
+
};
|
|
1359
|
+
return EnvLoader1;
|
|
1316
1360
|
}(miniprogram.Loader);
|
|
1317
1361
|
EnvLoader = __decorate([
|
|
1318
1362
|
miniprogram.resourceLoader(miniprogram.AssetType.Env, [
|
|
@@ -1600,7 +1644,7 @@ var TextureWrapMode;
|
|
|
1600
1644
|
var glTFItems = this.glTF[glTFSchemaMap[type]];
|
|
1601
1645
|
if (glTFItems && (index === undefined || glTFItems[index])) {
|
|
1602
1646
|
if (index === undefined) {
|
|
1603
|
-
resource = type ===
|
|
1647
|
+
resource = type === 8 ? glTFItems.map(function(_, index) {
|
|
1604
1648
|
return _this.get(type, index);
|
|
1605
1649
|
}) : Promise.all(glTFItems.map(function(_, index) {
|
|
1606
1650
|
return _this.get(type, index);
|
|
@@ -1622,11 +1666,11 @@ var TextureWrapMode;
|
|
|
1622
1666
|
_this.glTF = json;
|
|
1623
1667
|
return Promise.all([
|
|
1624
1668
|
_this.get(1),
|
|
1625
|
-
_this.get(4),
|
|
1626
1669
|
_this.get(5),
|
|
1627
1670
|
_this.get(6),
|
|
1628
|
-
_this.get(
|
|
1671
|
+
_this.get(7),
|
|
1629
1672
|
_this.get(9),
|
|
1673
|
+
_this.get(10),
|
|
1630
1674
|
_this.get(2)
|
|
1631
1675
|
]).then(function() {
|
|
1632
1676
|
var glTFResource = _this.glTFResource;
|
|
@@ -1664,7 +1708,7 @@ var TextureWrapMode;
|
|
|
1664
1708
|
var _this = this;
|
|
1665
1709
|
var glTFResourceKey = glTFResourceMap[type];
|
|
1666
1710
|
if (!glTFResourceKey) return;
|
|
1667
|
-
if (type ===
|
|
1711
|
+
if (type === 8) {
|
|
1668
1712
|
var _this_glTFResource, _glTFResourceKey;
|
|
1669
1713
|
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
1670
1714
|
} else {
|
|
@@ -1672,7 +1716,7 @@ var TextureWrapMode;
|
|
|
1672
1716
|
resource.then(function(item) {
|
|
1673
1717
|
var _this_glTFResource, _glTFResourceKey;
|
|
1674
1718
|
((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
|
|
1675
|
-
if (type ===
|
|
1719
|
+
if (type === 7) {
|
|
1676
1720
|
for(var i = 0, length = item.length; i < length; i++){
|
|
1677
1721
|
var mesh = item[i];
|
|
1678
1722
|
// @ts-ignore
|
|
@@ -1712,17 +1756,18 @@ exports.GLTFParserType = void 0;
|
|
|
1712
1756
|
GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
|
|
1713
1757
|
GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
|
|
1714
1758
|
GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
|
|
1715
|
-
GLTFParserType[GLTFParserType["
|
|
1716
|
-
GLTFParserType[GLTFParserType["
|
|
1717
|
-
GLTFParserType[GLTFParserType["
|
|
1718
|
-
GLTFParserType[GLTFParserType["
|
|
1719
|
-
GLTFParserType[GLTFParserType["
|
|
1720
|
-
GLTFParserType[GLTFParserType["
|
|
1759
|
+
GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
|
|
1760
|
+
GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
|
|
1761
|
+
GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
|
|
1762
|
+
GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
|
|
1763
|
+
GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
|
|
1764
|
+
GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
|
|
1765
|
+
GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
|
|
1721
1766
|
})(exports.GLTFParserType || (exports.GLTFParserType = {}));
|
|
1722
1767
|
var _obj;
|
|
1723
|
-
var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[
|
|
1768
|
+
var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[5] = "textures", _obj[6] = "materials", _obj[7] = "meshes", _obj[8] = "nodes", _obj[9] = "skins", _obj[10] = "animations", _obj[4] = "bufferViews", _obj);
|
|
1724
1769
|
var _obj1;
|
|
1725
|
-
var glTFResourceMap = (_obj1 = {}, _obj1[2] = "sceneRoots", _obj1[
|
|
1770
|
+
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);
|
|
1726
1771
|
function registerGLTFParser(pipeline) {
|
|
1727
1772
|
return function(Parser) {
|
|
1728
1773
|
var parser = new Parser();
|
|
@@ -1827,113 +1872,68 @@ function registerGLTFParser(pipeline) {
|
|
|
1827
1872
|
};
|
|
1828
1873
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
1829
1874
|
var componentType = accessor.componentType;
|
|
1830
|
-
var
|
|
1831
|
-
var
|
|
1832
|
-
var
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
var
|
|
1838
|
-
var
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1875
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
1876
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1877
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
1878
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
1879
|
+
var accessorCount = accessor.count;
|
|
1880
|
+
var promise;
|
|
1881
|
+
if (accessor.bufferView !== undefined) {
|
|
1882
|
+
var bufferViewIndex = accessor.bufferView;
|
|
1883
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
1884
|
+
promise = context.get(exports.GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
1885
|
+
var bufferIndex = bufferView.buffer;
|
|
1886
|
+
var _bufferViewData_byteOffset;
|
|
1887
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
1888
|
+
var _accessor_byteOffset;
|
|
1889
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
1890
|
+
var bufferStride = bufferView.byteStride;
|
|
1891
|
+
var bufferInfo;
|
|
1892
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
1893
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
1894
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
1895
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
1896
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
1897
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
1898
|
+
if (!bufferInfo) {
|
|
1899
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
1900
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
1901
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
1902
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
1903
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
1904
|
+
}
|
|
1905
|
+
} else {
|
|
1906
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
1907
|
+
var count1 = accessorCount * dataElementSize;
|
|
1908
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
1909
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
1910
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
1859
1911
|
}
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
return bufferInfo
|
|
1871
|
-
|
|
1912
|
+
return bufferInfo;
|
|
1913
|
+
});
|
|
1914
|
+
} else {
|
|
1915
|
+
var count = accessorCount * dataElementSize;
|
|
1916
|
+
var data = new TypedArray(count);
|
|
1917
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
1918
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
1919
|
+
promise = Promise.resolve(bufferInfo);
|
|
1920
|
+
}
|
|
1921
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
1922
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
1923
|
+
return bufferInfo;
|
|
1924
|
+
});
|
|
1925
|
+
}) : promise;
|
|
1872
1926
|
};
|
|
1873
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
1874
|
-
var
|
|
1875
|
-
var
|
|
1876
|
-
var
|
|
1877
|
-
var
|
|
1927
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
1928
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
1929
|
+
var stride = buffer.length / count;
|
|
1930
|
+
var vertices = new Array(count);
|
|
1931
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
1878
1932
|
for(var i = 0; i < count; i++){
|
|
1879
|
-
var index =
|
|
1880
|
-
|
|
1881
|
-
}
|
|
1882
|
-
return vector3s;
|
|
1883
|
-
};
|
|
1884
|
-
/**
|
|
1885
|
-
* @deprecated
|
|
1886
|
-
* Get accessor data.
|
|
1887
|
-
*/ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
|
|
1888
|
-
var bufferViews = glTF.bufferViews;
|
|
1889
|
-
var _accessor_bufferView;
|
|
1890
|
-
var bufferView = bufferViews[(_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0];
|
|
1891
|
-
var arrayBuffer = buffers[bufferView.buffer];
|
|
1892
|
-
var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
|
|
1893
|
-
var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
|
|
1894
|
-
var byteOffset = accessorByteOffset + bufferViewByteOffset;
|
|
1895
|
-
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1896
|
-
var length = accessorTypeSize * accessor.count;
|
|
1897
|
-
var _bufferView_byteStride;
|
|
1898
|
-
var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
|
|
1899
|
-
var arrayType = GLTFUtils.getComponentType(accessor.componentType);
|
|
1900
|
-
var uint8Array;
|
|
1901
|
-
if (byteStride) {
|
|
1902
|
-
var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
|
|
1903
|
-
uint8Array = new Uint8Array(accessor.count * accessorByteSize);
|
|
1904
|
-
var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
|
|
1905
|
-
for(var i = 0; i < accessor.count; i++){
|
|
1906
|
-
for(var j = 0; j < accessorByteSize; j++){
|
|
1907
|
-
uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
|
|
1908
|
-
}
|
|
1909
|
-
}
|
|
1910
|
-
} else {
|
|
1911
|
-
uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
|
|
1912
|
-
}
|
|
1913
|
-
var typedArray = new arrayType(uint8Array.buffer);
|
|
1914
|
-
if (accessor.sparse) {
|
|
1915
|
-
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
1916
|
-
var indicesBufferView = bufferViews[indices.bufferView];
|
|
1917
|
-
var valuesBufferView = bufferViews[values.bufferView];
|
|
1918
|
-
var indicesArrayBuffer = buffers[indicesBufferView.buffer];
|
|
1919
|
-
var valuesArrayBuffer = buffers[valuesBufferView.buffer];
|
|
1920
|
-
var _indices_byteOffset, _indicesBufferView_byteOffset;
|
|
1921
|
-
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
|
|
1922
|
-
var indicesByteLength = indicesBufferView.byteLength;
|
|
1923
|
-
var _values_byteOffset, _valuesBufferView_byteOffset;
|
|
1924
|
-
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
|
|
1925
|
-
var valuesByteLength = valuesBufferView.byteLength;
|
|
1926
|
-
var indicesType = GLTFUtils.getComponentType(indices.componentType);
|
|
1927
|
-
var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
|
|
1928
|
-
var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
|
|
1929
|
-
for(var i1 = 0; i1 < count; i1++){
|
|
1930
|
-
var replaceIndex = indicesArray[i1];
|
|
1931
|
-
for(var j1 = 0; j1 < accessorTypeSize; j1++){
|
|
1932
|
-
typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
|
|
1933
|
-
}
|
|
1934
|
-
}
|
|
1933
|
+
var index = baseOffset + i * stride;
|
|
1934
|
+
vertices[i] = new miniprogram$1.Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
1935
1935
|
}
|
|
1936
|
-
return
|
|
1936
|
+
return vertices;
|
|
1937
1937
|
};
|
|
1938
1938
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
1939
1939
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -1942,40 +1942,43 @@ function registerGLTFParser(pipeline) {
|
|
|
1942
1942
|
};
|
|
1943
1943
|
/**
|
|
1944
1944
|
* Get accessor data.
|
|
1945
|
-
*/ GLTFUtils.processingSparseData = function processingSparseData(
|
|
1945
|
+
*/ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
|
|
1946
1946
|
var restoreInfo = bufferInfo.restoreInfo;
|
|
1947
|
+
var bufferViews = context.glTF.bufferViews;
|
|
1947
1948
|
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1948
1949
|
var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
|
|
1949
1950
|
var data = bufferInfo.data.slice();
|
|
1950
1951
|
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
1951
1952
|
var indicesBufferView = bufferViews[indices.bufferView];
|
|
1952
1953
|
var valuesBufferView = bufferViews[values.bufferView];
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
var
|
|
1974
|
-
|
|
1975
|
-
|
|
1954
|
+
return Promise.all([
|
|
1955
|
+
context.get(exports.GLTFParserType.BufferView, indices.bufferView),
|
|
1956
|
+
context.get(exports.GLTFParserType.BufferView, values.bufferView)
|
|
1957
|
+
]).then(function(param) {
|
|
1958
|
+
var indicesUint8Array = param[0], valuesUin8Array = param[1];
|
|
1959
|
+
var _indices_byteOffset, _indicesUint8Array_byteOffset;
|
|
1960
|
+
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
|
|
1961
|
+
var indicesByteLength = indicesUint8Array.byteLength;
|
|
1962
|
+
var _values_byteOffset, _valuesUin8Array_byteOffset;
|
|
1963
|
+
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
|
|
1964
|
+
var valuesByteLength = valuesUin8Array.byteLength;
|
|
1965
|
+
restoreInfo.typeSize = accessorTypeSize;
|
|
1966
|
+
restoreInfo.sparseCount = count;
|
|
1967
|
+
var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
|
|
1968
|
+
var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
|
|
1969
|
+
var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
|
|
1970
|
+
restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
|
|
1971
|
+
var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
|
|
1972
|
+
var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
|
|
1973
|
+
restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
|
|
1974
|
+
for(var i = 0; i < count; i++){
|
|
1975
|
+
var replaceIndex = indicesArray[i];
|
|
1976
|
+
for(var j = 0; j < accessorTypeSize; j++){
|
|
1977
|
+
data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
|
|
1978
|
+
}
|
|
1976
1979
|
}
|
|
1977
|
-
|
|
1978
|
-
|
|
1980
|
+
bufferInfo.data = data;
|
|
1981
|
+
});
|
|
1979
1982
|
};
|
|
1980
1983
|
GLTFUtils.getIndexFormat = function getIndexFormat(type) {
|
|
1981
1984
|
switch(type){
|
|
@@ -2073,28 +2076,29 @@ function registerGLTFParser(pipeline) {
|
|
|
2073
2076
|
BIN: 0x004e4942
|
|
2074
2077
|
};
|
|
2075
2078
|
var dataView = new DataView(originBuffer);
|
|
2076
|
-
//
|
|
2079
|
+
// Read header
|
|
2077
2080
|
var header = {
|
|
2078
2081
|
magic: dataView.getUint32(0, true),
|
|
2079
2082
|
version: dataView.getUint32(UINT32_LENGTH, true),
|
|
2080
2083
|
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
2081
2084
|
};
|
|
2085
|
+
// Return the original buffer if it is not a glb
|
|
2082
2086
|
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
2083
2087
|
return {
|
|
2084
2088
|
originBuffer: originBuffer
|
|
2085
2089
|
};
|
|
2086
2090
|
}
|
|
2087
|
-
//
|
|
2091
|
+
// Read main data
|
|
2088
2092
|
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
2089
2093
|
var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
|
|
2090
|
-
//
|
|
2094
|
+
// Read glTF json
|
|
2091
2095
|
if (chunkType !== GLB_CHUNK_TYPES.JSON) {
|
|
2092
2096
|
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
2093
2097
|
return null;
|
|
2094
2098
|
}
|
|
2095
2099
|
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
2096
2100
|
var glTF = JSON.parse(miniprogram.Utils.decodeText(glTFData));
|
|
2097
|
-
//
|
|
2101
|
+
// Read all buffers
|
|
2098
2102
|
var buffers = [];
|
|
2099
2103
|
var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
|
|
2100
2104
|
var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
|
|
@@ -2985,13 +2989,39 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2985
2989
|
/**
|
|
2986
2990
|
* @internal
|
|
2987
2991
|
*/ _proto.load = function load(item, resourceManager) {
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2992
|
+
var _this = this;
|
|
2993
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
2994
|
+
var request = _this.request;
|
|
2995
|
+
request(item.url, _extends({}, item, {
|
|
2996
|
+
type: "arraybuffer"
|
|
2997
|
+
})).then(function(buffer) {
|
|
2998
|
+
return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
2999
|
+
var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
3000
|
+
return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
|
|
3001
|
+
}).then(function(texture) {
|
|
3002
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
3003
|
+
_inherits(_class, ContentRestorer);
|
|
3004
|
+
function _class() {
|
|
3005
|
+
return ContentRestorer.apply(this, arguments);
|
|
3006
|
+
}
|
|
3007
|
+
var _proto = _class.prototype;
|
|
3008
|
+
_proto.restoreContent = function restoreContent() {
|
|
3009
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
3010
|
+
request(item.url, _extends({}, item, {
|
|
3011
|
+
type: "arraybuffer"
|
|
3012
|
+
})).then(function(buffer) {
|
|
3013
|
+
return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
3014
|
+
var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
3015
|
+
return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, texture);
|
|
3016
|
+
});
|
|
3017
|
+
}).then(resolve).catch(reject);
|
|
3018
|
+
});
|
|
3019
|
+
};
|
|
3020
|
+
return _class;
|
|
3021
|
+
}(miniprogram.ContentRestorer))(texture));
|
|
3022
|
+
resolve(texture);
|
|
3023
|
+
});
|
|
3024
|
+
}).catch(reject);
|
|
2995
3025
|
});
|
|
2996
3026
|
};
|
|
2997
3027
|
/**
|
|
@@ -3030,7 +3060,7 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3030
3060
|
};
|
|
3031
3061
|
});
|
|
3032
3062
|
};
|
|
3033
|
-
/** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
|
|
3063
|
+
/** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
|
|
3034
3064
|
var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
|
|
3035
3065
|
var faceCount = faces.length;
|
|
3036
3066
|
var mipmaps = faces[0];
|
|
@@ -3038,13 +3068,13 @@ exports.KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3038
3068
|
var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
|
|
3039
3069
|
var texture;
|
|
3040
3070
|
if (faceCount !== 6) {
|
|
3041
|
-
texture = new miniprogram.Texture2D(engine, width, height, engineFormat, mipmap);
|
|
3071
|
+
texture = restoredTexture || new miniprogram.Texture2D(engine, width, height, engineFormat, mipmap);
|
|
3042
3072
|
for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
|
|
3043
3073
|
var data = mipmaps[mipLevel].data;
|
|
3044
3074
|
texture.setPixelBuffer(data, mipLevel);
|
|
3045
3075
|
}
|
|
3046
3076
|
} else {
|
|
3047
|
-
texture = new miniprogram.TextureCube(engine, height, engineFormat, mipmap);
|
|
3077
|
+
texture = restoredTexture || new miniprogram.TextureCube(engine, height, engineFormat, mipmap);
|
|
3048
3078
|
for(var i = 0; i < faces.length; i++){
|
|
3049
3079
|
var faceData = faces[i];
|
|
3050
3080
|
for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
|
|
@@ -3241,16 +3271,16 @@ exports.KTX2Transcoder = void 0;
|
|
|
3241
3271
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3242
3272
|
var position = restoreInfo.position;
|
|
3243
3273
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3244
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3274
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3245
3275
|
if (restoreInfo.normal) {
|
|
3246
3276
|
var normal = restoreInfo.normal;
|
|
3247
3277
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3248
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3278
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3249
3279
|
}
|
|
3250
3280
|
if (restoreInfo.tangent) {
|
|
3251
3281
|
var tangent = restoreInfo.tangent;
|
|
3252
3282
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3253
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3283
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3254
3284
|
}
|
|
3255
3285
|
}
|
|
3256
3286
|
mesh.uploadData(true);
|
|
@@ -3262,8 +3292,13 @@ exports.KTX2Transcoder = void 0;
|
|
|
3262
3292
|
};
|
|
3263
3293
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3264
3294
|
var main = restoreInfo.main;
|
|
3265
|
-
var
|
|
3266
|
-
|
|
3295
|
+
var data;
|
|
3296
|
+
if (main) {
|
|
3297
|
+
var buffer = buffers[main.bufferIndex];
|
|
3298
|
+
data = new main.TypedArray(buffer, main.byteOffset, main.length);
|
|
3299
|
+
} else {
|
|
3300
|
+
data = new main.TypedArray(main.length);
|
|
3301
|
+
}
|
|
3267
3302
|
var sparseCount = restoreInfo.sparseCount;
|
|
3268
3303
|
if (sparseCount) {
|
|
3269
3304
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3336,11 +3371,12 @@ exports.KTX2Transcoder = void 0;
|
|
|
3336
3371
|
};
|
|
3337
3372
|
/**
|
|
3338
3373
|
* @internal
|
|
3339
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3374
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3340
3375
|
this.buffer = buffer;
|
|
3341
|
-
this.stride = stride;
|
|
3342
3376
|
this.byteOffset = byteOffset;
|
|
3343
3377
|
this.count = count;
|
|
3378
|
+
this.normalized = normalized;
|
|
3379
|
+
this.componentType = componentType;
|
|
3344
3380
|
};
|
|
3345
3381
|
|
|
3346
3382
|
/**
|
|
@@ -3517,8 +3553,13 @@ exports.GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3517
3553
|
type: "arraybuffer"
|
|
3518
3554
|
};
|
|
3519
3555
|
return miniprogram.request(url, requestConfig).then(function(buffer) {
|
|
3520
|
-
|
|
3521
|
-
|
|
3556
|
+
var _parseResult;
|
|
3557
|
+
var parseResult = GLTFUtils.parseGLB(context, buffer);
|
|
3558
|
+
// If the buffer is a GLB file, we need to restore the buffer data
|
|
3559
|
+
if ((_parseResult = parseResult) == null ? void 0 : _parseResult.glTF) {
|
|
3560
|
+
restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
|
|
3561
|
+
}
|
|
3562
|
+
return parseResult;
|
|
3522
3563
|
}).then(function(result) {
|
|
3523
3564
|
var _result;
|
|
3524
3565
|
if ((_result = result) == null ? void 0 : _result.glTF) {
|
|
@@ -3936,7 +3977,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
3936
3977
|
resolve(mesh);
|
|
3937
3978
|
} else {
|
|
3938
3979
|
mesh.then(function(mesh) {
|
|
3939
|
-
|
|
3980
|
+
resolve(mesh);
|
|
3940
3981
|
});
|
|
3941
3982
|
}
|
|
3942
3983
|
} else {
|
|
@@ -3944,35 +3985,20 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
3944
3985
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
3945
3986
|
meshRestoreInfo.mesh = mesh1;
|
|
3946
3987
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
3947
|
-
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
3948
|
-
return null;
|
|
3949
|
-
}, function(attributeName, shapeIndex) {
|
|
3950
|
-
var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
|
|
3951
|
-
var attributeAccessorIdx = shapeAccessorIdx[attributeName];
|
|
3952
|
-
if (attributeAccessorIdx) {
|
|
3953
|
-
var accessor = glTF.accessors[attributeAccessorIdx];
|
|
3954
|
-
return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
|
|
3955
|
-
} else {
|
|
3956
|
-
return null;
|
|
3957
|
-
}
|
|
3958
|
-
}, function() {
|
|
3959
|
-
var indexAccessor = glTF.accessors[gltfPrimitive.indices];
|
|
3960
|
-
return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
|
|
3961
|
-
return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
|
|
3962
|
-
});
|
|
3963
|
-
}, context.params.keepMeshData).then(resolve);
|
|
3988
|
+
exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
3964
3989
|
}
|
|
3965
3990
|
});
|
|
3966
3991
|
};
|
|
3967
3992
|
var meshInfo = context.glTF.meshes[index];
|
|
3968
|
-
var glTF = context.glTF,
|
|
3993
|
+
var glTF = context.glTF, glTFResource = context.glTFResource;
|
|
3994
|
+
var engine = glTFResource.engine;
|
|
3969
3995
|
var primitivePromises = new Array();
|
|
3970
3996
|
for(var i = 0, length = meshInfo.primitives.length; i < length; i++)_loop(i);
|
|
3971
3997
|
return Promise.all(primitivePromises);
|
|
3972
3998
|
};
|
|
3973
3999
|
/**
|
|
3974
4000
|
* @internal
|
|
3975
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
4001
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
3976
4002
|
var _loop = function(attribute) {
|
|
3977
4003
|
var accessor = accessors[attributes[attribute]];
|
|
3978
4004
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4043,6 +4069,7 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4043
4069
|
});
|
|
4044
4070
|
promises.push(promise);
|
|
4045
4071
|
};
|
|
4072
|
+
var _this = this;
|
|
4046
4073
|
var accessors = gltf.accessors;
|
|
4047
4074
|
var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
|
|
4048
4075
|
var engine = mesh.engine;
|
|
@@ -4067,61 +4094,68 @@ exports.GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1)
|
|
|
4067
4094
|
}
|
|
4068
4095
|
// BlendShapes
|
|
4069
4096
|
if (targets) {
|
|
4070
|
-
promises.push(exports.GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4097
|
+
promises.push(exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, _this._getBlendShapeData));
|
|
4071
4098
|
}
|
|
4072
4099
|
return Promise.all(promises).then(function() {
|
|
4073
4100
|
mesh.uploadData(!keepMeshData);
|
|
4074
|
-
return
|
|
4101
|
+
return mesh;
|
|
4075
4102
|
});
|
|
4076
4103
|
});
|
|
4077
4104
|
};
|
|
4105
|
+
GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
|
|
4106
|
+
return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
|
|
4107
|
+
var buffer = bufferInfo.data;
|
|
4108
|
+
var _accessor_byteOffset;
|
|
4109
|
+
var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
|
|
4110
|
+
var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
|
|
4111
|
+
var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
|
|
4112
|
+
var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
|
|
4113
|
+
return {
|
|
4114
|
+
vertices: vertices,
|
|
4115
|
+
restoreInfo: restoreInfo
|
|
4116
|
+
};
|
|
4117
|
+
});
|
|
4118
|
+
};
|
|
4078
4119
|
/**
|
|
4079
4120
|
* @internal
|
|
4080
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4081
|
-
var _loop = function(i
|
|
4121
|
+
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets, getBlendShapeData) {
|
|
4122
|
+
var _loop = function(i) {
|
|
4123
|
+
var blendShapeData = {};
|
|
4124
|
+
blendShapeCollection[i] = blendShapeData;
|
|
4082
4125
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
4126
|
+
var targets = gltfPrimitive.targets[i];
|
|
4127
|
+
var normalTarget = targets["NORMAL"];
|
|
4128
|
+
var tangentTarget = targets["TANGENT"];
|
|
4129
|
+
var hasNormal = normalTarget !== undefined;
|
|
4130
|
+
var hasTangent = tangentTarget !== undefined;
|
|
4083
4131
|
var promise = Promise.all([
|
|
4084
|
-
getBlendShapeData("POSITION"
|
|
4085
|
-
getBlendShapeData(
|
|
4086
|
-
getBlendShapeData(
|
|
4087
|
-
]).then(function(
|
|
4088
|
-
var
|
|
4089
|
-
var
|
|
4090
|
-
var tanBufferInfo = infos[2];
|
|
4091
|
-
var target = glTFTargets[i];
|
|
4092
|
-
var posAccessor;
|
|
4093
|
-
var norAccessor;
|
|
4094
|
-
var tanAccessor;
|
|
4095
|
-
var positions = null;
|
|
4096
|
-
if (posBufferInfo) {
|
|
4097
|
-
posAccessor = accessors[target["POSITION"]];
|
|
4098
|
-
var _posAccessor_byteOffset;
|
|
4099
|
-
positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
|
|
4100
|
-
}
|
|
4101
|
-
var normals = null;
|
|
4102
|
-
if (norBufferInfo) {
|
|
4103
|
-
norAccessor = accessors[target["NORMAL"]];
|
|
4104
|
-
var _norAccessor_byteOffset;
|
|
4105
|
-
normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
|
|
4106
|
-
}
|
|
4107
|
-
var tangents = null;
|
|
4108
|
-
if (tanBufferInfo) {
|
|
4109
|
-
tanAccessor = accessors[target["NORMAL"]];
|
|
4110
|
-
var _tanAccessor_byteOffset;
|
|
4111
|
-
tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
|
|
4112
|
-
}
|
|
4132
|
+
getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
|
|
4133
|
+
hasNormal ? getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
|
|
4134
|
+
hasTangent ? getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
|
|
4135
|
+
]).then(function(vertices) {
|
|
4136
|
+
var _tangentData;
|
|
4137
|
+
var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
|
|
4113
4138
|
var blendShape = new miniprogram.BlendShape(name);
|
|
4114
|
-
blendShape.addFrame(1.0,
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
meshRestoreInfo.blendShapes.push(new BlendShapeRestoreInfo(blendShape, new BlendShapeDataRestoreInfo(posBufferInfo.restoreInfo, posBufferInfo.stride, (_posAccessor_byteOffset1 = posAccessor.byteOffset) != null ? _posAccessor_byteOffset1 : 0, posAccessor.count), norBufferInfo ? new BlendShapeDataRestoreInfo(norBufferInfo.restoreInfo, norBufferInfo.stride, (_norAccessor_byteOffset1 = norAccessor.byteOffset) != null ? _norAccessor_byteOffset1 : 0, norAccessor.count) : null, tanBufferInfo ? new BlendShapeDataRestoreInfo(tanBufferInfo.restoreInfo, tanBufferInfo.stride, (_tanAccessor_byteOffset1 = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset1 : 0, tanAccessor.count) : null));
|
|
4139
|
+
blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
|
|
4140
|
+
blendShapeData.blendShape = blendShape;
|
|
4141
|
+
blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
|
|
4118
4142
|
});
|
|
4119
4143
|
promises.push(promise);
|
|
4120
4144
|
};
|
|
4145
|
+
var glTF = context.glTF;
|
|
4146
|
+
var accessors = glTF.accessors;
|
|
4121
4147
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4122
4148
|
var promises = new Array();
|
|
4123
|
-
|
|
4124
|
-
|
|
4149
|
+
var blendShapeCount = glTFTargets.length;
|
|
4150
|
+
var blendShapeCollection = new Array(blendShapeCount);
|
|
4151
|
+
for(var i = 0; i < blendShapeCount; i++)_loop(i);
|
|
4152
|
+
return Promise.all(promises).then(function() {
|
|
4153
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
|
|
4154
|
+
var blendShape = _step.value;
|
|
4155
|
+
mesh.addBlendShape(blendShape.blendShape);
|
|
4156
|
+
meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
|
|
4157
|
+
}
|
|
4158
|
+
});
|
|
4125
4159
|
};
|
|
4126
4160
|
return GLTFMeshParser1;
|
|
4127
4161
|
}(GLTFParser), function() {
|
|
@@ -4502,6 +4536,25 @@ exports.GLTFValidator = __decorate([
|
|
|
4502
4536
|
registerGLTFParser(exports.GLTFParserType.Validator)
|
|
4503
4537
|
], exports.GLTFValidator);
|
|
4504
4538
|
|
|
4539
|
+
exports.GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
4540
|
+
_inherits(GLTFBufferViewParser, GLTFParser1);
|
|
4541
|
+
function GLTFBufferViewParser() {
|
|
4542
|
+
return GLTFParser1.apply(this, arguments);
|
|
4543
|
+
}
|
|
4544
|
+
var _proto = GLTFBufferViewParser.prototype;
|
|
4545
|
+
_proto.parse = function parse(context, index) {
|
|
4546
|
+
var bufferView = context.glTF.bufferViews[index];
|
|
4547
|
+
var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
|
|
4548
|
+
return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(exports.GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
|
|
4549
|
+
return new Uint8Array(buffer, byteOffset, byteLength);
|
|
4550
|
+
});
|
|
4551
|
+
};
|
|
4552
|
+
return GLTFBufferViewParser;
|
|
4553
|
+
}(GLTFParser);
|
|
4554
|
+
exports.GLTFBufferViewParser = __decorate([
|
|
4555
|
+
registerGLTFParser(exports.GLTFParserType.BufferView)
|
|
4556
|
+
], exports.GLTFBufferViewParser);
|
|
4557
|
+
|
|
4505
4558
|
var GLTFLoader = /*#__PURE__*/ function(Loader1) {
|
|
4506
4559
|
_inherits(GLTFLoader, Loader1);
|
|
4507
4560
|
function GLTFLoader() {
|
|
@@ -4538,23 +4591,48 @@ var HDRLoader = (_HDRLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
4538
4591
|
var _this = this;
|
|
4539
4592
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
4540
4593
|
var engine = resourceManager.engine;
|
|
4541
|
-
_this.request
|
|
4594
|
+
var request = _this.request;
|
|
4595
|
+
_this.request(item.url, _extends({}, item, {
|
|
4542
4596
|
type: "arraybuffer"
|
|
4543
|
-
}).then(function(buffer) {
|
|
4544
|
-
var
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4597
|
+
})).then(function(buffer) {
|
|
4598
|
+
var texture = HDRLoader._setTextureByBuffer(engine, buffer);
|
|
4599
|
+
engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
4600
|
+
_inherits(_class, ContentRestorer);
|
|
4601
|
+
function _class() {
|
|
4602
|
+
return ContentRestorer.apply(this, arguments);
|
|
4603
|
+
}
|
|
4604
|
+
var _proto = _class.prototype;
|
|
4605
|
+
_proto.restoreContent = function restoreContent() {
|
|
4606
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
4607
|
+
request(item.url, _extends({}, item, {
|
|
4608
|
+
type: "arraybuffer"
|
|
4609
|
+
})).then(function(buffer) {
|
|
4610
|
+
HDRLoader._setTextureByBuffer(engine, buffer, texture);
|
|
4611
|
+
resolve(texture);
|
|
4612
|
+
}).catch(reject);
|
|
4613
|
+
});
|
|
4614
|
+
};
|
|
4615
|
+
return _class;
|
|
4616
|
+
}(miniprogram.ContentRestorer))(texture));
|
|
4554
4617
|
resolve(texture);
|
|
4555
4618
|
}).catch(reject);
|
|
4556
4619
|
});
|
|
4557
4620
|
};
|
|
4621
|
+
/**
|
|
4622
|
+
* @internal
|
|
4623
|
+
*/ HDRLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
|
|
4624
|
+
var bufferArray = new Uint8Array(buffer);
|
|
4625
|
+
var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
|
|
4626
|
+
var cubeSize = height >> 1;
|
|
4627
|
+
texture || (texture = new miniprogram.TextureCube(engine, cubeSize));
|
|
4628
|
+
var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
|
|
4629
|
+
var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
|
|
4630
|
+
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
4631
|
+
texture.setPixelBuffer(miniprogram.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
|
|
4632
|
+
}
|
|
4633
|
+
texture.generateMipmaps();
|
|
4634
|
+
return texture;
|
|
4635
|
+
};
|
|
4558
4636
|
HDRLoader1._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
|
|
4559
4637
|
if (!pixels) {
|
|
4560
4638
|
throw "ConvertPanoramaToCubemap: input cannot be null";
|
|
@@ -5092,7 +5170,8 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5092
5170
|
_proto.load = function load(item, resourceManager) {
|
|
5093
5171
|
var _this = this;
|
|
5094
5172
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
5095
|
-
_this.request
|
|
5173
|
+
var request = _this.request;
|
|
5174
|
+
request(item.url, _extends({}, item, {
|
|
5096
5175
|
type: "arraybuffer"
|
|
5097
5176
|
})).then(function(bin) {
|
|
5098
5177
|
var parsedData = parseSingleKTX(bin);
|
|
@@ -5103,6 +5182,32 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5103
5182
|
var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
5104
5183
|
texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
|
|
5105
5184
|
}
|
|
5185
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
5186
|
+
_inherits(_class, ContentRestorer);
|
|
5187
|
+
function _class() {
|
|
5188
|
+
return ContentRestorer.apply(this, arguments);
|
|
5189
|
+
}
|
|
5190
|
+
var _proto = _class.prototype;
|
|
5191
|
+
_proto.restoreContent = function restoreContent() {
|
|
5192
|
+
var _this = this;
|
|
5193
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
5194
|
+
request(item.url, _extends({}, item, {
|
|
5195
|
+
type: "arraybuffer"
|
|
5196
|
+
})).then(function(bin) {
|
|
5197
|
+
var mipmaps = parseSingleKTX(bin).mipmaps;
|
|
5198
|
+
var texture = _this.resource;
|
|
5199
|
+
for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
|
|
5200
|
+
var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
5201
|
+
texture.setPixelBuffer(data, miplevel, 0, 0, width, height);
|
|
5202
|
+
}
|
|
5203
|
+
resolve(texture);
|
|
5204
|
+
}).catch(function(e) {
|
|
5205
|
+
reject(e);
|
|
5206
|
+
});
|
|
5207
|
+
});
|
|
5208
|
+
};
|
|
5209
|
+
return _class;
|
|
5210
|
+
}(miniprogram.ContentRestorer))(texture));
|
|
5106
5211
|
resolve(texture);
|
|
5107
5212
|
}).catch(function(e) {
|
|
5108
5213
|
reject(e);
|
|
@@ -5209,11 +5314,32 @@ var MeshLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5209
5314
|
_proto.load = function load(item, resourceManager) {
|
|
5210
5315
|
var _this = this;
|
|
5211
5316
|
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
5212
|
-
_this.request
|
|
5317
|
+
var request = _this.request;
|
|
5318
|
+
var engine = resourceManager.engine;
|
|
5319
|
+
request(item.url, _extends({}, item, {
|
|
5213
5320
|
type: "arraybuffer"
|
|
5214
5321
|
})).then(function(data) {
|
|
5215
|
-
return decode(data,
|
|
5322
|
+
return decode(data, engine);
|
|
5216
5323
|
}).then(function(mesh) {
|
|
5324
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
5325
|
+
_inherits(_class, ContentRestorer);
|
|
5326
|
+
function _class() {
|
|
5327
|
+
return ContentRestorer.apply(this, arguments);
|
|
5328
|
+
}
|
|
5329
|
+
var _proto = _class.prototype;
|
|
5330
|
+
_proto.restoreContent = function restoreContent() {
|
|
5331
|
+
return new miniprogram.AssetPromise(function(resolve, reject) {
|
|
5332
|
+
request(item.url, _extends({}, item, {
|
|
5333
|
+
type: "arraybuffer"
|
|
5334
|
+
})).then(function(data) {
|
|
5335
|
+
return decode(data, engine, mesh);
|
|
5336
|
+
}).then(function(mesh) {
|
|
5337
|
+
resolve(mesh);
|
|
5338
|
+
}).catch(reject);
|
|
5339
|
+
});
|
|
5340
|
+
};
|
|
5341
|
+
return _class;
|
|
5342
|
+
}(miniprogram.ContentRestorer))(mesh));
|
|
5217
5343
|
resolve(mesh);
|
|
5218
5344
|
}).catch(reject);
|
|
5219
5345
|
});
|
|
@@ -5749,14 +5875,17 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5749
5875
|
var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
|
|
5750
5876
|
return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
|
|
5751
5877
|
var mesh = new miniprogram.ModelMesh(engine, glTFMesh.name);
|
|
5752
|
-
|
|
5878
|
+
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
5879
|
+
meshRestoreInfo.mesh = mesh;
|
|
5880
|
+
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
5881
|
+
return _this._parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
|
|
5753
5882
|
for(var j = 0; j < decodedGeometry.attributes.length; j++){
|
|
5754
5883
|
if (decodedGeometry.attributes[j].name === attributeSemantic) {
|
|
5755
5884
|
return decodedGeometry.attributes[j].array;
|
|
5756
5885
|
}
|
|
5757
5886
|
}
|
|
5758
5887
|
return null;
|
|
5759
|
-
}, function(
|
|
5888
|
+
}, function() {
|
|
5760
5889
|
throw "BlendShape animation is not supported when using draco.";
|
|
5761
5890
|
}, function() {
|
|
5762
5891
|
return decodedGeometry.index.array;
|
|
@@ -5769,7 +5898,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5769
5898
|
KHR_draco_mesh_compression._decoder = new miniprogram$3.DRACODecoder();
|
|
5770
5899
|
}
|
|
5771
5900
|
};
|
|
5772
|
-
_proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
|
|
5901
|
+
_proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
|
|
5773
5902
|
var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
|
|
5774
5903
|
var vertexCount;
|
|
5775
5904
|
var accessors = gltf.accessors;
|
|
@@ -5865,7 +5994,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5865
5994
|
mesh.addSubMesh(0, vertexCount, mode);
|
|
5866
5995
|
}
|
|
5867
5996
|
// BlendShapes
|
|
5868
|
-
targets && exports.GLTFMeshParser._createBlendShape(mesh,
|
|
5997
|
+
targets && exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, getBlendShapeData);
|
|
5869
5998
|
mesh.uploadData(!keepMeshData);
|
|
5870
5999
|
return Promise.resolve(mesh);
|
|
5871
6000
|
};
|
|
@@ -6205,6 +6334,7 @@ GALACEAN_animation_event = __decorate([
|
|
|
6205
6334
|
registerGLTFExtension("GALACEAN_animation_event", exports.GLTFExtensionMode.AdditiveParse)
|
|
6206
6335
|
], GALACEAN_animation_event);
|
|
6207
6336
|
|
|
6337
|
+
exports.BufferInfo = BufferInfo;
|
|
6208
6338
|
exports.ComponentMap = ComponentMap;
|
|
6209
6339
|
exports.GLTFExtensionParser = GLTFExtensionParser;
|
|
6210
6340
|
exports.GLTFParser = GLTFParser;
|