diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-20 18:24:52 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-20 18:24:52 +0400 |
commit | e3e75b393600954796127f229d3b3c35dddc9d7c (patch) | |
tree | 3e24c7aa2e8075f9679bcee3e7ff05071bf72809 /intern/cycles/render/film.cpp | |
parent | aa30e2027222c2fd0f3d616cf1689bb4f3d98495 (diff) |
Fix #31883: cycles vectors pass rendering crash with some render layers using
it and others not.
Diffstat (limited to 'intern/cycles/render/film.cpp')
-rw-r--r-- | intern/cycles/render/film.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp index 035821fadde..fdf25ca7908 100644 --- a/intern/cycles/render/film.cpp +++ b/intern/cycles/render/film.cpp @@ -20,6 +20,7 @@ #include "device.h" #include "film.h" #include "integrator.h" +#include "mesh.h" #include "scene.h" #include "util_algorithm.h" @@ -296,6 +297,16 @@ bool Film::modified(const Film& film) && Pass::equals(passes, film.passes)); } +void Film::tag_passes_update(Scene *scene, const vector<Pass>& passes_) +{ + if(Pass::contains(passes, PASS_UV) != Pass::contains(passes_, PASS_UV)) + scene->mesh_manager->tag_update(scene); + else if(Pass::contains(passes, PASS_MOTION) != Pass::contains(passes_, PASS_MOTION)) + scene->mesh_manager->tag_update(scene); + + passes = passes_; +} + void Film::tag_update(Scene *scene) { need_update = true; |