From 9a3d54943aae2bf71ce942e5b59de43f844d3357 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Sat, 6 Jun 2020 14:10:43 +0200 Subject: Refactor: use new api for direct linking mball, material, texture and image --- source/blender/blenloader/intern/readfile.c | 69 ++++++++++++++--------------- 1 file changed, 34 insertions(+), 35 deletions(-) (limited to 'source/blender/blenloader') diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6e22bad9451..371e5d42f39 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4282,15 +4282,14 @@ static void lib_link_mball(FileData *fd, Main *UNUSED(bmain), MetaBall *mb) mb->ipo = newlibadr(fd, mb->id.lib, mb->ipo); // XXX deprecated - old animation system } -static void direct_link_mball(FileData *fd, MetaBall *mb) +static void direct_link_mball(BlendDataReader *reader, MetaBall *mb) { - mb->adt = newdataadr(fd, mb->adt); - direct_link_animdata(fd, mb->adt); + BLO_read_data_address(reader, &mb->adt); + direct_link_animdata(reader->fd, mb->adt); - mb->mat = newdataadr(fd, mb->mat); - test_pointer_array(fd, (void **)&mb->mat); + BLO_read_pointer_array(reader, (void **)&mb->mat); - link_list(fd, &(mb->elems)); + BLO_read_list(reader, &(mb->elems)); BLI_listbase_clear(&mb->disp); mb->editelems = NULL; @@ -4393,19 +4392,19 @@ static void lib_link_image(FileData *UNUSED(fd), Main *UNUSED(bmain), Image *UNU { } -static void direct_link_image(FileData *fd, Image *ima) +static void direct_link_image(BlendDataReader *reader, Image *ima) { ImagePackedFile *imapf; /* for undo system, pointers could be restored */ - if (fd->imamap) { - ima->cache = newimaadr(fd, ima->cache); + if (reader->fd->imamap) { + ima->cache = newimaadr(reader->fd, ima->cache); } else { ima->cache = NULL; } - link_list(fd, &ima->tiles); + BLO_read_list(reader, &ima->tiles); /* if not restored, we keep the binded opengl index */ if (!ima->cache) { @@ -4421,17 +4420,17 @@ static void direct_link_image(FileData *fd, Image *ima) else { for (int eye = 0; eye < 2; eye++) { for (int i = 0; i < TEXTARGET_COUNT; i++) { - ima->gputexture[i][eye] = newimaadr(fd, ima->gputexture[i][eye]); + ima->gputexture[i][eye] = newimaadr(reader->fd, ima->gputexture[i][eye]); } } - ima->rr = newimaadr(fd, ima->rr); + ima->rr = newimaadr(reader->fd, ima->rr); } /* undo system, try to restore render buffers */ - link_list(fd, &(ima->renderslots)); - if (fd->imamap) { + BLO_read_list(reader, &(ima->renderslots)); + if (reader->fd->imamap) { LISTBASE_FOREACH (RenderSlot *, slot, &ima->renderslots) { - slot->render = newimaadr(fd, slot->render); + slot->render = newimaadr(reader->fd, slot->render); } } else { @@ -4441,22 +4440,22 @@ static void direct_link_image(FileData *fd, Image *ima) ima->last_render_slot = ima->render_slot; } - link_list(fd, &(ima->views)); - link_list(fd, &(ima->packedfiles)); + BLO_read_list(reader, &(ima->views)); + BLO_read_list(reader, &(ima->packedfiles)); if (ima->packedfiles.first) { for (imapf = ima->packedfiles.first; imapf; imapf = imapf->next) { - imapf->packedfile = direct_link_packedfile(fd, imapf->packedfile); + imapf->packedfile = direct_link_packedfile(reader->fd, imapf->packedfile); } ima->packedfile = NULL; } else { - ima->packedfile = direct_link_packedfile(fd, ima->packedfile); + ima->packedfile = direct_link_packedfile(reader->fd, ima->packedfile); } BLI_listbase_clear(&ima->anims); - ima->preview = direct_link_preview_image(fd, ima->preview); - ima->stereo3d_format = newdataadr(fd, ima->stereo3d_format); + ima->preview = direct_link_preview_image(reader->fd, ima->preview); + BLO_read_data_address(reader, &ima->stereo3d_format); LISTBASE_FOREACH (ImageTile *, tile, &ima->tiles) { tile->ok = 1; } @@ -4568,14 +4567,14 @@ static void lib_link_texture(FileData *fd, Main *UNUSED(bmain), Tex *tex) tex->ipo = newlibadr(fd, tex->id.lib, tex->ipo); // XXX deprecated - old animation system } -static void direct_link_texture(FileData *fd, Tex *tex) +static void direct_link_texture(BlendDataReader *reader, Tex *tex) { - tex->adt = newdataadr(fd, tex->adt); - direct_link_animdata(fd, tex->adt); + BLO_read_data_address(reader, &tex->adt); + direct_link_animdata(reader->fd, tex->adt); - tex->coba = newdataadr(fd, tex->coba); + BLO_read_data_address(reader, &tex->coba); - tex->preview = direct_link_preview_image(fd, tex->preview); + tex->preview = direct_link_preview_image(reader->fd, tex->preview); tex->iuser.ok = 1; tex->iuser.scene = NULL; @@ -4603,17 +4602,17 @@ static void lib_link_material(FileData *fd, Main *UNUSED(bmain), Material *ma) } } -static void direct_link_material(FileData *fd, Material *ma) +static void direct_link_material(BlendDataReader *reader, Material *ma) { - ma->adt = newdataadr(fd, ma->adt); - direct_link_animdata(fd, ma->adt); + BLO_read_data_address(reader, &ma->adt); + direct_link_animdata(reader->fd, ma->adt); ma->texpaintslot = NULL; - ma->preview = direct_link_preview_image(fd, ma->preview); + ma->preview = direct_link_preview_image(reader->fd, ma->preview); BLI_listbase_clear(&ma->gpumaterial); - ma->gp_style = newdataadr(fd, ma->gp_style); + BLO_read_data_address(reader, &ma->gp_style); } /** \} */ @@ -9398,16 +9397,16 @@ static bool direct_link_id(FileData *fd, Main *main, const int tag, ID *id, ID * direct_link_curve(&reader, (Curve *)id); break; case ID_MB: - direct_link_mball(fd, (MetaBall *)id); + direct_link_mball(&reader, (MetaBall *)id); break; case ID_MA: - direct_link_material(fd, (Material *)id); + direct_link_material(&reader, (Material *)id); break; case ID_TE: - direct_link_texture(fd, (Tex *)id); + direct_link_texture(&reader, (Tex *)id); break; case ID_IM: - direct_link_image(fd, (Image *)id); + direct_link_image(&reader, (Image *)id); break; case ID_LA: direct_link_light(fd, (Light *)id); -- cgit v1.2.3