@galacean/effects 1.2.2 → 1.2.4

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/index.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime player for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v1.2.2
6
+ * Version: v1.2.4
7
7
  */
8
8
 
9
9
  /******************************************************************************
@@ -9243,10 +9243,10 @@ var VFXItem = /** @class */ (function () {
9243
9243
  };
9244
9244
  VFXItem.prototype.translateByPixel = function (x, y) {
9245
9245
  if (this.composition) {
9246
+ // @ts-expect-error
9247
+ var _a = this.composition.renderer.canvas.getBoundingClientRect(), width = _a.width, height = _a.height;
9246
9248
  var z = this.transform.getWorldPosition().z;
9247
- var _a = this.composition.camera.getInverseVPRatio(z), rx = _a.x, ry = _a.y;
9248
- var width = this.composition.renderer.getWidth() / 2;
9249
- var height = this.composition.renderer.getHeight() / 2;
9249
+ var _b = this.composition.camera.getInverseVPRatio(z), rx = _b.x, ry = _b.y;
9250
9250
  this.transform.translate(2 * x * rx / width, -2 * y * ry / height, 0);
9251
9251
  }
9252
9252
  };
@@ -21352,8 +21352,9 @@ var Camera = /** @class */ (function () {
21352
21352
  Camera.prototype.getInverseVPRatio = function (z) {
21353
21353
  var pos = new Vector3(0, 0, z);
21354
21354
  var mat = this.getViewProjectionMatrix();
21355
- var nz = pos.applyMatrix(mat).z;
21356
- return new Vector3(1, 1, nz).applyMatrix(mat);
21355
+ var inverseVP = this.getInverseViewProjectionMatrix();
21356
+ var nz = mat.projectPoint(pos).z;
21357
+ return inverseVP.projectPoint(new Vector3(1, 1, nz));
21357
21358
  };
21358
21359
  /**
21359
21360
  * 设置相机的旋转四元数
@@ -21365,7 +21366,6 @@ var Camera = /** @class */ (function () {
21365
21366
  this.dirty = true;
21366
21367
  }
21367
21368
  else {
21368
- this.options.quat;
21369
21369
  if (!this.options.quat.equals(value)) {
21370
21370
  this.options.quat.copyFrom(value);
21371
21371
  this.dirty = true;
@@ -23466,6 +23466,26 @@ var AssetManager = /** @class */ (function () {
23466
23466
  var _a = options.timeout, timeout = _a === void 0 ? 10 : _a;
23467
23467
  this.timeout = timeout;
23468
23468
  };
23469
+ /**
23470
+ * 根据用户传入的参数修改场景数据
23471
+ */
23472
+ AssetManager.prototype.updateSceneData = function (compositions) {
23473
+ var variables = this.options.variables;
23474
+ if (!variables || Object.keys(variables).length <= 0) {
23475
+ return compositions;
23476
+ }
23477
+ compositions.forEach(function (composition) {
23478
+ composition.items.forEach(function (item) {
23479
+ if (item.type === ItemType$1.text) {
23480
+ var textVariable = variables[item.name];
23481
+ if (textVariable) {
23482
+ item.content.options.text = textVariable;
23483
+ }
23484
+ }
23485
+ });
23486
+ });
23487
+ return compositions;
23488
+ };
23469
23489
  /**
23470
23490
  * 场景创建,通过 json 创建出场景对象,并进行提前编译等工作
23471
23491
  * @param url - json 的 URL 链接或者 json 对象
@@ -23557,6 +23577,7 @@ var AssetManager = /** @class */ (function () {
23557
23577
  for (i = 0; i < scene.images.length; i++) {
23558
23578
  scene.textureOptions[i].image = scene.images[i];
23559
23579
  }
23580
+ scene.jsonScene.compositions = this.updateSceneData(scene.jsonScene.compositions);
23560
23581
  _e.label = 5;
23561
23582
  case 5: return [3 /*break*/, 12];
23562
23583
  case 6: return [4 /*yield*/, hookTimeInfo('processJSON', function () { return _this.processJSON(rawJSON); })];
@@ -23576,6 +23597,7 @@ var AssetManager = /** @class */ (function () {
23576
23597
  return [4 /*yield*/, hookTimeInfo('processTextures', function () { return _this.processTextures(loadedImages_1, loadedBins_1, jsonScene_1); })];
23577
23598
  case 10:
23578
23599
  loadedTextures = _e.sent();
23600
+ jsonScene_1.compositions = this.updateSceneData(jsonScene_1.compositions);
23579
23601
  scene = {
23580
23602
  url: url,
23581
23603
  renderLevel: this.options.renderLevel,
@@ -23675,16 +23697,17 @@ var AssetManager = /** @class */ (function () {
23675
23697
  };
23676
23698
  AssetManager.prototype.processBins = function (bins) {
23677
23699
  return __awaiter(this, void 0, void 0, function () {
23678
- var renderLevel, jobs;
23700
+ var renderLevel, baseUrl, jobs;
23679
23701
  var _this = this;
23680
23702
  return __generator(this, function (_a) {
23681
23703
  renderLevel = this.options.renderLevel;
23704
+ baseUrl = this.baseUrl;
23682
23705
  jobs = bins.map(function (bin) {
23683
23706
  if (bin instanceof ArrayBuffer) {
23684
23707
  return bin;
23685
23708
  }
23686
23709
  if (passRenderLevel(bin.renderLevel, renderLevel)) {
23687
- return _this.loadBins(bin.url);
23710
+ return _this.loadBins(new URL(bin.url, baseUrl).href);
23688
23711
  }
23689
23712
  throw new Error("Invalid bins source: ".concat(JSON.stringify(bins)));
23690
23713
  });
@@ -23702,13 +23725,14 @@ var AssetManager = /** @class */ (function () {
23702
23725
  return [2 /*return*/];
23703
23726
  }
23704
23727
  jobs = fonts.map(function (font) { return __awaiter(_this, void 0, void 0, function () {
23705
- var fontFace;
23728
+ var url, fontFace;
23706
23729
  var _a;
23707
23730
  return __generator(this, function (_b) {
23708
23731
  switch (_b.label) {
23709
23732
  case 0:
23710
23733
  if (!(font.fontURL && !AssetManager.fonts.has(font.fontFamily))) return [3 /*break*/, 4];
23711
- fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + font.fontURL + ')');
23734
+ url = new URL(font.fontURL, this.baseUrl).href;
23735
+ fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + url + ')');
23712
23736
  _b.label = 1;
23713
23737
  case 1:
23714
23738
  _b.trys.push([1, 3, , 4]);
@@ -23721,7 +23745,7 @@ var AssetManager = /** @class */ (function () {
23721
23745
  return [3 /*break*/, 4];
23722
23746
  case 3:
23723
23747
  _b.sent();
23724
- logger.warn("Invalid fonts source: ".concat(JSON.stringify(font.fontURL)));
23748
+ logger.warn("Invalid fonts source: ".concat(JSON.stringify(url)));
23725
23749
  return [3 /*break*/, 4];
23726
23750
  case 4: return [2 /*return*/];
23727
23751
  }
@@ -23953,7 +23977,7 @@ function createTextureOptionsBySource(image, sourceFrom) {
23953
23977
  return image.source;
23954
23978
  }
23955
23979
  else if (image instanceof HTMLImageElement ||
23956
- image instanceof HTMLCanvasElement) {
23980
+ isCanvas(image)) {
23957
23981
  return {
23958
23982
  image: image,
23959
23983
  sourceType: TextureSourceType.image,
@@ -23990,6 +24014,11 @@ function createTextureOptionsBySource(image, sourceFrom) {
23990
24014
  }
23991
24015
  throw new Error('Invalid texture options');
23992
24016
  }
24017
+ function isCanvas(cavnas) {
24018
+ var _a;
24019
+ // 小程序 Canvas 无法使用 instanceof HTMLCanvasElement 判断
24020
+ return typeof cavnas === 'object' && cavnas !== null && ((_a = cavnas.tagName) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'CANVAS';
24021
+ }
23993
24022
 
23994
24023
  var CompVFXItem = /** @class */ (function (_super) {
23995
24024
  __extends(CompVFXItem, _super);
@@ -29573,6 +29602,7 @@ var Player = /** @class */ (function () {
29573
29602
  this.displayScale = 1;
29574
29603
  this.resumePending = false;
29575
29604
  this.disposed = false;
29605
+ this.assetManagers = [];
29576
29606
  this.speed = 1;
29577
29607
  this.baseCompositionIndex = 0;
29578
29608
  /**
@@ -29855,7 +29885,7 @@ var Player = /** @class */ (function () {
29855
29885
  Player.prototype.createComposition = function (url, options) {
29856
29886
  if (options === void 0) { options = {}; }
29857
29887
  return __awaiter(this, void 0, void 0, function () {
29858
- var renderer, last, opts, source, scene, composition, firstFrameTime;
29888
+ var renderer, last, opts, source, assetManager, scene, composition, firstFrameTime;
29859
29889
  var _this = this;
29860
29890
  return __generator(this, function (_a) {
29861
29891
  switch (_a.label) {
@@ -29870,13 +29900,9 @@ var Player = /** @class */ (function () {
29870
29900
  else {
29871
29901
  source = url;
29872
29902
  }
29873
- if (this.assetManager) {
29874
- this.assetManager.updateOptions(opts);
29875
- }
29876
- else {
29877
- this.assetManager = new AssetManager(opts);
29878
- }
29879
- return [4 /*yield*/, this.assetManager.loadScene(source, this.renderer, { env: this.env })];
29903
+ assetManager = new AssetManager(opts);
29904
+ this.assetManagers.push(assetManager);
29905
+ return [4 /*yield*/, assetManager.loadScene(source, this.renderer, { env: this.env })];
29880
29906
  case 1:
29881
29907
  scene = _a.sent();
29882
29908
  // 加载期间 player 销毁
@@ -30206,7 +30232,7 @@ var Player = /** @class */ (function () {
30206
30232
  * @param keepCanvas - 是否保留 canvas 画面,默认不保留,canvas 不能再被使用
30207
30233
  */
30208
30234
  Player.prototype.dispose = function (keepCanvas) {
30209
- var _a, _b;
30235
+ var _a;
30210
30236
  logger.info("call player destroy: ".concat(this.name));
30211
30237
  if (this.disposed) {
30212
30238
  return;
@@ -30214,7 +30240,7 @@ var Player = /** @class */ (function () {
30214
30240
  playerMap.delete(this.canvas);
30215
30241
  this.pause();
30216
30242
  (_a = this.ticker) === null || _a === void 0 ? void 0 : _a.stop();
30217
- (_b = this.assetManager) === null || _b === void 0 ? void 0 : _b.dispose();
30243
+ this.assetManagers.forEach(function (assetManager) { return assetManager.dispose(); });
30218
30244
  this.compositions.forEach(function (comp) { return comp.dispose(); });
30219
30245
  this.compositions.length = 0;
30220
30246
  this.renderer.context.removeLostHandler({ lost: this.lost });
@@ -30420,7 +30446,7 @@ Renderer.create = function (canvas, framework, renderOptions) {
30420
30446
  Engine.create = function (gl) {
30421
30447
  return new GLEngine(gl);
30422
30448
  };
30423
- var version = "1.2.2";
30449
+ var version = "1.2.4";
30424
30450
  logger.info('player version: ' + version);
30425
30451
 
30426
30452
  export { AbstractPlugin, AssetManager, BYTES_TYPE_MAP, BezierSegments, COMPRESSED_TEXTURE, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateItem, CalculateLoader, CalculateVFXItem, Camera, CameraController, CameraVFXItem, CameraVFXItemLoader, Composition, CompositionSourceManager, CurveValue, DEFAULT_FONTS, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, Engine, EventSystem, FILTER_NAME_NONE, FilterMode, FilterSpriteVFXItem, Float16ArrayWrapper, FrameBuffer, GLEngine, GLGeometry, GLRenderer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK$1 as HELP_LINK, HitTestType, InteractBehavior$1 as InteractBehavior, InteractItem, InteractLoader, InteractMesh, InteractVFXItem, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, Mesh, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleLoader, ParticleMesh, ParticleSystem, ParticleVFXItem, PassTextureCache, PathSegments, Player, PluginSystem, QCanvasViewer, QText, QTextWrapMode, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderBuffer, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderer, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, SemanticMap, Shader, ShaderCompileResultStatus, ShaderType, SpriteItem, SpriteLoader, SpriteMesh, SpriteVFXItem, StaticValue, TEMPLATE_USE_OFFSCREEN_CANVAS, TextItem, TextLoader, TextMesh, TextVFXItem, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, Ticker, TimelineComponent, Transform, VFXItem, ValueGetter, addByOrder, addItem, addItemWithOrder, alphaFrameFrag, alphaMaskFrag, assertExist, asserts, blend, bloomMixVert, bloomThresholdVert, calculateTranslation, cameraMove_frag as cameraMoveFrag, cameraMoveVert, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, combineImageTemplate1, combineImageTemplate1Async, combineImageTemplate2, combineImageTemplate2Async, combineImageTemplateAsync, compatible_frag as compatibleFrag, compatible_vert as compatibleVert, convertAnchor, copyFrag, createCopyShader, createFilter, createFilterShaders, createGLContext, createKeyFrameMeta, createShaderWithMarcos, createShape, createVFXItem, createValueGetter, deepClone, defaultGlobalVolume, defaultPlugins, delayFrag, deserializeMipmapTexture, disableAllPlayer, distortionFrag, distortionVert, earcut, enlargeBuffer, ensureVec3, filters, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateHalfFloatTexture, getActivePlayers, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTemplateCanvasPool, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getParticleMeshShader, getPixelRatio, getPlayerByCanvas, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAndroid, isArray, isCanvasUsedByPlayer, isFunction, isIOS, isObject, isScene, isSceneWithOptions, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isWebGL2, item_define as itemDefine, itemFrag, itemFrameFrag, itemVert, loadBinary, loadBlob, loadImage, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, maxSpriteTextureCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap, particleVert, pluginLoaderMap, random, registerFilter, registerFilters, registerPlugin, removeItem, requestAsync, rotateVec2, screenMeshVert, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxFragmentTextures, setSpriteMeshMaxItemCountByGPU, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError$1 as throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecAssign, vecFill, vecMulCombine, vecNormalize, version };