Use local vector for skeleton
This commit is contained in:
parent
1917bc3454
commit
1ba168fcbc
8 changed files with 73 additions and 74 deletions
|
|
@ -2166,7 +2166,7 @@ void MeshStorage::skeleton_allocate_data(RID p_skeleton, int p_bones, bool p_2d_
|
|||
if (skeleton->size) {
|
||||
skeleton->data.resize(skeleton->size * (skeleton->use_2d ? 8 : 12));
|
||||
skeleton->buffer = RD::get_singleton()->storage_buffer_create(skeleton->data.size() * sizeof(float));
|
||||
memset(skeleton->data.ptrw(), 0, skeleton->data.size() * sizeof(float));
|
||||
memset(skeleton->data.ptr(), 0, skeleton->data.size() * sizeof(float));
|
||||
|
||||
_skeleton_make_dirty(skeleton);
|
||||
|
||||
|
|
@ -2200,7 +2200,7 @@ void MeshStorage::skeleton_bone_set_transform(RID p_skeleton, int p_bone, const
|
|||
ERR_FAIL_INDEX(p_bone, skeleton->size);
|
||||
ERR_FAIL_COND(skeleton->use_2d);
|
||||
|
||||
float *dataptr = skeleton->data.ptrw() + p_bone * 12;
|
||||
float *dataptr = skeleton->data.ptr() + p_bone * 12;
|
||||
|
||||
dataptr[0] = p_transform.basis.rows[0][0];
|
||||
dataptr[1] = p_transform.basis.rows[0][1];
|
||||
|
|
@ -2251,8 +2251,7 @@ void MeshStorage::skeleton_bone_set_transform_2d(RID p_skeleton, int p_bone, con
|
|||
ERR_FAIL_NULL(skeleton);
|
||||
ERR_FAIL_INDEX(p_bone, skeleton->size);
|
||||
ERR_FAIL_COND(!skeleton->use_2d);
|
||||
|
||||
float *dataptr = skeleton->data.ptrw() + p_bone * 8;
|
||||
float *dataptr = skeleton->data.ptr() + p_bone * 8;
|
||||
|
||||
dataptr[0] = p_transform.columns[0][0];
|
||||
dataptr[1] = p_transform.columns[1][0];
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ private:
|
|||
struct Skeleton {
|
||||
bool use_2d = false;
|
||||
int size = 0;
|
||||
Vector<float> data;
|
||||
LocalVector<float> data;
|
||||
RID buffer;
|
||||
|
||||
bool dirty = false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue