Browse Source

PT(Camera)

David Rose 23 years ago
parent
commit
b3d91a4ad4
2 changed files with 9 additions and 6 deletions
  1. 5 5
      panda/src/display/displayRegion.cxx
  2. 4 1
      panda/src/display/displayRegion.h

+ 5 - 5
panda/src/display/displayRegion.cxx

@@ -255,10 +255,9 @@ get_pipe() const {
 //     Function: DisplayRegion::set_camera
 //       Access: Published
 //  Description: Sets the camera that is associated with this
-//               DisplayRegion.  There is a one-to-one association
-//               between cameras and DisplayRegions; if this camera
-//               was already associated with a different
-//               DisplayRegion, that association is removed.
+//               DisplayRegion.  There is a one-to-many association
+//               between cameras and DisplayRegions; one camera may be
+//               shared by multiple DisplayRegions.
 //
 //               The camera is actually set via a NodePath, which
 //               clarifies which instance of the camera (if there
@@ -291,7 +290,8 @@ set_camera(const NodePath &camera) {
 //     Function: DisplayRegion::get_camera
 //       Access: Published
 //  Description: Returns the camera associated with this
-//               DisplayRegion, or NULL if no camera is associated.
+//               DisplayRegion, or an empty NodePath if no camera is
+//               associated.
 ////////////////////////////////////////////////////////////////////
 const NodePath &DisplayRegion::
 get_camera() const {

+ 4 - 1
panda/src/display/displayRegion.h

@@ -100,7 +100,10 @@ private:
 
   GraphicsLayer *_layer;
   NodePath _camera;
-  Camera *_camera_node;
+
+  // This needs to be a PT(Camera) so we prevent the Camera node from
+  // destructing while we hold its pointer.
+  PT(Camera) _camera_node;
 
   bool _active;