Skip to content

Commit

Permalink
Merge pull request #92164 from DarioSamo/force_update_skeleton
Browse files Browse the repository at this point in the history
Replace List with LocalVector on Skeleton3D's bone transform update.
  • Loading branch information
akien-mga committed May 21, 2024
2 parents 0f04485 + e54b928 commit d7a5f9d
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions scene/3d/skeleton_3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -847,12 +847,13 @@ void Skeleton3D::force_update_bone_children_transforms(int p_bone_idx) {
ERR_FAIL_INDEX(p_bone_idx, bone_size);

Bone *bonesptr = bones.ptrw();
List<int> bones_to_process = List<int>();
thread_local LocalVector<int> bones_to_process;
bones_to_process.clear();
bones_to_process.push_back(p_bone_idx);

while (bones_to_process.size() > 0) {
int current_bone_idx = bones_to_process.front()->get();
bones_to_process.erase(current_bone_idx);
uint32_t index = 0;
while (index < bones_to_process.size()) {
int current_bone_idx = bones_to_process[index];

Bone &b = bonesptr[current_bone_idx];
bool bone_enabled = b.enabled && !show_rest_only;
Expand Down Expand Up @@ -905,6 +906,8 @@ void Skeleton3D::force_update_bone_children_transforms(int p_bone_idx) {
for (int i = 0; i < child_bone_size; i++) {
bones_to_process.push_back(b.child_bones[i]);
}

index++;
}
}

Expand Down

0 comments on commit d7a5f9d

Please sign in to comment.