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:
authorTon Roosendaal <ton@blender.org>2006-12-07 17:17:38 +0300
committerTon Roosendaal <ton@blender.org>2006-12-07 17:17:38 +0300
commit17231f83f37be4890c4067caa72d4957207975b0 (patch)
tree298c6ca2cbb01b6c546162b070498c6b7f123450 /source/blender/blenloader
parent80d1d88ef6dbcae8bfba2bbc7429310bac127652 (diff)
Work on RenderLayer and Pass control:
Full log: http://www.blender3d.org/cms/Render_Passes.829.0.html In short: - Passes now have option to be excluded from "Combined". - RenderLayers allow to override Light (Lamp groups) or Material. - RenderLayers and Passes are in Outliner now, (ab)using Matt's nice 'restriction collumns'. :)
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readfile.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 6d41ffcdcd3..27394e3d0ea 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2993,6 +2993,7 @@ static void lib_link_scene(FileData *fd, Main *main)
Base *base, *next;
Editing *ed;
Sequence *seq;
+ SceneRenderLayer *srl;
int a;
sce= main->scene.first;
@@ -3016,8 +3017,7 @@ static void lib_link_scene(FileData *fd, Main *main)
mtex->tex= newlibadr_us(fd, sce->id.lib, mtex->tex);
}
- base= sce->base.first;
- while(base) {
+ for(base= sce->base.first; base; base= next) {
next= base->next;
/* base->object= newlibadr_us(fd, sce->id.lib, base->object); */
@@ -3032,7 +3032,6 @@ static void lib_link_scene(FileData *fd, Main *main)
if(base==sce->basact) sce->basact= 0;
MEM_freeN(base);
}
- base= next;
}
ed= sce->ed;
@@ -3057,7 +3056,12 @@ static void lib_link_scene(FileData *fd, Main *main)
if(sce->nodetree)
lib_link_ntree(fd, &sce->id, sce->nodetree);
-
+
+ for(srl= sce->r.layers.first; srl; srl= srl->next) {
+ srl->mat_override= newlibadr_us(fd, sce->id.lib, srl->mat_override);
+ srl->light_override= newlibadr_us(fd, sce->id.lib, srl->light_override);
+ }
+
sce->id.flag -= LIB_NEEDLINK;
}
@@ -6830,17 +6834,22 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
{
Base *base;
+ SceneRenderLayer *srl;
- base= sce->base.first;
- while(base) {
+ for(base= sce->base.first; base; base= base->next) {
expand_doit(fd, mainvar, base->object);
- base= base->next;
}
expand_doit(fd, mainvar, sce->camera);
expand_doit(fd, mainvar, sce->world);
if(sce->nodetree)
expand_nodetree(fd, mainvar, sce->nodetree);
+
+ for(srl= sce->r.layers.first; srl; srl= srl->next) {
+ expand_doit(fd, mainvar, srl->mat_override);
+ expand_doit(fd, mainvar, srl->light_override);
+ }
+
}
static void expand_camera(FileData *fd, Main *mainvar, Camera *ca)