Browse Source

gobj: Enable slightly more efficient GeomVertexReader/Writer ctor

This allows moving an existing PT(GeomVertexData) into the object, preventing an extra refcount increase.
rdb 5 years ago
parent
commit
79714392cb

+ 8 - 8
panda/src/gobj/geomVertexReader.I

@@ -29,9 +29,9 @@ GeomVertexReader(Thread *current_thread) :
  * object.
  */
 INLINE GeomVertexReader::
-GeomVertexReader(const GeomVertexData *vertex_data,
+GeomVertexReader(CPT(GeomVertexData) vertex_data,
                  Thread *current_thread) :
-  _vertex_data(vertex_data),
+  _vertex_data(std::move(vertex_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -43,10 +43,10 @@ GeomVertexReader(const GeomVertexData *vertex_data,
  * data type.
  */
 INLINE GeomVertexReader::
-GeomVertexReader(const GeomVertexData *vertex_data,
+GeomVertexReader(CPT(GeomVertexData) vertex_data,
                  CPT_InternalName name,
                  Thread *current_thread) :
-  _vertex_data(vertex_data),
+  _vertex_data(std::move(vertex_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -58,9 +58,9 @@ GeomVertexReader(const GeomVertexData *vertex_data,
  * only.
  */
 INLINE GeomVertexReader::
-GeomVertexReader(const GeomVertexArrayData *array_data,
+GeomVertexReader(CPT(GeomVertexArrayData) array_data,
                  Thread *current_thread) :
-  _array_data(array_data),
+  _array_data(std::move(array_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -71,9 +71,9 @@ GeomVertexReader(const GeomVertexArrayData *array_data,
  * only.
  */
 INLINE GeomVertexReader::
-GeomVertexReader(const GeomVertexArrayData *array_data, int column,
+GeomVertexReader(CPT(GeomVertexArrayData) array_data, int column,
                  Thread *current_thread) :
-  _array_data(array_data),
+  _array_data(std::move(array_data)),
   _current_thread(current_thread)
 {
   initialize();

+ 4 - 4
panda/src/gobj/geomVertexReader.h

@@ -47,14 +47,14 @@
 class EXPCL_PANDA_GOBJ GeomVertexReader : public GeomEnums {
 PUBLISHED:
   INLINE GeomVertexReader(Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexReader(const GeomVertexData *vertex_data,
+  INLINE GeomVertexReader(CPT(GeomVertexData) vertex_data,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexReader(const GeomVertexData *vertex_data,
+  INLINE GeomVertexReader(CPT(GeomVertexData) vertex_data,
                           CPT_InternalName name,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexReader(const GeomVertexArrayData *array_data,
+  INLINE GeomVertexReader(CPT(GeomVertexArrayData) array_data,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexReader(const GeomVertexArrayData *array_data,
+  INLINE GeomVertexReader(CPT(GeomVertexArrayData) array_data,
                           int column,
                           Thread *current_thread = Thread::get_current_thread());
 

+ 8 - 8
panda/src/gobj/geomVertexWriter.I

@@ -29,8 +29,8 @@ GeomVertexWriter(Thread *current_thread) :
  * object.
  */
 INLINE GeomVertexWriter::
-GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread) :
-  _vertex_data(vertex_data),
+GeomVertexWriter(PT(GeomVertexData) vertex_data, Thread *current_thread) :
+  _vertex_data(std::move(vertex_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -42,9 +42,9 @@ GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread) :
  * data type.
  */
 INLINE GeomVertexWriter::
-GeomVertexWriter(GeomVertexData *vertex_data, CPT_InternalName name,
+GeomVertexWriter(PT(GeomVertexData) vertex_data, CPT_InternalName name,
                  Thread *current_thread) :
-  _vertex_data(vertex_data),
+  _vertex_data(std::move(vertex_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -56,9 +56,9 @@ GeomVertexWriter(GeomVertexData *vertex_data, CPT_InternalName name,
  * only.
  */
 INLINE GeomVertexWriter::
-GeomVertexWriter(GeomVertexArrayData *array_data,
+GeomVertexWriter(PT(GeomVertexArrayData) array_data,
                  Thread *current_thread) :
-  _array_data(array_data),
+  _array_data(std::move(array_data)),
   _current_thread(current_thread)
 {
   initialize();
@@ -69,9 +69,9 @@ GeomVertexWriter(GeomVertexArrayData *array_data,
  * only.
  */
 INLINE GeomVertexWriter::
-GeomVertexWriter(GeomVertexArrayData *array_data, int column,
+GeomVertexWriter(PT(GeomVertexArrayData) array_data, int column,
                  Thread *current_thread) :
-  _array_data(array_data),
+  _array_data(std::move(array_data)),
   _current_thread(current_thread)
 {
   initialize();

+ 4 - 4
panda/src/gobj/geomVertexWriter.h

@@ -55,14 +55,14 @@
 class EXPCL_PANDA_GOBJ GeomVertexWriter : public GeomEnums {
 PUBLISHED:
   INLINE GeomVertexWriter(Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexWriter(GeomVertexData *vertex_data,
+  INLINE GeomVertexWriter(PT(GeomVertexData) vertex_data,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexWriter(GeomVertexData *vertex_data,
+  INLINE GeomVertexWriter(PT(GeomVertexData) vertex_data,
                           CPT_InternalName name,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexWriter(GeomVertexArrayData *array_data,
+  INLINE GeomVertexWriter(PT(GeomVertexArrayData) array_data,
                           Thread *current_thread = Thread::get_current_thread());
-  INLINE GeomVertexWriter(GeomVertexArrayData *array_data,
+  INLINE GeomVertexWriter(PT(GeomVertexArrayData) array_data,
                           int column,
                           Thread *current_thread = Thread::get_current_thread());