@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/weapp.mjs CHANGED
@@ -9237,10 +9237,10 @@ var VFXItem = /** @class */ (function () {
9237
9237
  };
9238
9238
  VFXItem.prototype.translateByPixel = function (x, y) {
9239
9239
  if (this.composition) {
9240
+ // @ts-expect-error
9241
+ var _a = this.composition.renderer.canvas.getBoundingClientRect(), width = _a.width, height = _a.height;
9240
9242
  var z = this.transform.getWorldPosition().z;
9241
- var _a = this.composition.camera.getInverseVPRatio(z), rx = _a.x, ry = _a.y;
9242
- var width = this.composition.renderer.getWidth() / 2;
9243
- var height = this.composition.renderer.getHeight() / 2;
9243
+ var _b = this.composition.camera.getInverseVPRatio(z), rx = _b.x, ry = _b.y;
9244
9244
  this.transform.translate(2 * x * rx / width, -2 * y * ry / height, 0);
9245
9245
  }
9246
9246
  };
@@ -21346,8 +21346,9 @@ var Camera = /** @class */ (function () {
21346
21346
  Camera.prototype.getInverseVPRatio = function (z) {
21347
21347
  var pos = new Vector3(0, 0, z);
21348
21348
  var mat = this.getViewProjectionMatrix();
21349
- var nz = pos.applyMatrix(mat).z;
21350
- return new Vector3(1, 1, nz).applyMatrix(mat);
21349
+ var inverseVP = this.getInverseViewProjectionMatrix();
21350
+ var nz = mat.projectPoint(pos).z;
21351
+ return inverseVP.projectPoint(new Vector3(1, 1, nz));
21351
21352
  };
21352
21353
  /**
21353
21354
  * 设置相机的旋转四元数
@@ -21359,7 +21360,6 @@ var Camera = /** @class */ (function () {
21359
21360
  this.dirty = true;
21360
21361
  }
21361
21362
  else {
21362
- this.options.quat;
21363
21363
  if (!this.options.quat.equals(value)) {
21364
21364
  this.options.quat.copyFrom(value);
21365
21365
  this.dirty = true;
@@ -23460,6 +23460,26 @@ var AssetManager = /** @class */ (function () {
23460
23460
  var _a = options.timeout, timeout = _a === void 0 ? 10 : _a;
23461
23461
  this.timeout = timeout;
23462
23462
  };
23463
+ /**
23464
+ * 根据用户传入的参数修改场景数据
23465
+ */
23466
+ AssetManager.prototype.updateSceneData = function (compositions) {
23467
+ var variables = this.options.variables;
23468
+ if (!variables || Object.keys(variables).length <= 0) {
23469
+ return compositions;
23470
+ }
23471
+ compositions.forEach(function (composition) {
23472
+ composition.items.forEach(function (item) {
23473
+ if (item.type === ItemType$1.text) {
23474
+ var textVariable = variables[item.name];
23475
+ if (textVariable) {
23476
+ item.content.options.text = textVariable;
23477
+ }
23478
+ }
23479
+ });
23480
+ });
23481
+ return compositions;
23482
+ };
23463
23483
  /**
23464
23484
  * 场景创建,通过 json 创建出场景对象,并进行提前编译等工作
23465
23485
  * @param url - json 的 URL 链接或者 json 对象
@@ -23551,6 +23571,7 @@ var AssetManager = /** @class */ (function () {
23551
23571
  for (i = 0; i < scene.images.length; i++) {
23552
23572
  scene.textureOptions[i].image = scene.images[i];
23553
23573
  }
23574
+ scene.jsonScene.compositions = this.updateSceneData(scene.jsonScene.compositions);
23554
23575
  _e.label = 5;
23555
23576
  case 5: return [3 /*break*/, 12];
23556
23577
  case 6: return [4 /*yield*/, hookTimeInfo('processJSON', function () { return _this.processJSON(rawJSON); })];
@@ -23570,6 +23591,7 @@ var AssetManager = /** @class */ (function () {
23570
23591
  return [4 /*yield*/, hookTimeInfo('processTextures', function () { return _this.processTextures(loadedImages_1, loadedBins_1, jsonScene_1); })];
23571
23592
  case 10:
23572
23593
  loadedTextures = _e.sent();
23594
+ jsonScene_1.compositions = this.updateSceneData(jsonScene_1.compositions);
23573
23595
  scene = {
23574
23596
  url: url,
23575
23597
  renderLevel: this.options.renderLevel,
@@ -23669,16 +23691,17 @@ var AssetManager = /** @class */ (function () {
23669
23691
  };
23670
23692
  AssetManager.prototype.processBins = function (bins) {
23671
23693
  return __awaiter(this, void 0, void 0, function () {
23672
- var renderLevel, jobs;
23694
+ var renderLevel, baseUrl, jobs;
23673
23695
  var _this = this;
23674
23696
  return __generator(this, function (_a) {
23675
23697
  renderLevel = this.options.renderLevel;
23698
+ baseUrl = this.baseUrl;
23676
23699
  jobs = bins.map(function (bin) {
23677
23700
  if (bin instanceof ArrayBuffer) {
23678
23701
  return bin;
23679
23702
  }
23680
23703
  if (passRenderLevel(bin.renderLevel, renderLevel)) {
23681
- return _this.loadBins(bin.url);
23704
+ return _this.loadBins(new URL(bin.url, baseUrl).href);
23682
23705
  }
23683
23706
  throw new Error("Invalid bins source: ".concat(JSON.stringify(bins)));
23684
23707
  });
@@ -23696,13 +23719,14 @@ var AssetManager = /** @class */ (function () {
23696
23719
  return [2 /*return*/];
23697
23720
  }
23698
23721
  jobs = fonts.map(function (font) { return __awaiter(_this, void 0, void 0, function () {
23699
- var fontFace;
23722
+ var url, fontFace;
23700
23723
  var _a;
23701
23724
  return __generator(this, function (_b) {
23702
23725
  switch (_b.label) {
23703
23726
  case 0:
23704
23727
  if (!(font.fontURL && !AssetManager.fonts.has(font.fontFamily))) return [3 /*break*/, 4];
23705
- fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + font.fontURL + ')');
23728
+ url = new URL(font.fontURL, this.baseUrl).href;
23729
+ fontFace = new FontFace((_a = font.fontFamily) !== null && _a !== void 0 ? _a : '', 'url(' + url + ')');
23706
23730
  _b.label = 1;
23707
23731
  case 1:
23708
23732
  _b.trys.push([1, 3, , 4]);
@@ -23715,7 +23739,7 @@ var AssetManager = /** @class */ (function () {
23715
23739
  return [3 /*break*/, 4];
23716
23740
  case 3:
23717
23741
  _b.sent();
23718
- logger.warn("Invalid fonts source: ".concat(JSON.stringify(font.fontURL)));
23742
+ logger.warn("Invalid fonts source: ".concat(JSON.stringify(url)));
23719
23743
  return [3 /*break*/, 4];
23720
23744
  case 4: return [2 /*return*/];
23721
23745
  }
@@ -23947,7 +23971,7 @@ function createTextureOptionsBySource(image, sourceFrom) {
23947
23971
  return image.source;
23948
23972
  }
23949
23973
  else if (image instanceof HTMLImageElement ||
23950
- image instanceof HTMLCanvasElement) {
23974
+ isCanvas(image)) {
23951
23975
  return {
23952
23976
  image: image,
23953
23977
  sourceType: TextureSourceType.image,
@@ -23984,6 +24008,11 @@ function createTextureOptionsBySource(image, sourceFrom) {
23984
24008
  }
23985
24009
  throw new Error('Invalid texture options');
23986
24010
  }
24011
+ function isCanvas(cavnas) {
24012
+ var _a;
24013
+ // 小程序 Canvas 无法使用 instanceof HTMLCanvasElement 判断
24014
+ return typeof cavnas === 'object' && cavnas !== null && ((_a = cavnas.tagName) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'CANVAS';
24015
+ }
23987
24016
 
23988
24017
  var CompVFXItem = /** @class */ (function (_super) {
23989
24018
  __extends(CompVFXItem, _super);
@@ -29567,6 +29596,7 @@ var Player = /** @class */ (function () {
29567
29596
  this.displayScale = 1;
29568
29597
  this.resumePending = false;
29569
29598
  this.disposed = false;
29599
+ this.assetManagers = [];
29570
29600
  this.speed = 1;
29571
29601
  this.baseCompositionIndex = 0;
29572
29602
  /**
@@ -29849,7 +29879,7 @@ var Player = /** @class */ (function () {
29849
29879
  Player.prototype.createComposition = function (url, options) {
29850
29880
  if (options === void 0) { options = {}; }
29851
29881
  return __awaiter(this, void 0, void 0, function () {
29852
- var renderer, last, opts, source, scene, composition, firstFrameTime;
29882
+ var renderer, last, opts, source, assetManager, scene, composition, firstFrameTime;
29853
29883
  var _this = this;
29854
29884
  return __generator(this, function (_a) {
29855
29885
  switch (_a.label) {
@@ -29864,13 +29894,9 @@ var Player = /** @class */ (function () {
29864
29894
  else {
29865
29895
  source = url;
29866
29896
  }
29867
- if (this.assetManager) {
29868
- this.assetManager.updateOptions(opts);
29869
- }
29870
- else {
29871
- this.assetManager = new AssetManager(opts);
29872
- }
29873
- return [4 /*yield*/, this.assetManager.loadScene(source, this.renderer, { env: this.env })];
29897
+ assetManager = new AssetManager(opts);
29898
+ this.assetManagers.push(assetManager);
29899
+ return [4 /*yield*/, assetManager.loadScene(source, this.renderer, { env: this.env })];
29874
29900
  case 1:
29875
29901
  scene = _a.sent();
29876
29902
  // 加载期间 player 销毁
@@ -30200,7 +30226,7 @@ var Player = /** @class */ (function () {
30200
30226
  * @param keepCanvas - 是否保留 canvas 画面,默认不保留,canvas 不能再被使用
30201
30227
  */
30202
30228
  Player.prototype.dispose = function (keepCanvas) {
30203
- var _a, _b;
30229
+ var _a;
30204
30230
  logger.info("call player destroy: ".concat(this.name));
30205
30231
  if (this.disposed) {
30206
30232
  return;
@@ -30208,7 +30234,7 @@ var Player = /** @class */ (function () {
30208
30234
  playerMap.delete(this.canvas);
30209
30235
  this.pause();
30210
30236
  (_a = this.ticker) === null || _a === void 0 ? void 0 : _a.stop();
30211
- (_b = this.assetManager) === null || _b === void 0 ? void 0 : _b.dispose();
30237
+ this.assetManagers.forEach(function (assetManager) { return assetManager.dispose(); });
30212
30238
  this.compositions.forEach(function (comp) { return comp.dispose(); });
30213
30239
  this.compositions.length = 0;
30214
30240
  this.renderer.context.removeLostHandler({ lost: this.lost });
@@ -30414,7 +30440,7 @@ Renderer.create = function (canvas, framework, renderOptions) {
30414
30440
  Engine.create = function (gl) {
30415
30441
  return new GLEngine(gl);
30416
30442
  };
30417
- var version = "1.2.2";
30443
+ var version = "1.2.4";
30418
30444
  logger.info('player version: ' + version);
30419
30445
 
30420
30446
  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 };