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:
authorLukas Tönne <lukas.toenne@gmail.com>2014-02-26 17:56:27 +0400
committerLukas Tönne <lukas.toenne@gmail.com>2014-02-26 17:56:27 +0400
commit4cfca0adfeeadccf0013aaeb8b34315b2d2a8e33 (patch)
treeebdcdf3247b8d5280f3a376ae92113962a1e1971 /source/blender/render
parentecbae4ab466e9d50b11fd434caf29ea1781fa7d6 (diff)
Nicer solution to T38846: Split off the render layer forcing from the
validity check for render operator. This way scene DNA can stay read-only there, cleaner and we don't have to pass an awkward bool pointer around.
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h3
-rw-r--r--source/blender/render/intern/source/pipeline.c28
2 files changed, 18 insertions, 13 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index ae0b6f1e2a8..8cb49f68243 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -285,7 +285,8 @@ void RE_DataBase_GetView(struct Render *re, float mat[4][4]);
void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[4][4]);
struct Scene *RE_GetScene(struct Render *re);
-bool RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports, bool *r_scene_rlayer_update);
+bool RE_force_single_renderlayer(struct Scene *scene);
+bool RE_is_rendering_allowed(struct Scene *scene, struct Object *camera_override, struct ReportList *reports);
bool RE_allow_render_generic_object(struct Object *ob);
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index b6f19d6c25c..adb8100517d 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2314,6 +2314,20 @@ static void do_render_all_options(Render *re)
}
}
+bool RE_force_single_renderlayer(Scene *scene)
+{
+ int scemode = check_mode_full_sample(&scene->r);
+ if (scemode & R_SINGLE_LAYER) {
+ SceneRenderLayer *srl = BLI_findlink(&scene->r.layers, scene->r.actlay);
+ /* force layer to be enabled */
+ if (srl->layflag & SCE_LAY_DISABLE) {
+ srl->layflag &= ~SCE_LAY_DISABLE;
+ return true;
+ }
+ }
+ return false;
+}
+
static bool check_valid_compositing_camera(Scene *scene, Object *camera_override)
{
if (scene->r.scemode & R_DOCOMP && scene->use_nodes) {
@@ -2400,12 +2414,10 @@ static int check_composite_output(Scene *scene)
return node_tree_has_composite_output(scene->nodetree);
}
-bool RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *reports, bool *r_scene_rlayer_update)
+bool RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *reports)
{
SceneRenderLayer *srl;
int scemode = check_mode_full_sample(&scene->r);
- if (r_scene_rlayer_update)
- *r_scene_rlayer_update = false; /* becomes true if render layer is forced enabled */
if (scene->r.mode & R_BORDER) {
if (scene->r.border.xmax <= scene->r.border.xmin ||
@@ -2477,16 +2489,8 @@ bool RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *
}
#endif
}
-
- /* layer flag tests */
- if (scemode & R_SINGLE_LAYER) {
- srl = BLI_findlink(&scene->r.layers, scene->r.actlay);
- /* force layer to be enabled */
- srl->layflag &= ~SCE_LAY_DISABLE;
- if (r_scene_rlayer_update)
- *r_scene_rlayer_update = true;
- }
+ /* layer flag tests */
for (srl = scene->r.layers.first; srl; srl = srl->next)
if (!(srl->layflag & SCE_LAY_DISABLE))
break;