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:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-11-18 11:11:54 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-11-18 11:11:54 +0400
commit9f0a6dca13c0debd27d7bd2a023e7d370c1374cd (patch)
tree03cf1198784a18b47d8ae2d64132a2c50e30645b /source/blender/editors
parentc63873ad220c2513072c80f03f7b647aafab3196 (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.c29
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);