Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-06-07 11:35:34 +0300
committerJacques Lucke <jacques@blender.org>2020-06-07 11:35:34 +0300
commita99a8061aeb71f39de393c1afafa41f23279c9ca (patch)
treefad66e5e74fd4b5ee2282895fbadba57414952c6 /source/blender
parent6c6658ccc0cdfdbc660f8637bf3e5e5fbd74f9c9 (diff)
Refactor: use new api for direct linking keying sets, node sockets and pose
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenloader/intern/readfile.c87
1 files changed, 45 insertions, 42 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index a7ff36822f4..a8a1d3fd204 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -3487,8 +3487,8 @@ static void lib_link_keyingsets(FileData *fd, ID *id, ListBase *list)
}
}
-/* NOTE: this assumes that link_list has already been called on the list */
-static void direct_link_keyingsets(FileData *fd, ListBase *list)
+/* NOTE: this assumes that BLO_read_list has already been called on the list */
+static void direct_link_keyingsets(BlendDataReader *reader, ListBase *list)
{
KeyingSet *ks;
KS_Path *ksp;
@@ -3496,11 +3496,11 @@ static void direct_link_keyingsets(FileData *fd, ListBase *list)
/* link KeyingSet data to KeyingSet again (non ID-libs) */
for (ks = list->first; ks; ks = ks->next) {
/* paths */
- link_list(fd, &ks->paths);
+ BLO_read_list(reader, &ks->paths);
for (ksp = ks->paths.first; ksp; ksp = ksp->next) {
/* rna path */
- ksp->rna_path = newdataadr(fd, ksp->rna_path);
+ BLO_read_data_address(reader, &ksp->rna_path);
}
}
}
@@ -3735,15 +3735,16 @@ static void lib_link_nodetree(FileData *fd, Main *UNUSED(bmain), bNodeTree *ntre
lib_link_ntree(fd, ntree->id.lib, ntree);
}
-static void direct_link_node_socket(FileData *fd, bNodeSocket *sock)
+static void direct_link_node_socket(BlendDataReader *reader, bNodeSocket *sock)
{
- sock->prop = newdataadr(fd, sock->prop);
- IDP_DirectLinkGroup_OrFree(&sock->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
+ BLO_read_data_address(reader, &sock->prop);
+ IDP_DirectLinkGroup_OrFree(
+ &sock->prop, (reader->fd->flags & FD_FLAGS_SWITCH_ENDIAN), reader->fd);
- sock->link = newdataadr(fd, sock->link);
+ BLO_read_data_address(reader, &sock->link);
sock->typeinfo = NULL;
- sock->storage = newdataadr(fd, sock->storage);
- sock->default_value = newdataadr(fd, sock->default_value);
+ BLO_read_data_address(reader, &sock->storage);
+ BLO_read_data_address(reader, &sock->default_value);
sock->cache = NULL;
}
@@ -3861,10 +3862,10 @@ static void direct_link_nodetree(BlendDataReader *reader, bNodeTree *ntree)
node->lasty = 0;
for (sock = node->inputs.first; sock; sock = sock->next) {
- direct_link_node_socket(reader->fd, sock);
+ direct_link_node_socket(reader, sock);
}
for (sock = node->outputs.first; sock; sock = sock->next) {
- direct_link_node_socket(reader->fd, sock);
+ direct_link_node_socket(reader, sock);
}
}
@@ -3872,10 +3873,10 @@ static void direct_link_nodetree(BlendDataReader *reader, bNodeTree *ntree)
BLO_read_list(reader, &ntree->inputs);
BLO_read_list(reader, &ntree->outputs);
for (sock = ntree->inputs.first; sock; sock = sock->next) {
- direct_link_node_socket(reader->fd, sock);
+ direct_link_node_socket(reader, sock);
}
for (sock = ntree->outputs.first; sock; sock = sock->next) {
- direct_link_node_socket(reader->fd, sock);
+ direct_link_node_socket(reader, sock);
}
for (link = ntree->links.first; link; link = link->next) {
@@ -3960,35 +3961,36 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist)
BKE_constraints_id_loop(conlist, lib_link_constraint_cb, &cld);
}
-static void direct_link_constraints(FileData *fd, ListBase *lb)
+static void direct_link_constraints(BlendDataReader *reader, ListBase *lb)
{
bConstraint *con;
- link_list(fd, lb);
+ BLO_read_list(reader, lb);
for (con = lb->first; con; con = con->next) {
- con->data = newdataadr(fd, con->data);
+ BLO_read_data_address(reader, &con->data);
switch (con->type) {
case CONSTRAINT_TYPE_PYTHON: {
bPythonConstraint *data = con->data;
- link_list(fd, &data->targets);
+ BLO_read_list(reader, &data->targets);
- data->prop = newdataadr(fd, data->prop);
- IDP_DirectLinkGroup_OrFree(&data->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
+ BLO_read_data_address(reader, &data->prop);
+ IDP_DirectLinkGroup_OrFree(
+ &data->prop, (reader->fd->flags & FD_FLAGS_SWITCH_ENDIAN), reader->fd);
break;
}
case CONSTRAINT_TYPE_ARMATURE: {
bArmatureConstraint *data = con->data;
- link_list(fd, &data->targets);
+ BLO_read_list(reader, &data->targets);
break;
}
case CONSTRAINT_TYPE_SPLINEIK: {
bSplineIKConstraint *data = con->data;
- data->points = newdataadr(fd, data->points);
+ BLO_read_data_address(reader, &data->points);
break;
}
case CONSTRAINT_TYPE_KINEMATIC: {
@@ -5449,7 +5451,7 @@ static void lib_link_object(FileData *fd, Main *bmain, Object *ob)
}
/* direct data for cache */
-static void direct_link_motionpath(FileData *fd, bMotionPath *mpath)
+static void direct_link_motionpath(BlendDataReader *reader, bMotionPath *mpath)
{
/* sanity check */
if (mpath == NULL) {
@@ -5457,14 +5459,14 @@ static void direct_link_motionpath(FileData *fd, bMotionPath *mpath)
}
/* relink points cache */
- mpath->points = newdataadr(fd, mpath->points);
+ BLO_read_data_address(reader, &mpath->points);
mpath->points_vbo = NULL;
mpath->batch_line = NULL;
mpath->batch_points = NULL;
}
-static void direct_link_pose(FileData *fd, bPose *pose)
+static void direct_link_pose(BlendDataReader *reader, bPose *pose)
{
bPoseChannel *pchan;
@@ -5472,29 +5474,30 @@ static void direct_link_pose(FileData *fd, bPose *pose)
return;
}
- link_list(fd, &pose->chanbase);
- link_list(fd, &pose->agroups);
+ BLO_read_list(reader, &pose->chanbase);
+ BLO_read_list(reader, &pose->agroups);
pose->chanhash = NULL;
pose->chan_array = NULL;
for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
pchan->bone = NULL;
- pchan->parent = newdataadr(fd, pchan->parent);
- pchan->child = newdataadr(fd, pchan->child);
- pchan->custom_tx = newdataadr(fd, pchan->custom_tx);
+ BLO_read_data_address(reader, &pchan->parent);
+ BLO_read_data_address(reader, &pchan->child);
+ BLO_read_data_address(reader, &pchan->custom_tx);
- pchan->bbone_prev = newdataadr(fd, pchan->bbone_prev);
- pchan->bbone_next = newdataadr(fd, pchan->bbone_next);
+ BLO_read_data_address(reader, &pchan->bbone_prev);
+ BLO_read_data_address(reader, &pchan->bbone_next);
- direct_link_constraints(fd, &pchan->constraints);
+ direct_link_constraints(reader, &pchan->constraints);
- pchan->prop = newdataadr(fd, pchan->prop);
- IDP_DirectLinkGroup_OrFree(&pchan->prop, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
+ BLO_read_data_address(reader, &pchan->prop);
+ IDP_DirectLinkGroup_OrFree(
+ &pchan->prop, (reader->fd->flags & FD_FLAGS_SWITCH_ENDIAN), reader->fd);
- pchan->mpath = newdataadr(fd, pchan->mpath);
+ BLO_read_data_address(reader, &pchan->mpath);
if (pchan->mpath) {
- direct_link_motionpath(fd, pchan->mpath);
+ direct_link_motionpath(reader, pchan->mpath);
}
BLI_listbase_clear(&pchan->iktree);
@@ -5508,7 +5511,7 @@ static void direct_link_pose(FileData *fd, bPose *pose)
}
pose->ikdata = NULL;
if (pose->ikparam != NULL) {
- pose->ikparam = newdataadr(fd, pose->ikparam);
+ BLO_read_data_address(reader, &pose->ikparam);
}
}
@@ -6127,11 +6130,11 @@ static void direct_link_object(BlendDataReader *reader, Object *ob)
direct_link_animdata(reader, ob->adt);
BLO_read_data_address(reader, &ob->pose);
- direct_link_pose(reader->fd, ob->pose);
+ direct_link_pose(reader, ob->pose);
BLO_read_data_address(reader, &ob->mpath);
if (ob->mpath) {
- direct_link_motionpath(reader->fd, ob->mpath);
+ direct_link_motionpath(reader, ob->mpath);
}
BLO_read_list(reader, &ob->defbase);
@@ -6254,7 +6257,7 @@ static void direct_link_object(BlendDataReader *reader, Object *ob)
BLO_read_list(reader, &ob->particlesystem);
direct_link_particlesystems(reader->fd, &ob->particlesystem);
- direct_link_constraints(reader->fd, &ob->constraints);
+ direct_link_constraints(reader, &ob->constraints);
BLO_read_list(reader, &ob->hooks);
while (ob->hooks.first) {
@@ -6922,7 +6925,7 @@ static void direct_link_scene(BlendDataReader *reader, Scene *sce)
direct_link_animdata(reader, sce->adt);
BLO_read_list(reader, &sce->keyingsets);
- direct_link_keyingsets(reader->fd, &sce->keyingsets);
+ direct_link_keyingsets(reader, &sce->keyingsets);
BLO_read_data_address(reader, &sce->basact);