|
|
@@ -161,6 +161,17 @@ class ReflectorNode extends TextureNode {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Frees internal resources. Should be called when the node is no longer in use.
|
|
|
+ */
|
|
|
+ dispose() {
|
|
|
+
|
|
|
+ super.dispose();
|
|
|
+
|
|
|
+ this._reflectorBaseNode.dispose();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -269,9 +280,9 @@ class ReflectorBaseNode extends Node {
|
|
|
/**
|
|
|
* Weak map for managing render targets.
|
|
|
*
|
|
|
- * @type {WeakMap<Camera, RenderTarget>}
|
|
|
+ * @type {Map<Camera, RenderTarget>}
|
|
|
*/
|
|
|
- this.renderTargets = new WeakMap();
|
|
|
+ this.renderTargets = new Map();
|
|
|
|
|
|
/**
|
|
|
* Force render even if reflector is facing away from camera.
|
|
|
@@ -308,6 +319,21 @@ class ReflectorBaseNode extends Node {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Frees internal resources. Should be called when the node is no longer in use.
|
|
|
+ */
|
|
|
+ dispose() {
|
|
|
+
|
|
|
+ super.dispose();
|
|
|
+
|
|
|
+ for ( const renderTarget of this.renderTargets.values() ) {
|
|
|
+
|
|
|
+ renderTarget.dispose();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Returns a virtual camera for the given camera. The virtual camera is used to
|
|
|
* render the scene from the reflector's view so correct reflections can be produced.
|