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-11-06 18:42:37 +0300
committerJacques Lucke <jacques@blender.org>2020-11-06 18:42:50 +0300
commitaf245326125aed919bc7560d20f6152e55d1478f (patch)
treecc0c41d9af71f6f58d7e27d4036c6ee1fcf3dced /source/blender/blenloader/intern/readfile.c
parent580ff2cb937daf43699908afe1190baea8d117aa (diff)
Refactor: move ShaderFx .blend I/O to blenkernel
Ref T76372.
Diffstat (limited to 'source/blender/blenloader/intern/readfile.c')
-rw-r--r--source/blender/blenloader/intern/readfile.c44
1 files changed, 4 insertions, 40 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 3e394c3d1f5..f33e6f569df 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2746,19 +2746,9 @@ void blo_do_versions_key_uidgen(Key *key)
/** \name Read ID: Object
* \{ */
-static void lib_link_modifiers_common(void *userData, Object *ob, ID **idpoin, int cb_flag)
-{
- BlendLibReader *reader = userData;
-
- BLO_read_id_address(reader, ob->id.lib, idpoin);
- if (*idpoin != NULL && (cb_flag & IDWALK_CB_USER) != 0) {
- id_us_plus_no_lib(*idpoin);
- }
-}
-
static void lib_link_modifiers(BlendLibReader *reader, Object *ob)
{
- BKE_modifiers_foreach_ID_link(ob, lib_link_modifiers_common, reader);
+ BKE_modifiers_foreach_ID_link(ob, BKE_object_modifiers_lib_link_common, reader);
/* If linking from a library, clear 'local' library override flag. */
if (ob->id.lib != NULL) {
@@ -2770,7 +2760,7 @@ static void lib_link_modifiers(BlendLibReader *reader, Object *ob)
static void lib_link_gpencil_modifiers(BlendLibReader *reader, Object *ob)
{
- BKE_gpencil_modifiers_foreach_ID_link(ob, lib_link_modifiers_common, reader);
+ BKE_gpencil_modifiers_foreach_ID_link(ob, BKE_object_modifiers_lib_link_common, reader);
/* If linking from a library, clear 'local' library override flag. */
if (ob->id.lib != NULL) {
@@ -2780,18 +2770,6 @@ static void lib_link_gpencil_modifiers(BlendLibReader *reader, Object *ob)
}
}
-static void lib_link_shaderfxs(BlendLibReader *reader, Object *ob)
-{
- BKE_shaderfx_foreach_ID_link(ob, lib_link_modifiers_common, reader);
-
- /* If linking from a library, clear 'local' library override flag. */
- if (ob->id.lib != NULL) {
- LISTBASE_FOREACH (ShaderFxData *, fx, &ob->shader_fx) {
- fx->flag &= ~eShaderFxFlag_OverrideLibrary_Local;
- }
- }
-}
-
static void lib_link_object(BlendLibReader *reader, Object *ob)
{
bool warn = false;
@@ -2947,7 +2925,7 @@ static void lib_link_object(BlendLibReader *reader, Object *ob)
BKE_particle_system_blend_read_lib(reader, ob, &ob->id, &ob->particlesystem);
lib_link_modifiers(reader, ob);
lib_link_gpencil_modifiers(reader, ob);
- lib_link_shaderfxs(reader, ob);
+ BKE_shaderfx_blend_read_lib(reader, ob);
if (ob->rigidbody_constraint) {
BLO_read_id_address(reader, ob->id.lib, &ob->rigidbody_constraint->ob1);
@@ -3406,20 +3384,6 @@ static void direct_link_gpencil_modifiers(BlendDataReader *reader, ListBase *lb)
}
}
-static void direct_link_shaderfxs(BlendDataReader *reader, ListBase *lb)
-{
- BLO_read_list(reader, lb);
-
- LISTBASE_FOREACH (ShaderFxData *, fx, lb) {
- fx->error = NULL;
-
- /* if shader disappear, or for upward compatibility */
- if (NULL == BKE_shaderfx_get_info(fx->type)) {
- fx->type = eShaderFxType_None;
- }
- }
-}
-
static void direct_link_object(BlendDataReader *reader, Object *ob)
{
PartEff *paf;
@@ -3465,7 +3429,7 @@ static void direct_link_object(BlendDataReader *reader, Object *ob)
/* do it here, below old data gets converted */
direct_link_modifiers(reader, &ob->modifiers, ob);
direct_link_gpencil_modifiers(reader, &ob->greasepencil_modifiers);
- direct_link_shaderfxs(reader, &ob->shader_fx);
+ BKE_shaderfx_blend_read_data(reader, &ob->shader_fx);
BLO_read_list(reader, &ob->effect);
paf = ob->effect.first;