mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
char: fix deadlock regression in 3ac504e
This commit is contained in:
parent
0df97a2c6b
commit
8bf6385627
@ -797,6 +797,8 @@ r_update_geom(PandaNode *node, const Character::JointMap &joint_map,
|
|||||||
* Makes a new copy of the Geom with the dynamic vertex arrays replaced to
|
* Makes a new copy of the Geom with the dynamic vertex arrays replaced to
|
||||||
* reference this Character instead of the other one. If no arrays have
|
* reference this Character instead of the other one. If no arrays have
|
||||||
* changed, simply returns the same Geom.
|
* changed, simply returns the same Geom.
|
||||||
|
*
|
||||||
|
* Assumes the lock is held.
|
||||||
*/
|
*/
|
||||||
PT(Geom) Character::
|
PT(Geom) Character::
|
||||||
copy_geom(const Geom *source, const Character::JointMap &joint_map,
|
copy_geom(const Geom *source, const Character::JointMap &joint_map,
|
||||||
@ -1036,9 +1038,14 @@ redirect_slider(const VertexSlider *vs, Character::GeomSliderMap &gsmap) {
|
|||||||
|
|
||||||
if (vs->is_of_type(CharacterVertexSlider::get_class_type())) {
|
if (vs->is_of_type(CharacterVertexSlider::get_class_type())) {
|
||||||
const CharacterVertexSlider *cvs = DCAST(CharacterVertexSlider, vs);
|
const CharacterVertexSlider *cvs = DCAST(CharacterVertexSlider, vs);
|
||||||
CharacterSlider *slider = find_slider(cvs->get_char_slider()->get_name());
|
const std::string &name = cvs->get_char_slider()->get_name();
|
||||||
if (slider != nullptr) {
|
for (PartBundleHandle *handle : _bundles) {
|
||||||
new_cvs = new CharacterVertexSlider(slider);
|
PartGroup *part = handle->get_bundle()->find_child(name);
|
||||||
|
if (part != nullptr &&
|
||||||
|
part->is_of_type(CharacterSlider::get_class_type())) {
|
||||||
|
new_cvs = new CharacterVertexSlider((CharacterSlider *)part);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user