@galacean/engine-xr 1.3.0-beta.9 → 1.3.1

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];
@@ -827,8 +831,8 @@ exports.XRTargetRayMode = void 0;
827
831
  _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
828
832
  return this.sessionManager._getCancelAnimationFrame();
829
833
  };
830
- _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(type) {
831
- return this.cameraManager._getCameraClearFlagsMask(type);
834
+ _proto._getCameraIgnoreClearFlags = function _getCameraIgnoreClearFlags(type) {
835
+ return this.cameraManager._getIgnoreClearFlags(type);
832
836
  };
833
837
  /**
834
838
  * @internal
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];
@@ -822,8 +826,8 @@ var XRTargetRayMode;
822
826
  _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
823
827
  return this.sessionManager._getCancelAnimationFrame();
824
828
  };
825
- _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(type) {
826
- return this.cameraManager._getCameraClearFlagsMask(type);
829
+ _proto._getCameraIgnoreClearFlags = function _getCameraIgnoreClearFlags(type) {
830
+ return this.cameraManager._getIgnoreClearFlags(type);
827
831
  };
828
832
  /**
829
833
  * @internal