mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-05 11:28:17 -04:00
pgraph: Slight efficiency refactoring of remove_unused_vertices()
This commit is contained in:
parent
f64dcbd3df
commit
4d5d7047af
@ -72,9 +72,9 @@ GeomTransformer::
|
|||||||
* purpose of later removing unused vertices.
|
* purpose of later removing unused vertices.
|
||||||
*/
|
*/
|
||||||
void GeomTransformer::
|
void GeomTransformer::
|
||||||
register_vertices(Geom *geom, bool might_have_unused) {
|
register_vertices(PT(Geom) geom, bool might_have_unused) {
|
||||||
VertexDataAssoc &assoc = _vdata_assoc[geom->get_vertex_data()];
|
VertexDataAssoc &assoc = _vdata_assoc[geom->get_vertex_data()];
|
||||||
assoc._geoms.push_back(geom);
|
assoc._geoms.push_back(std::move(geom));
|
||||||
if (might_have_unused) {
|
if (might_have_unused) {
|
||||||
assoc._might_have_unused = true;
|
assoc._might_have_unused = true;
|
||||||
}
|
}
|
||||||
@ -89,12 +89,8 @@ register_vertices(GeomNode *node, bool might_have_unused) {
|
|||||||
Thread *current_thread = Thread::get_current_thread();
|
Thread *current_thread = Thread::get_current_thread();
|
||||||
OPEN_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler, current_thread) {
|
OPEN_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler, current_thread) {
|
||||||
GeomNode::CDStageWriter cdata(node->_cycler, pipeline_stage, current_thread);
|
GeomNode::CDStageWriter cdata(node->_cycler, pipeline_stage, current_thread);
|
||||||
GeomNode::GeomList::iterator gi;
|
for (GeomNode::GeomEntry &entry : *cdata->modify_geoms()) {
|
||||||
PT(GeomNode::GeomList) geoms = cdata->modify_geoms();
|
register_vertices(entry._geom.get_write_pointer(), might_have_unused);
|
||||||
for (gi = geoms->begin(); gi != geoms->end(); ++gi) {
|
|
||||||
GeomNode::GeomEntry &entry = (*gi);
|
|
||||||
PT(Geom) geom = entry._geom.get_write_pointer();
|
|
||||||
register_vertices(geom, might_have_unused);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CLOSE_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler);
|
CLOSE_ITERATE_CURRENT_AND_UPSTREAM(node->_cycler);
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
INLINE int get_max_collect_vertices() const;
|
INLINE int get_max_collect_vertices() const;
|
||||||
INLINE void set_max_collect_vertices(int max_collect_vertices);
|
INLINE void set_max_collect_vertices(int max_collect_vertices);
|
||||||
|
|
||||||
void register_vertices(Geom *geom, bool might_have_unused);
|
void register_vertices(PT(Geom) geom, bool might_have_unused);
|
||||||
void register_vertices(GeomNode *node, bool might_have_unused);
|
void register_vertices(GeomNode *node, bool might_have_unused);
|
||||||
|
|
||||||
bool transform_vertices(Geom *geom, const LMatrix4 &mat);
|
bool transform_vertices(Geom *geom, const LMatrix4 &mat);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user