diff options
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 168fa9ad120..13e9b7fb0c4 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -70,6 +70,7 @@ #include "BKE_fcurve.h" #include "BKE_freestyle.h" #include "BKE_global.h" +#include "BKE_gpencil.h" #include "BKE_group.h" #include "BKE_idprop.h" #include "BKE_image.h" @@ -308,6 +309,19 @@ Scene *BKE_scene_copy(Scene *sce, int type) BKE_sequence_base_dupli_recursive(sce, scen, &scen->ed->seqbase, &sce->ed->seqbase, SEQ_DUPE_ALL); } } + + /* grease pencil */ + if (scen->gpd) { + if (type == SCE_COPY_FULL) { + scen->gpd = gpencil_data_duplicate(scen->gpd, false); + } + else if (type == SCE_COPY_EMPTY) { + scen->gpd = NULL; + } + else { + id_us_plus((ID *)scen->gpd); + } + } return scen; } @@ -1102,7 +1116,7 @@ bool BKE_scene_validate_setscene(Main *bmain, Scene *sce) Scene *sce_iter; int a, totscene; - if (sce->set == NULL) return 1; + if (sce->set == NULL) return true; totscene = BLI_listbase_count(&bmain->scene); for (a = 0, sce_iter = sce; sce_iter->set; sce_iter = sce_iter->set, a++) { @@ -1110,11 +1124,11 @@ bool BKE_scene_validate_setscene(Main *bmain, Scene *sce) if (a > totscene) { /* the tested scene gets zero'ed, that's typically current scene */ sce->set = NULL; - return 0; + return false; } } - return 1; + return true; } /* This function is needed to cope with fractional frames - including two Blender rendering features @@ -1838,13 +1852,13 @@ bool BKE_scene_remove_render_layer(Main *bmain, Scene *scene, SceneRenderLayer * Scene *sce; if (act == -1) { - return 0; + return false; } else if ( (scene->r.layers.first == scene->r.layers.last) && (scene->r.layers.first == srl)) { /* ensure 1 layer is kept */ - return 0; + return false; } BLI_remlink(&scene->r.layers, srl); @@ -1866,7 +1880,7 @@ bool BKE_scene_remove_render_layer(Main *bmain, Scene *scene, SceneRenderLayer * } } - return 1; + return true; } /* render simplification */ |