diff options
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 4a4f6127851..d7eaaf3277b 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -325,7 +325,13 @@ static World *preview_get_localized_world(ShaderPreview *sp, World *world) if (sp->worldcopy != NULL) { return sp->worldcopy; } - sp->worldcopy = BKE_world_localize(world); + + ID *id_copy; + BKE_id_copy_ex(NULL, + &world->id, + &id_copy, + LIB_ID_CREATE_LOCAL | LIB_ID_COPY_LOCALIZE | LIB_ID_COPY_NO_ANIMDATA); + sp->worldcopy = (World *)id_copy; BLI_addtail(&sp->pr_main->worlds, sp->worldcopy); return sp->worldcopy; } @@ -339,13 +345,16 @@ static ID *duplicate_ids(ID *id) switch (GS(id->name)) { case ID_MA: - return (ID *)BKE_material_localize((Material *)id); case ID_TE: - return (ID *)BKE_texture_localize((Tex *)id); case ID_LA: - return (ID *)BKE_light_localize((Light *)id); - case ID_WO: - return (ID *)BKE_world_localize((World *)id); + case ID_WO: { + ID *id_copy; + BKE_id_copy_ex(NULL, + id, + &id_copy, + LIB_ID_CREATE_LOCAL | LIB_ID_COPY_LOCALIZE | LIB_ID_COPY_NO_ANIMDATA); + return id_copy; + } case ID_IM: case ID_BR: case ID_SCR: |