diff --git a/panda/src/display/displayRegion.cxx b/panda/src/display/displayRegion.cxx index 9631315611..979aa61585 100644 --- a/panda/src/display/displayRegion.cxx +++ b/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 { diff --git a/panda/src/display/displayRegion.h b/panda/src/display/displayRegion.h index 0757e65aa7..a26f20ad12 100644 --- a/panda/src/display/displayRegion.h +++ b/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;