@galacean/engine-xr 0.0.0-experimental-1.3-xr.9 → 0.0.0-experimental-1.3-xr.10

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.
@@ -186,7 +186,7 @@ function _instanceof(left, right) {
186
186
  */ _proto._onSessionExit = function _onSessionExit() {};
187
187
  /**
188
188
  * @internal
189
- */ _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(cameraType) {
189
+ */ _proto._getIgnoreClearFlags = function _getIgnoreClearFlags(cameraType) {
190
190
  if (cameraType === miniprogram.CameraType.XRCenterCamera) {
191
191
  if (this._xrManager.sessionManager.state === exports.XRSessionState.Running) {
192
192
  return miniprogram.CameraClearFlags.Color;
@@ -346,7 +346,7 @@ exports.XRTargetRayMode = void 0;
346
346
  this._removed = [];
347
347
  this._trackedDevices = [];
348
348
  this._statusSnapshot = [];
349
- this._listeners = [];
349
+ this._listeners = new miniprogram.SafeLoopArray();
350
350
  var _this = this, trackedDevices = _this._trackedDevices, controllers = _this._controllers, cameras = _this._cameras;
351
351
  for(var i = 0; i < 6; i++){
352
352
  switch(i){
@@ -376,22 +376,22 @@ exports.XRTargetRayMode = void 0;
376
376
  * Add a listener for tracked device changes.
377
377
  * @param listener - The listener to add
378
378
  */ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
379
- this._listeners.push(listener);
379
+ this._listeners.push({
380
+ fn: listener
381
+ });
380
382
  };
381
383
  /**
382
384
  * Remove a listener of tracked device changes.
383
385
  * @param listener - The listener to remove
384
386
  */ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
385
- var _this = this, listeners = _this._listeners;
386
- var index = listeners.indexOf(listener);
387
- if (index >= 0) {
388
- listeners.splice(index, 1);
389
- }
387
+ this._listeners.findAndRemove(function(value) {
388
+ return value.fn === listener ? value.destroyed = true : false;
389
+ });
390
390
  };
391
391
  /**
392
392
  * @internal
393
393
  */ _proto._onUpdate = function _onUpdate() {
394
- var _this = this, added = _this._added, removed = _this._removed, listeners = _this._listeners, statusSnapshot = _this._statusSnapshot;
394
+ var _this = this, added = _this._added, removed = _this._removed, statusSnapshot = _this._statusSnapshot;
395
395
  var _this1 = this, trackedDevices = _this1._trackedDevices, controllers = _this1._controllers;
396
396
  // Reset data
397
397
  added.length = removed.length = 0;
@@ -424,15 +424,19 @@ exports.XRTargetRayMode = void 0;
424
424
  }
425
425
  // Dispatch change event
426
426
  if (added.length > 0 || removed.length > 0) {
427
+ var listeners = this._listeners.getLoopArray();
427
428
  for(var i3 = 0, n3 = listeners.length; i3 < n3; i3++){
428
- listeners[i3](added, removed);
429
+ var listener = listeners[i3];
430
+ !listener.destroyed && listener.fn(added, removed);
429
431
  }
430
432
  }
431
433
  };
432
434
  /**
433
435
  * @internal
434
436
  */ _proto._onDestroy = function _onDestroy() {
435
- this._listeners.length = 0;
437
+ this._listeners.findAndRemove(function(value) {
438
+ return value.destroyed = true;
439
+ });
436
440
  };
437
441
  _proto._handleEvent = function _handleEvent(event) {
438
442
  var input = this._trackedDevices[event.input];
@@ -725,10 +729,7 @@ exports.XRTargetRayMode = void 0;
725
729
  */ var XRManagerExtended = /*#__PURE__*/ function(XRManager1) {
726
730
  _inherits(XRManagerExtended, XRManager1);
727
731
  function XRManagerExtended() {
728
- var _this;
729
- _this = XRManager1.apply(this, arguments) || this;
730
- _this.features = [];
731
- return _this;
732
+ return XRManager1.apply(this, arguments);
732
733
  }
733
734
  var _proto = XRManagerExtended.prototype;
734
735
  _proto.isSupportedFeature = function isSupportedFeature(feature) {
@@ -792,6 +793,7 @@ exports.XRTargetRayMode = void 0;
792
793
  });
793
794
  };
794
795
  _proto._initialize = function _initialize(engine, xrDevice) {
796
+ this._features = [];
795
797
  this._platformDevice = xrDevice;
796
798
  this.sessionManager = new XRSessionManager(this, engine);
797
799
  this.inputManager = new XRInputManager(this, engine);
@@ -829,8 +831,8 @@ exports.XRTargetRayMode = void 0;
829
831
  _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
830
832
  return this.sessionManager._getCancelAnimationFrame();
831
833
  };
832
- _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(type) {
833
- return this.cameraManager._getCameraClearFlagsMask(type);
834
+ _proto._getCameraIgnoreClearFlags = function _getCameraIgnoreClearFlags(type) {
835
+ return this.cameraManager._getIgnoreClearFlags(type);
834
836
  };
835
837
  /**
836
838
  * @internal
@@ -873,6 +875,12 @@ exports.XRTargetRayMode = void 0;
873
875
  features.length = 0;
874
876
  };
875
877
  _create_class(XRManagerExtended, [
878
+ {
879
+ key: "features",
880
+ get: function get() {
881
+ return this._features;
882
+ }
883
+ },
876
884
  {
877
885
  key: "origin",
878
886
  get: function get() {
package/dist/module.js CHANGED
@@ -181,7 +181,7 @@ function _instanceof(left, right) {
181
181
  */ _proto._onSessionExit = function _onSessionExit() {};
182
182
  /**
183
183
  * @internal
184
- */ _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(cameraType) {
184
+ */ _proto._getIgnoreClearFlags = function _getIgnoreClearFlags(cameraType) {
185
185
  if (cameraType === CameraType.XRCenterCamera) {
186
186
  if (this._xrManager.sessionManager.state === XRSessionState.Running) {
187
187
  return CameraClearFlags.Color;
@@ -341,7 +341,7 @@ var XRTargetRayMode;
341
341
  this._removed = [];
342
342
  this._trackedDevices = [];
343
343
  this._statusSnapshot = [];
344
- this._listeners = [];
344
+ this._listeners = new SafeLoopArray();
345
345
  var _this = this, trackedDevices = _this._trackedDevices, controllers = _this._controllers, cameras = _this._cameras;
346
346
  for(var i = 0; i < 6; i++){
347
347
  switch(i){
@@ -371,22 +371,22 @@ var XRTargetRayMode;
371
371
  * Add a listener for tracked device changes.
372
372
  * @param listener - The listener to add
373
373
  */ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
374
- this._listeners.push(listener);
374
+ this._listeners.push({
375
+ fn: listener
376
+ });
375
377
  };
376
378
  /**
377
379
  * Remove a listener of tracked device changes.
378
380
  * @param listener - The listener to remove
379
381
  */ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
380
- var _this = this, listeners = _this._listeners;
381
- var index = listeners.indexOf(listener);
382
- if (index >= 0) {
383
- listeners.splice(index, 1);
384
- }
382
+ this._listeners.findAndRemove(function(value) {
383
+ return value.fn === listener ? value.destroyed = true : false;
384
+ });
385
385
  };
386
386
  /**
387
387
  * @internal
388
388
  */ _proto._onUpdate = function _onUpdate() {
389
- var _this = this, added = _this._added, removed = _this._removed, listeners = _this._listeners, statusSnapshot = _this._statusSnapshot;
389
+ var _this = this, added = _this._added, removed = _this._removed, statusSnapshot = _this._statusSnapshot;
390
390
  var _this1 = this, trackedDevices = _this1._trackedDevices, controllers = _this1._controllers;
391
391
  // Reset data
392
392
  added.length = removed.length = 0;
@@ -419,15 +419,19 @@ var XRTargetRayMode;
419
419
  }
420
420
  // Dispatch change event
421
421
  if (added.length > 0 || removed.length > 0) {
422
+ var listeners = this._listeners.getLoopArray();
422
423
  for(var i3 = 0, n3 = listeners.length; i3 < n3; i3++){
423
- listeners[i3](added, removed);
424
+ var listener = listeners[i3];
425
+ !listener.destroyed && listener.fn(added, removed);
424
426
  }
425
427
  }
426
428
  };
427
429
  /**
428
430
  * @internal
429
431
  */ _proto._onDestroy = function _onDestroy() {
430
- this._listeners.length = 0;
432
+ this._listeners.findAndRemove(function(value) {
433
+ return value.destroyed = true;
434
+ });
431
435
  };
432
436
  _proto._handleEvent = function _handleEvent(event) {
433
437
  var input = this._trackedDevices[event.input];
@@ -720,10 +724,7 @@ var XRTargetRayMode;
720
724
  */ var XRManagerExtended = /*#__PURE__*/ function(XRManager1) {
721
725
  _inherits(XRManagerExtended, XRManager1);
722
726
  function XRManagerExtended() {
723
- var _this;
724
- _this = XRManager1.apply(this, arguments) || this;
725
- _this.features = [];
726
- return _this;
727
+ return XRManager1.apply(this, arguments);
727
728
  }
728
729
  var _proto = XRManagerExtended.prototype;
729
730
  _proto.isSupportedFeature = function isSupportedFeature(feature) {
@@ -787,6 +788,7 @@ var XRTargetRayMode;
787
788
  });
788
789
  };
789
790
  _proto._initialize = function _initialize(engine, xrDevice) {
791
+ this._features = [];
790
792
  this._platformDevice = xrDevice;
791
793
  this.sessionManager = new XRSessionManager(this, engine);
792
794
  this.inputManager = new XRInputManager(this, engine);
@@ -824,8 +826,8 @@ var XRTargetRayMode;
824
826
  _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
825
827
  return this.sessionManager._getCancelAnimationFrame();
826
828
  };
827
- _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(type) {
828
- return this.cameraManager._getCameraClearFlagsMask(type);
829
+ _proto._getCameraIgnoreClearFlags = function _getCameraIgnoreClearFlags(type) {
830
+ return this.cameraManager._getIgnoreClearFlags(type);
829
831
  };
830
832
  /**
831
833
  * @internal
@@ -868,6 +870,12 @@ var XRTargetRayMode;
868
870
  features.length = 0;
869
871
  };
870
872
  _create_class(XRManagerExtended, [
873
+ {
874
+ key: "features",
875
+ get: function get() {
876
+ return this._features;
877
+ }
878
+ },
871
879
  {
872
880
  key: "origin",
873
881
  get: function get() {