@galacean/effects-threejs 2.2.2-alpha.0 → 2.2.3

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 threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.2.2-alpha.0
6
+ * Version: v2.2.3
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -16584,17 +16584,10 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16584
16584
  ];
16585
16585
  };
16586
16586
  _proto.onStart = function onStart() {
16587
- var _this = this;
16588
- var _this_item_composition;
16589
16587
  var options = this.item.props.content.options;
16590
16588
  var env = this.item.engine.renderer.env;
16591
16589
  var composition = this.item.composition;
16592
16590
  var _this_interactData_options = this.interactData.options, type = _this_interactData_options.type, showPreview = _this_interactData_options.showPreview;
16593
- (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.on("goto", function() {
16594
- if (_this.item.time > 0) {
16595
- _this.duringPlay = true;
16596
- }
16597
- });
16598
16591
  if (type === InteractType.CLICK) {
16599
16592
  this.clickable = true;
16600
16593
  if (showPreview && env === PLAYER_OPTIONS_ENV_EDITOR) {
@@ -16629,18 +16622,26 @@ var InteractComponent = /*#__PURE__*/ function(RendererComponent) {
16629
16622
  _proto.onEnable = function onEnable() {
16630
16623
  RendererComponent.prototype.onEnable.call(this);
16631
16624
  var type = this.interactData.options.type;
16625
+ var env = this.item.engine.renderer.env;
16632
16626
  if (type === InteractType.CLICK) {
16633
16627
  this.clickable = true;
16628
+ } else if (type === InteractType.DRAG) {
16629
+ var options = this.interactData.options;
16630
+ var enableInEditor = options.enableInEditor;
16631
+ if (env !== PLAYER_OPTIONS_ENV_EDITOR || enableInEditor) {
16632
+ var _this_item_composition;
16633
+ ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.event) && this.beginDragTarget(options, this.item.composition.event);
16634
+ }
16634
16635
  }
16635
16636
  };
16636
16637
  _proto.onUpdate = function onUpdate(dt) {
16637
16638
  var _this_previewContent;
16639
+ this.duringPlay = true;
16638
16640
  // trigger messageBegin when item enter
16639
- if (this.item.time > 0 && !this.duringPlay) {
16641
+ if (this.item.time > 0 && this.item.time - dt / 1000 <= 0) {
16640
16642
  var _this_item_composition;
16641
16643
  var options = this.item.props.content.options;
16642
16644
  (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.addInteractiveItem(this.item, options.type);
16643
- this.duringPlay = true;
16644
16645
  }
16645
16646
  (_this_previewContent = this.previewContent) == null ? void 0 : _this_previewContent.updateMesh();
16646
16647
  if (!this.dragEvent || !this.bouncingArg) {
@@ -17166,6 +17167,83 @@ var PlayState;
17166
17167
  PlayState[PlayState["Paused"] = 1] = "Paused";
17167
17168
  })(PlayState || (PlayState = {}));
17168
17169
 
17170
+ /**
17171
+ *
17172
+ */ /**
17173
+ * 事件监听器
17174
+ */ var EventEmitter = function EventEmitter() {
17175
+ var _this = this;
17176
+ var _this1 = this;
17177
+ this.listeners = {};
17178
+ /**
17179
+ * 移除事件监听器
17180
+ * @param eventName - 事件名称
17181
+ * @param listener - 事件监听器
17182
+ * @returns
17183
+ */ this.off = function(eventName, listener) {
17184
+ if (!_this.listeners[eventName]) {
17185
+ return;
17186
+ }
17187
+ _this.listeners[eventName] = _this.listeners[eventName].filter(function(param) {
17188
+ var l = param.listener;
17189
+ return l !== listener;
17190
+ });
17191
+ };
17192
+ /**
17193
+ * 监听事件
17194
+ * @param eventName - 事件名称
17195
+ * @param listener - 事件监听器
17196
+ * @param options - 事件监听器选项
17197
+ * @returns
17198
+ */ this.on = function(eventName, listener, options) {
17199
+ _this.listeners[eventName] = _this.listeners[eventName] || [];
17200
+ _this.listeners[eventName].push({
17201
+ listener: listener,
17202
+ options: options
17203
+ });
17204
+ return function() {
17205
+ return _this.off(eventName, listener);
17206
+ };
17207
+ };
17208
+ /**
17209
+ * 一次性监听事件
17210
+ * @param eventName - 事件名称
17211
+ * @param listener - 事件监听器
17212
+ */ this.once = function(eventName, listener) {
17213
+ _this.on(eventName, listener, {
17214
+ once: true
17215
+ });
17216
+ };
17217
+ /**
17218
+ * 触发事件
17219
+ * @param eventName - 事件名称
17220
+ * @param args - 事件参数
17221
+ */ this.emit = function(eventName) {
17222
+ for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
17223
+ args[_key - 1] = arguments[_key];
17224
+ }
17225
+ var _this_listeners_eventName;
17226
+ (_this_listeners_eventName = _this1.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.forEach(function(param) {
17227
+ var listener = param.listener, options = param.options;
17228
+ listener.apply(void 0, [].concat(args));
17229
+ if (options == null ? void 0 : options.once) {
17230
+ _this1.off(eventName, listener);
17231
+ }
17232
+ });
17233
+ };
17234
+ /**
17235
+ * 获取事件名称对应的所有监听器
17236
+ * @param eventName - 事件名称
17237
+ * @returns - 返回事件名称对应的所有监听器
17238
+ */ this.getListeners = function(eventName) {
17239
+ var _this_listeners_eventName;
17240
+ return ((_this_listeners_eventName = _this.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.map(function(param) {
17241
+ var listener = param.listener;
17242
+ return listener;
17243
+ })) || [];
17244
+ };
17245
+ };
17246
+
17169
17247
  var tempQuat$1 = new Quaternion();
17170
17248
  var seed$4 = 1;
17171
17249
  // TODO 继承 Component
@@ -17636,83 +17714,6 @@ var seed$4 = 1;
17636
17714
  return Transform;
17637
17715
  }();
17638
17716
 
17639
- /**
17640
- *
17641
- */ /**
17642
- * 事件监听器
17643
- */ var EventEmitter = function EventEmitter() {
17644
- var _this = this;
17645
- var _this1 = this;
17646
- this.listeners = {};
17647
- /**
17648
- * 移除事件监听器
17649
- * @param eventName - 事件名称
17650
- * @param listener - 事件监听器
17651
- * @returns
17652
- */ this.off = function(eventName, listener) {
17653
- if (!_this.listeners[eventName]) {
17654
- return;
17655
- }
17656
- _this.listeners[eventName] = _this.listeners[eventName].filter(function(param) {
17657
- var l = param.listener;
17658
- return l !== listener;
17659
- });
17660
- };
17661
- /**
17662
- * 监听事件
17663
- * @param eventName - 事件名称
17664
- * @param listener - 事件监听器
17665
- * @param options - 事件监听器选项
17666
- * @returns
17667
- */ this.on = function(eventName, listener, options) {
17668
- _this.listeners[eventName] = _this.listeners[eventName] || [];
17669
- _this.listeners[eventName].push({
17670
- listener: listener,
17671
- options: options
17672
- });
17673
- return function() {
17674
- return _this.off(eventName, listener);
17675
- };
17676
- };
17677
- /**
17678
- * 一次性监听事件
17679
- * @param eventName - 事件名称
17680
- * @param listener - 事件监听器
17681
- */ this.once = function(eventName, listener) {
17682
- _this.on(eventName, listener, {
17683
- once: true
17684
- });
17685
- };
17686
- /**
17687
- * 触发事件
17688
- * @param eventName - 事件名称
17689
- * @param args - 事件参数
17690
- */ this.emit = function(eventName) {
17691
- for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
17692
- args[_key - 1] = arguments[_key];
17693
- }
17694
- var _this_listeners_eventName;
17695
- (_this_listeners_eventName = _this1.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.forEach(function(param) {
17696
- var listener = param.listener, options = param.options;
17697
- listener.apply(void 0, [].concat(args));
17698
- if (options == null ? void 0 : options.once) {
17699
- _this1.off(eventName, listener);
17700
- }
17701
- });
17702
- };
17703
- /**
17704
- * 获取事件名称对应的所有监听器
17705
- * @param eventName - 事件名称
17706
- * @returns - 返回事件名称对应的所有监听器
17707
- */ this.getListeners = function(eventName) {
17708
- var _this_listeners_eventName;
17709
- return ((_this_listeners_eventName = _this.listeners[eventName]) == null ? void 0 : _this_listeners_eventName.map(function(param) {
17710
- var listener = param.listener;
17711
- return listener;
17712
- })) || [];
17713
- };
17714
- };
17715
-
17716
17717
  var VFXItem = /*#__PURE__*/ function(EffectsObject) {
17717
17718
  _inherits(VFXItem, EffectsObject);
17718
17719
  function VFXItem(engine, props) {
@@ -18062,42 +18063,36 @@ var VFXItem = /*#__PURE__*/ function(EffectsObject) {
18062
18063
  EffectsObject.prototype.fromData.call(this, data);
18063
18064
  var id = data.id, name = data.name, delay = data.delay, parentId = data.parentId, endBehavior = data.endBehavior, transform = data.transform, _data_duration = data.duration, duration = _data_duration === void 0 ? 0 : _data_duration;
18064
18065
  this.props = data;
18065
- //@ts-expect-error
18066
18066
  this.type = data.type;
18067
18067
  this.id = id.toString(); // TODO 老数据 id 是 number,需要转换
18068
18068
  this.name = name;
18069
18069
  this.start = delay ? delay : this.start;
18070
+ var transformProps = {};
18070
18071
  if (transform) {
18071
- //@ts-expect-error TODO 数据改造后移除 expect-error
18072
- transform.position = new Vector3().copyFrom(transform.position);
18072
+ transformProps.position = new Vector3().copyFrom(transform.position);
18073
18073
  // FIXME: transform.rotation待删除
18074
+ //@ts-expect-error
18074
18075
  if (transform.quat) {
18075
18076
  //@ts-expect-error
18076
- transform.quat = new Quaternion(transform.quat.x, transform.quat.y, transform.quat.z, transform.quat.w);
18077
+ transformProps.quat = new Quaternion(transform.quat.x, transform.quat.y, transform.quat.z, transform.quat.w);
18077
18078
  } else {
18078
18079
  var _transform_eulerHint;
18079
18080
  //@ts-expect-error
18080
- transform.rotation = new Euler().copyFrom((_transform_eulerHint = transform.eulerHint) != null ? _transform_eulerHint : transform.rotation);
18081
+ transformProps.rotation = new Euler().copyFrom((_transform_eulerHint = transform.eulerHint) != null ? _transform_eulerHint : transform.rotation);
18081
18082
  }
18082
- //@ts-expect-error
18083
- transform.scale = new Vector3().copyFrom(transform.scale);
18084
- //@ts-expect-error
18083
+ transformProps.scale = new Vector3().copyFrom(transform.scale);
18085
18084
  if (transform.size) {
18086
- //@ts-expect-error
18087
- transform.size = new Vector2().copyFrom(transform.size);
18085
+ transformProps.size = new Vector2().copyFrom(transform.size);
18088
18086
  }
18089
- //@ts-expect-error
18090
18087
  if (transform.anchor) {
18091
- //@ts-expect-error
18092
- transform.anchor = new Vector2().copyFrom(transform.anchor);
18088
+ transformProps.anchor = new Vector2().copyFrom(transform.anchor);
18093
18089
  }
18094
- this.transform.setTransform(transform);
18090
+ this.transform.setTransform(transformProps);
18095
18091
  }
18096
18092
  this.transform.name = this.name;
18097
18093
  this.transform.engine = this.engine;
18098
18094
  this.parentId = parentId;
18099
18095
  this.duration = duration;
18100
- // TODO spec endbehavior 类型修正
18101
18096
  this.endBehavior = endBehavior;
18102
18097
  if (!data.content) {
18103
18098
  data.content = {
@@ -24889,9 +24884,23 @@ var TextComponent = /*#__PURE__*/ function(BaseRenderComponent) {
24889
24884
  order: listIndex
24890
24885
  };
24891
24886
  this.interaction = interaction;
24887
+ this.cachePrefix = "-";
24888
+ this.renderInfo = getImageItemRenderInfo(this);
24889
+ var material = this.createMaterial(this.renderInfo, 2);
24890
+ this.worldMatrix = Matrix4.fromIdentity();
24891
+ this.material = material;
24892
+ this.material.setVector4("_TexOffset", new Vector4().setFromArray([
24893
+ 0,
24894
+ 0,
24895
+ 1,
24896
+ 1
24897
+ ]));
24898
+ // TextComponentBase
24892
24899
  this.updateWithOptions(options);
24893
- // Text
24894
24900
  this.updateTexture();
24901
+ this.setItem();
24902
+ // 恢复默认颜色
24903
+ this.material.setVector4("_Color", new Vector4(1, 1, 1, 1));
24895
24904
  };
24896
24905
  _proto.updateWithOptions = function updateWithOptions(options) {
24897
24906
  // OVERRIDE by mixins
@@ -25209,7 +25218,7 @@ var TextComponentBase = /*#__PURE__*/ function() {
25209
25218
  }
25210
25219
  //与 toDataURL() 两种方式都需要像素读取操作
25211
25220
  var imageData = context.getImageData(0, 0, this.canvas.width, this.canvas.height);
25212
- this.material.setTexture("_MainTex", Texture.createWithData(this.engine, {
25221
+ var texture = Texture.createWithData(this.engine, {
25213
25222
  data: new Uint8Array(imageData.data),
25214
25223
  width: imageData.width,
25215
25224
  height: imageData.height
@@ -25219,7 +25228,8 @@ var TextComponentBase = /*#__PURE__*/ function() {
25219
25228
  minFilter: glContext.LINEAR,
25220
25229
  wrapS: glContext.CLAMP_TO_EDGE,
25221
25230
  wrapT: glContext.CLAMP_TO_EDGE
25222
- }));
25231
+ });
25232
+ this.renderer.texture = texture;
25223
25233
  this.isDirty = false;
25224
25234
  };
25225
25235
  _proto.getFontDesc = function getFontDesc() {
@@ -28407,7 +28417,7 @@ var tmpScale = new Vector3(1, 1, 1);
28407
28417
  var sourceItemData = this.engine.jsonSceneData[itemDataPath.id];
28408
28418
  var itemProps = sourceItemData;
28409
28419
  if (passRenderLevel(sourceItemData.renderLevel, this.renderLevel)) {
28410
- if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine || //@ts-expect-error
28420
+ if (itemProps.type === ItemType.sprite || itemProps.type === ItemType.particle || itemProps.type === ItemType.spine || itemProps.type === ItemType.text || itemProps.type === ItemType.video || //@ts-expect-error
28411
28421
  itemProps.type === ItemType.shape) {
28412
28422
  for(var _iterator2 = _create_for_of_iterator_helper_loose(itemProps.components), _step2; !(_step2 = _iterator2()).done;){
28413
28423
  var componentPath = _step2.value;
@@ -28428,6 +28438,13 @@ var tmpScale = new Vector3(1, 1, 1);
28428
28438
  }
28429
28439
  }
28430
28440
  items.push(itemDataPath);
28441
+ } else {
28442
+ // 非预合成元素未达到渲染等级的转化为空节点。
28443
+ // 预合成元素有根据 item type 的子元素加载判断,没法保留空节点,这边先整体过滤掉。
28444
+ if (itemProps.type !== ItemType.composition) {
28445
+ itemProps.components = [];
28446
+ items.push(itemDataPath);
28447
+ }
28431
28448
  }
28432
28449
  }
28433
28450
  composition.items = items;
@@ -28672,10 +28689,13 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
28672
28689
  assertExist(sourceContent);
28673
28690
  _this.renderer = renderer;
28674
28691
  _this.refCompositionProps = refCompositionProps;
28675
- _this.rootItem = new VFXItem(_this.getEngine(), sourceContent);
28692
+ // Instantiate composition rootItem
28693
+ _this.rootItem = new VFXItem(_this.getEngine());
28676
28694
  _this.rootItem.name = "rootItem";
28695
+ _this.rootItem.duration = sourceContent.duration;
28696
+ _this.rootItem.endBehavior = sourceContent.endBehavior;
28677
28697
  _this.rootItem.composition = _assert_this_initialized(_this);
28678
- // Spawn rootCompositionComponent
28698
+ // Create rootCompositionComponent
28679
28699
  _this.rootComposition = _this.rootItem.addComponent(CompositionComponent);
28680
28700
  _this.width = width;
28681
28701
  _this.height = height;
@@ -31349,7 +31369,7 @@ registerPlugin("sprite", SpriteLoader, VFXItem, true);
31349
31369
  registerPlugin("particle", ParticleLoader, VFXItem, true);
31350
31370
  registerPlugin("cal", CalculateLoader, VFXItem, true);
31351
31371
  registerPlugin("interact", InteractLoader, VFXItem, true);
31352
- var version$1 = "2.2.2-alpha.0";
31372
+ var version$1 = "2.2.3";
31353
31373
  logger.info("Core version: " + version$1 + ".");
31354
31374
 
31355
31375
  var _obj;
@@ -32982,7 +33002,7 @@ setMaxSpriteMeshItemCount(8);
32982
33002
  */ Mesh.create = function(engine, props) {
32983
33003
  return new ThreeMesh(engine, props);
32984
33004
  };
32985
- var version = "2.2.2-alpha.0";
33005
+ var version = "2.2.3";
32986
33006
  logger.info("THREEJS plugin version: " + version + ".");
32987
33007
 
32988
33008
  export { AbstractPlugin, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AnimationClip, AnimationClipPlayable, Asset, AssetLoader, AssetManager, BYTES_TYPE_MAP, BaseRenderComponent, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, COMPRESSED_TEXTURE, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, CalculateLoader, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, Composition, CompositionComponent, CompositionSourceManager, DEFAULT_FONTS, DEFAULT_FPS, Database, DestroyOptions, Downloader, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectsObject, EffectsPackage, Engine, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatPropertyPlayableAsset, FloatPropertyTrack, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, Item, KTXTexture, LineSegments, LinearValue, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, ObjectBindingTrack, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PluginSystem, PostProcessVolume, PropertyTrack, RENDER_PASS_NAME_PREFIX, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, 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, Scene, SemanticMap, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteLoader, StaticValue, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, Ticker, TimelineAsset, TimelineClip, TimelinePlayable, TrackAsset, TrackSortWrapper, TrackType, Transform, TransformAnimationPlayable, TransformPlayableAsset, TransformTrack, VFXItem, ValueGetter, Vector4Curve, Vector4PropertyPlayableAsset, Vector4PropertyTrack, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, blend, calculateTranslation, canvasPool, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createCopyShader, createGLContext, createKeyFrameMeta, createShape, createValueGetter, decimalEqual, defaultPlugins, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, findPreviousRenderPass, gaussianDown_frag as gaussianDownFrag, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getImageItemRenderInfo, getKTXTextureOptions, getKeyFrameMetaByRawValue, getMergedStore, getParticleMeshShader, getPixelRatio, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemFrameFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, maxSpriteMeshItemCount, modifyMaxKeyframeShader, nearestPowerOfTwo, noop, normalizeColor, numberToFix, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setMaxSpriteMeshItemCount, setRayFromCamera, setSideMode, setSpriteMeshMaxItemCountByGPU, setUniformValue, sortByOrder, index$1 as spec, spriteMeshShaderFromFilter, spriteMeshShaderFromRenderInfo, spriteMeshShaderIdFromRenderInfo, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };