diff options
author | Jacques Lucke <jacques@blender.org> | 2020-06-06 14:20:20 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-06-06 14:20:20 +0300 |
commit | 0eb969dd99db57d375d00ee8b67d25ea949709e7 (patch) | |
tree | 94fbc47c5ceef5bd57d9ffdfce66e66fc39926f8 /source/blender/blenloader/intern | |
parent | 1d066050b6467c32565f9a26fac6e4b07ca49d22 (diff) |
Refactor: use new api for direct linking screen and gpencil
Diffstat (limited to 'source/blender/blenloader/intern')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index c4624939986..e7c3beaba7a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -7245,7 +7245,7 @@ static void lib_link_gpencil(FileData *fd, Main *UNUSED(bmain), bGPdata *gpd) } /* relinks grease-pencil data - used for direct_link and old file linkage */ -static void direct_link_gpencil(FileData *fd, bGPdata *gpd) +static void direct_link_gpencil(BlendDataReader *reader, bGPdata *gpd) { bGPDpalette *palette; @@ -7255,8 +7255,8 @@ static void direct_link_gpencil(FileData *fd, bGPdata *gpd) } /* relink animdata */ - gpd->adt = newdataadr(fd, gpd->adt); - direct_link_animdata(fd, gpd->adt); + BLO_read_data_address(reader, &gpd->adt); + direct_link_animdata(reader->fd, gpd->adt); /* Ensure full objectmode for linked grease pencil. */ if (gpd->id.lib != NULL) { @@ -7274,45 +7274,44 @@ static void direct_link_gpencil(FileData *fd, bGPdata *gpd) gpd->runtime.tot_cp_points = 0; /* relink palettes (old palettes deprecated, only to convert old files) */ - link_list(fd, &gpd->palettes); + BLO_read_list(reader, &gpd->palettes); if (gpd->palettes.first != NULL) { for (palette = gpd->palettes.first; palette; palette = palette->next) { - link_list(fd, &palette->colors); + BLO_read_list(reader, &palette->colors); } } /* materials */ - gpd->mat = newdataadr(fd, gpd->mat); - test_pointer_array(fd, (void **)&gpd->mat); + BLO_read_pointer_array(reader, (void **)&gpd->mat); /* relink layers */ - link_list(fd, &gpd->layers); + BLO_read_list(reader, &gpd->layers); LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) { /* relink frames */ - link_list(fd, &gpl->frames); + BLO_read_list(reader, &gpl->frames); - gpl->actframe = newdataadr(fd, gpl->actframe); + BLO_read_data_address(reader, &gpl->actframe); gpl->runtime.icon_id = 0; /* Relink masks. */ - link_list(fd, &gpl->mask_layers); + BLO_read_list(reader, &gpl->mask_layers); LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) { /* relink strokes (and their points) */ - link_list(fd, &gpf->strokes); + BLO_read_list(reader, &gpf->strokes); LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) { /* relink stroke points array */ - gps->points = newdataadr(fd, gps->points); + BLO_read_data_address(reader, &gps->points); /* Relink geometry*/ - gps->triangles = newdataadr(fd, gps->triangles); + BLO_read_data_address(reader, &gps->triangles); /* relink weight data */ if (gps->dvert) { - gps->dvert = newdataadr(fd, gps->dvert); - direct_link_dverts(fd, gps->totpoints, gps->dvert); + BLO_read_data_address(reader, &gps->dvert); + direct_link_dverts(reader->fd, gps->totpoints, gps->dvert); } } } @@ -7325,36 +7324,37 @@ static void direct_link_gpencil(FileData *fd, bGPdata *gpd) /** \name Read Screen Area/Region (Screen Data) * \{ */ -static void direct_link_panel_list(FileData *fd, ListBase *lb) +static void direct_link_panel_list(BlendDataReader *reader, ListBase *lb) { - link_list(fd, lb); + BLO_read_list(reader, lb); LISTBASE_FOREACH (Panel *, panel, lb) { panel->runtime_flag = 0; panel->activedata = NULL; panel->type = NULL; - direct_link_panel_list(fd, &panel->children); + direct_link_panel_list(reader, &panel->children); } } -static void direct_link_region(FileData *fd, ARegion *region, int spacetype) +static void direct_link_region(BlendDataReader *reader, ARegion *region, int spacetype) { uiList *ui_list; - direct_link_panel_list(fd, ®ion->panels); + direct_link_panel_list(reader, ®ion->panels); - link_list(fd, ®ion->panels_category_active); + BLO_read_list(reader, ®ion->panels_category_active); - link_list(fd, ®ion->ui_lists); + BLO_read_list(reader, ®ion->ui_lists); for (ui_list = region->ui_lists.first; ui_list; ui_list = ui_list->next) { ui_list->type = NULL; ui_list->dyn_data = NULL; - ui_list->properties = newdataadr(fd, ui_list->properties); - IDP_DirectLinkGroup_OrFree(&ui_list->properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd); + BLO_read_data_address(reader, &ui_list->properties); + IDP_DirectLinkGroup_OrFree( + &ui_list->properties, (reader->fd->flags & FD_FLAGS_SWITCH_ENDIAN), reader->fd); } - link_list(fd, ®ion->ui_previews); + BLO_read_list(reader, ®ion->ui_previews); if (spacetype == SPACE_EMPTY) { /* unknown space type, don't leak regiondata */ @@ -7365,13 +7365,13 @@ static void direct_link_region(FileData *fd, ARegion *region, int spacetype) region->regiondata = NULL; } else { - region->regiondata = newdataadr(fd, region->regiondata); + BLO_read_data_address(reader, ®ion->regiondata); if (region->regiondata) { if (spacetype == SPACE_VIEW3D) { RegionView3D *rv3d = region->regiondata; - rv3d->localvd = newdataadr(fd, rv3d->localvd); - rv3d->clipbb = newdataadr(fd, rv3d->clipbb); + BLO_read_data_address(reader, &rv3d->localvd); + BLO_read_data_address(reader, &rv3d->clipbb); rv3d->depths = NULL; rv3d->render_engine = NULL; @@ -7402,13 +7402,13 @@ static void direct_link_region(FileData *fd, ARegion *region, int spacetype) memset(®ion->drawrct, 0, sizeof(region->drawrct)); } -static void direct_link_area(FileData *fd, ScrArea *area) +static void direct_link_area(BlendDataReader *reader, ScrArea *area) { SpaceLink *sl; ARegion *region; - link_list(fd, &(area->spacedata)); - link_list(fd, &(area->regionbase)); + BLO_read_list(reader, &(area->spacedata)); + BLO_read_list(reader, &(area->regionbase)); BLI_listbase_clear(&area->handlers); area->type = NULL; /* spacetype callbacks */ @@ -7420,7 +7420,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) area->flag &= ~AREA_FLAG_ACTIVE_TOOL_UPDATE; - area->global = newdataadr(fd, area->global); + BLO_read_data_address(reader, &area->global); /* if we do not have the spacetype registered we cannot * free it, so don't allocate any new memory for such spacetypes. */ @@ -7432,7 +7432,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) } for (region = area->regionbase.first; region; region = region->next) { - direct_link_region(fd, region, area->spacetype); + direct_link_region(reader, region, area->spacetype); } /* accident can happen when read/save new file with older version */ @@ -7448,7 +7448,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) } for (sl = area->spacedata.first; sl; sl = sl->next) { - link_list(fd, &(sl->regionbase)); + BLO_read_list(reader, &(sl->regionbase)); /* if we do not have the spacetype registered we cannot * free it, so don't allocate any new memory for such spacetypes. */ @@ -7457,7 +7457,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) } for (region = sl->regionbase.first; region; region = region->next) { - direct_link_region(fd, region, sl->spacetype); + direct_link_region(reader, region, sl->spacetype); } if (sl->spacetype == SPACE_VIEW3D) { @@ -7466,10 +7466,10 @@ static void direct_link_area(FileData *fd, ScrArea *area) v3d->flag |= V3D_INVALID_BACKBUF; if (v3d->gpd) { - v3d->gpd = newdataadr(fd, v3d->gpd); - direct_link_gpencil(fd, v3d->gpd); + BLO_read_data_address(reader, &v3d->gpd); + direct_link_gpencil(reader, v3d->gpd); } - v3d->localvd = newdataadr(fd, v3d->localvd); + BLO_read_data_address(reader, &v3d->localvd); /* Runtime data */ v3d->runtime.properties_storage = NULL; @@ -7481,20 +7481,20 @@ static void direct_link_area(FileData *fd, ScrArea *area) } v3d->shading.prev_type = OB_SOLID; - direct_link_view3dshading(fd, &v3d->shading); + direct_link_view3dshading(reader->fd, &v3d->shading); blo_do_versions_view3d_split_250(v3d, &sl->regionbase); } else if (sl->spacetype == SPACE_GRAPH) { SpaceGraph *sipo = (SpaceGraph *)sl; - sipo->ads = newdataadr(fd, sipo->ads); + BLO_read_data_address(reader, &sipo->ads); BLI_listbase_clear(&sipo->runtime.ghost_curves); } else if (sl->spacetype == SPACE_NLA) { SpaceNla *snla = (SpaceNla *)sl; - snla->ads = newdataadr(fd, snla->ads); + BLO_read_data_address(reader, &snla->ads); } else if (sl->spacetype == SPACE_OUTLINER) { SpaceOutliner *soops = (SpaceOutliner *)sl; @@ -7503,10 +7503,10 @@ static void direct_link_area(FileData *fd, ScrArea *area) * frees and use of freed memory. this could happen because of a * bug fixed in revision 58959 where the treestore memory address * was not unique */ - TreeStore *ts = newdataadr_no_us(fd, soops->treestore); + TreeStore *ts = newdataadr_no_us(reader->fd, soops->treestore); soops->treestore = NULL; if (ts) { - TreeStoreElem *elems = newdataadr_no_us(fd, ts->data); + TreeStoreElem *elems = newdataadr_no_us(reader->fd, ts->data); soops->treestore = BLI_mempool_create( sizeof(TreeStoreElem), ts->usedelem, 512, BLI_MEMPOOL_ALLOW_ITER); @@ -7548,11 +7548,11 @@ static void direct_link_area(FileData *fd, ScrArea *area) SpaceNode *snode = (SpaceNode *)sl; if (snode->gpd) { - snode->gpd = newdataadr(fd, snode->gpd); - direct_link_gpencil(fd, snode->gpd); + BLO_read_data_address(reader, &snode->gpd); + direct_link_gpencil(reader, snode->gpd); } - link_list(fd, &snode->treepath); + BLO_read_list(reader, &snode->treepath); snode->edittree = NULL; snode->iofsd = NULL; BLI_listbase_clear(&snode->linkdrag); @@ -7596,8 +7596,8 @@ static void direct_link_area(FileData *fd, ScrArea *area) SpaceConsole *sconsole = (SpaceConsole *)sl; ConsoleLine *cl, *cl_next; - link_list(fd, &sconsole->scrollback); - link_list(fd, &sconsole->history); + BLO_read_list(reader, &sconsole->scrollback); + BLO_read_list(reader, &sconsole->history); // for (cl= sconsole->scrollback.first; cl; cl= cl->next) // cl->line= newdataadr(fd, cl->line); @@ -7607,7 +7607,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) * expression as a whole*/ for (cl = sconsole->history.first; cl; cl = cl_next) { cl_next = cl->next; - cl->line = newdataadr(fd, cl->line); + BLO_read_data_address(reader, &cl->line); if (cl->line) { /* the allocted length is not written, so reset here */ cl->len_alloc = cl->len + 1; @@ -7629,7 +7629,7 @@ static void direct_link_area(FileData *fd, ScrArea *area) sfile->layout = NULL; sfile->op = NULL; sfile->previews_timer = NULL; - sfile->params = newdataadr(fd, sfile->params); + BLO_read_data_address(reader, &sfile->params); } else if (sl->spacetype == SPACE_CLIP) { SpaceClip *sclip = (SpaceClip *)sl; @@ -7642,10 +7642,10 @@ static void direct_link_area(FileData *fd, ScrArea *area) BLI_listbase_clear(&area->actionzones); - area->v1 = newdataadr(fd, area->v1); - area->v2 = newdataadr(fd, area->v2); - area->v3 = newdataadr(fd, area->v3); - area->v4 = newdataadr(fd, area->v4); + BLO_read_data_address(reader, &area->v1); + BLO_read_data_address(reader, &area->v2); + BLO_read_data_address(reader, &area->v3); + BLO_read_data_address(reader, &area->v4); } static void lib_link_area(FileData *fd, ID *parent_id, ScrArea *area) @@ -7826,19 +7826,19 @@ static void lib_link_area(FileData *fd, ID *parent_id, ScrArea *area) /** * \return false on error. */ -static bool direct_link_area_map(FileData *fd, ScrAreaMap *area_map) +static bool direct_link_area_map(BlendDataReader *reader, ScrAreaMap *area_map) { - link_list(fd, &area_map->vertbase); - link_list(fd, &area_map->edgebase); - link_list(fd, &area_map->areabase); + BLO_read_list(reader, &area_map->vertbase); + BLO_read_list(reader, &area_map->edgebase); + BLO_read_list(reader, &area_map->areabase); LISTBASE_FOREACH (ScrArea *, area, &area_map->areabase) { - direct_link_area(fd, area); + direct_link_area(reader, area); } /* edges */ LISTBASE_FOREACH (ScrEdge *, se, &area_map->edgebase) { - se->v1 = newdataadr(fd, se->v1); - se->v2 = newdataadr(fd, se->v2); + BLO_read_data_address(reader, &se->v1); + BLO_read_data_address(reader, &se->v2); BKE_screen_sort_scrvert(&se->v1, &se->v2); if (se->v1 == NULL) { @@ -7891,7 +7891,7 @@ static void direct_link_windowmanager(BlendDataReader *reader, wmWindowManager * * so store in global oldnew-map. */ oldnewmap_insert(reader->fd->globmap, hook, win->workspace_hook, 0); - direct_link_area_map(reader->fd, &win->global_areas); + direct_link_area_map(reader, &win->global_areas); win->ghostwin = NULL; win->gpuctx = NULL; @@ -8492,7 +8492,7 @@ void blo_do_versions_view3d_split_250(View3D *v3d, ListBase *regions) } } -static bool direct_link_screen(FileData *fd, bScreen *screen) +static bool direct_link_screen(BlendDataReader *reader, bScreen *screen) { bool success = true; @@ -8500,9 +8500,9 @@ static bool direct_link_screen(FileData *fd, bScreen *screen) screen->context = NULL; screen->active_region = NULL; - screen->preview = direct_link_preview_image(fd, screen->preview); + screen->preview = direct_link_preview_image(reader->fd, screen->preview); - if (!direct_link_area_map(fd, AREAMAP_FROM_SCREEN(screen))) { + if (!direct_link_area_map(reader, AREAMAP_FROM_SCREEN(screen))) { printf("Error reading Screen %s... removing it.\n", screen->id.name + 2); success = false; } @@ -9386,7 +9386,7 @@ static bool direct_link_id(FileData *fd, Main *main, const int tag, ID *id, ID * direct_link_windowmanager(&reader, (wmWindowManager *)id); break; case ID_SCR: - success = direct_link_screen(fd, (bScreen *)id); + success = direct_link_screen(&reader, (bScreen *)id); break; case ID_SCE: direct_link_scene(fd, (Scene *)id); @@ -9467,7 +9467,7 @@ static bool direct_link_id(FileData *fd, Main *main, const int tag, ID *id, ID * direct_link_particlesettings(fd, (ParticleSettings *)id); break; case ID_GD: - direct_link_gpencil(fd, (bGPdata *)id); + direct_link_gpencil(&reader, (bGPdata *)id); break; case ID_MC: direct_link_movieclip(fd, (MovieClip *)id); |