diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-11-18 11:11:54 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-11-18 11:11:54 +0400 |
commit | 9f0a6dca13c0debd27d7bd2a023e7d370c1374cd (patch) | |
tree | 03cf1198784a18b47d8ae2d64132a2c50e30645b /source/blender/editors | |
parent | c63873ad220c2513072c80f03f7b647aafab3196 (diff) |
Added methods new and remove to scene.render.layers, so now render layers
can be created and removed from scripts.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/render/render_shading.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 80c54d970b4..e2e48a489b6 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -519,7 +519,7 @@ static int render_layer_add_exec(bContext *C, wmOperator *UNUSED(op)) { Scene *scene= CTX_data_scene(C); - scene_add_render_layer(scene); + scene_add_render_layer(scene, NULL); scene->r.actlay= BLI_countlist(&scene->r.layers) - 1; WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); @@ -543,32 +543,11 @@ void SCENE_OT_render_layer_add(wmOperatorType *ot) static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - Scene *scene = CTX_data_scene(C), *sce; - SceneRenderLayer *rl; - int act= scene->r.actlay; + Scene *scene = CTX_data_scene(C); + SceneRenderLayer *rl = BLI_findlink(&scene->r.layers, scene->r.actlay); - if(BLI_countlist(&scene->r.layers) <= 1) + if(!scene_remove_render_layer(CTX_data_main(C), scene, rl)) return OPERATOR_CANCELLED; - - rl= BLI_findlink(&scene->r.layers, scene->r.actlay); - BLI_remlink(&scene->r.layers, rl); - MEM_freeN(rl); - - scene->r.actlay= 0; - - for(sce = CTX_data_main(C)->scene.first; sce; sce = sce->id.next) { - if(sce->nodetree) { - bNode *node; - for(node = sce->nodetree->nodes.first; node; node = node->next) { - if(node->type==CMP_NODE_R_LAYERS && (Scene*)node->id==scene) { - if(node->custom1==act) - node->custom1= 0; - else if(node->custom1>act) - node->custom1--; - } - } - } - } WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene); |