@galacean/engine-loader 1.0.0-beta.7 → 1.0.0-beta.9

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.
@@ -503,6 +503,12 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
503
503
  this.vertexBuffers = [];
504
504
  this.blendShapes = [];
505
505
  };
506
+ /**
507
+ * @internal
508
+ */ var BufferRestoreInfo = function BufferRestoreInfo(buffer, data) {
509
+ this.buffer = buffer;
510
+ this.data = data;
511
+ };
506
512
  /**
507
513
  * @internal
508
514
  */ var BufferDataRestoreInfo = function BufferDataRestoreInfo(main, typeSize, sparseCount, sparseIndices, sparseValues) {
@@ -1850,6 +1856,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
1850
1856
  vertexBuffer = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
1851
1857
  vertexBuffer.setData(vertices);
1852
1858
  accessorBuffer.vertexBuffer = vertexBuffer;
1859
+ meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer, accessorBuffer.restoreInfo));
1853
1860
  }
1854
1861
  mesh.setVertexBufferBinding(vertexBuffer, stride, bufferBindIndex);
1855
1862
  vertexBindingInfos[meshId] = bufferBindIndex++;
@@ -1861,6 +1868,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
1861
1868
  vertexElement = new miniprogram.VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
1862
1869
  var vertexBuffer1 = new miniprogram.Buffer(engine, miniprogram.BufferBindFlag.VertexBuffer, vertices.byteLength, miniprogram.BufferUsage.Static);
1863
1870
  vertexBuffer1.setData(vertices);
1871
+ meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
1864
1872
  mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
1865
1873
  vertexBindingInfos[meshId] = bufferBindIndex++;
1866
1874
  }
@@ -2033,14 +2041,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
2033
2041
  camera.enabled = false;
2034
2042
  };
2035
2043
  _proto._createRenderer = function _createRenderer(context, glTFNode, entity) {
2036
- var glTFResource = context.glTFResource, glTF = context.glTF;
2037
- var glTFMeshes = glTF.meshes;
2038
- var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
2039
- var meshID = glTFNode.mesh, skinID = glTFNode.skin;
2040
- var glTFMesh = glTFMeshes[meshID];
2041
- var glTFMeshPrimitives = glTFMesh.primitives;
2042
- var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
2043
- for(var i = 0; i < glTFMeshPrimitives.length; i++){
2044
+ var _loop = function(i) {
2044
2045
  var gltfPrimitive = glTFMeshPrimitives[i];
2045
2046
  var mesh = meshes[meshID][i];
2046
2047
  var renderer = void 0;
@@ -2062,8 +2063,22 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
2062
2063
  var materialIndex = gltfPrimitive.material;
2063
2064
  var material = (materials == null ? void 0 : materials[materialIndex]) || GLTFSceneParser._getDefaultMaterial(engine);
2064
2065
  renderer.setMaterial(material);
2066
+ // Enable vertex color if mesh has COLOR_0 vertex element
2067
+ mesh.vertexElements.forEach(function(element) {
2068
+ if (element.semantic === "COLOR_0") {
2069
+ renderer.enableVertexColor = true;
2070
+ }
2071
+ });
2065
2072
  GLTFParser.executeExtensionsAdditiveAndParse(gltfPrimitive.extensions, context, renderer, gltfPrimitive);
2066
- }
2073
+ };
2074
+ var glTFResource = context.glTFResource, glTF = context.glTF;
2075
+ var glTFMeshes = glTF.meshes;
2076
+ var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
2077
+ var meshID = glTFNode.mesh, skinID = glTFNode.skin;
2078
+ var glTFMesh = glTFMeshes[meshID];
2079
+ var glTFMeshPrimitives = glTFMesh.primitives;
2080
+ var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
2081
+ for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
2067
2082
  };
2068
2083
  _proto._createAnimator = function _createAnimator(context) {
2069
2084
  if (!context.hasSkinned && !context.glTFResource.animations) {
@@ -4122,7 +4137,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4122
4137
  var atlasItem = atlasItems[i];
4123
4138
  if (atlasItem.img) {
4124
4139
  chainPromises.push(resourceManager.load({
4125
- url: atlasItem.img,
4140
+ url: miniprogram.Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
4126
4141
  type: miniprogram.AssetType.Texture2D,
4127
4142
  params: {
4128
4143
  format: format,
package/dist/module.js CHANGED
@@ -1,4 +1,4 @@
1
- import { resourceLoader, AssetType, AssetPromise, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, Loader, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, request, ContentRestorer, IndexFormat, VertexElementFormat, Utils, AnimationClip, InterpolationType, AnimationFloatArrayCurve, Keyframe, AnimationQuaternionCurve, AnimationVector3Curve, SkinnedMeshRenderer, Transform, Entity, PBRMaterial, Logger, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, BlendShape, ModelMesh, Camera, MeshRenderer, Animator, BlinnPhongMaterial, Skin, TextureWrapMode as TextureWrapMode$1, Texture2D, EngineObject, TextureFormat, PBRBaseMaterial, Shader, UnlitMaterial, DirectLight, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationEvent, AnimationColorCurve, AnimationVector4Curve, AnimationVector2Curve, AnimationArrayCurve, AnimationFloatCurve, Scene, SpriteAtlas, Sprite, BackgroundMode, SkyBoxMaterial, PrimitiveMesh } from '@galacean/engine-core';
1
+ import { resourceLoader, AssetType, AssetPromise, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, Loader, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, request, ContentRestorer, IndexFormat, VertexElementFormat, Utils, AnimationClip, InterpolationType, AnimationFloatArrayCurve, Keyframe, AnimationQuaternionCurve, AnimationVector3Curve, SkinnedMeshRenderer, Transform, Entity, PBRMaterial, Logger, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, BlendShape, ModelMesh, Camera, Animator, BlinnPhongMaterial, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, Texture2D, EngineObject, TextureFormat, PBRBaseMaterial, Shader, UnlitMaterial, DirectLight, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationEvent, AnimationColorCurve, AnimationVector4Curve, AnimationVector2Curve, AnimationArrayCurve, AnimationFloatCurve, Scene, SpriteAtlas, Sprite, BackgroundMode, SkyBoxMaterial, PrimitiveMesh } from '@galacean/engine-core';
2
2
  import { SphericalHarmonics3, Vector2, Vector3, Vector4, Color, Quaternion, Matrix, Rect } from '@galacean/engine-math';
3
3
  import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
4
4
  import { DRACODecoder } from '@galacean/engine-draco';
@@ -498,6 +498,12 @@ function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
498
498
  this.vertexBuffers = [];
499
499
  this.blendShapes = [];
500
500
  };
501
+ /**
502
+ * @internal
503
+ */ var BufferRestoreInfo = function BufferRestoreInfo(buffer, data) {
504
+ this.buffer = buffer;
505
+ this.data = data;
506
+ };
501
507
  /**
502
508
  * @internal
503
509
  */ var BufferDataRestoreInfo = function BufferDataRestoreInfo(main, typeSize, sparseCount, sparseIndices, sparseValues) {
@@ -1845,6 +1851,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
1845
1851
  vertexBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
1846
1852
  vertexBuffer.setData(vertices);
1847
1853
  accessorBuffer.vertexBuffer = vertexBuffer;
1854
+ meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer, accessorBuffer.restoreInfo));
1848
1855
  }
1849
1856
  mesh.setVertexBufferBinding(vertexBuffer, stride, bufferBindIndex);
1850
1857
  vertexBindingInfos[meshId] = bufferBindIndex++;
@@ -1856,6 +1863,7 @@ var GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
1856
1863
  vertexElement = new VertexElement(attribute, elementOffset, elementFormat, bufferBindIndex);
1857
1864
  var vertexBuffer1 = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices.byteLength, BufferUsage.Static);
1858
1865
  vertexBuffer1.setData(vertices);
1866
+ meshRestoreInfo.vertexBuffers.push(new BufferRestoreInfo(vertexBuffer1, accessorBuffer.restoreInfo));
1859
1867
  mesh.setVertexBufferBinding(vertexBuffer1, accessorBuffer.stride, bufferBindIndex);
1860
1868
  vertexBindingInfos[meshId] = bufferBindIndex++;
1861
1869
  }
@@ -2028,14 +2036,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
2028
2036
  camera.enabled = false;
2029
2037
  };
2030
2038
  _proto._createRenderer = function _createRenderer(context, glTFNode, entity) {
2031
- var glTFResource = context.glTFResource, glTF = context.glTF;
2032
- var glTFMeshes = glTF.meshes;
2033
- var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
2034
- var meshID = glTFNode.mesh, skinID = glTFNode.skin;
2035
- var glTFMesh = glTFMeshes[meshID];
2036
- var glTFMeshPrimitives = glTFMesh.primitives;
2037
- var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
2038
- for(var i = 0; i < glTFMeshPrimitives.length; i++){
2039
+ var _loop = function(i) {
2039
2040
  var gltfPrimitive = glTFMeshPrimitives[i];
2040
2041
  var mesh = meshes[meshID][i];
2041
2042
  var renderer = void 0;
@@ -2057,8 +2058,22 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
2057
2058
  var materialIndex = gltfPrimitive.material;
2058
2059
  var material = (materials == null ? void 0 : materials[materialIndex]) || GLTFSceneParser._getDefaultMaterial(engine);
2059
2060
  renderer.setMaterial(material);
2061
+ // Enable vertex color if mesh has COLOR_0 vertex element
2062
+ mesh.vertexElements.forEach(function(element) {
2063
+ if (element.semantic === "COLOR_0") {
2064
+ renderer.enableVertexColor = true;
2065
+ }
2066
+ });
2060
2067
  GLTFParser.executeExtensionsAdditiveAndParse(gltfPrimitive.extensions, context, renderer, gltfPrimitive);
2061
- }
2068
+ };
2069
+ var glTFResource = context.glTFResource, glTF = context.glTF;
2070
+ var glTFMeshes = glTF.meshes;
2071
+ var engine = glTFResource.engine, meshes = glTFResource.meshes, materials = glTFResource.materials, skins = glTFResource.skins;
2072
+ var meshID = glTFNode.mesh, skinID = glTFNode.skin;
2073
+ var glTFMesh = glTFMeshes[meshID];
2074
+ var glTFMeshPrimitives = glTFMesh.primitives;
2075
+ var blendShapeWeights = glTFNode.weights || glTFMesh.weights;
2076
+ for(var i = 0; i < glTFMeshPrimitives.length; i++)_loop(i);
2062
2077
  };
2063
2078
  _proto._createAnimator = function _createAnimator(context) {
2064
2079
  if (!context.hasSkinned && !context.glTFResource.animations) {
@@ -4117,7 +4132,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader) {
4117
4132
  var atlasItem = atlasItems[i];
4118
4133
  if (atlasItem.img) {
4119
4134
  chainPromises.push(resourceManager.load({
4120
- url: atlasItem.img,
4135
+ url: Utils.resolveAbsoluteUrl(item.url, atlasItem.img),
4121
4136
  type: AssetType.Texture2D,
4122
4137
  params: {
4123
4138
  format: format,