[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48122] trunk/blender/intern/cycles: Fix #31883: cycles vectors pass rendering crash with some render layers using
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed Jun 20 16:24:52 CEST 2012
Revision: 48122
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48122
Author: blendix
Date: 2012-06-20 14:24:52 +0000 (Wed, 20 Jun 2012)
Log Message:
-----------
Fix #31883: cycles vectors pass rendering crash with some render layers using
it and others not.
Modified Paths:
--------------
trunk/blender/intern/cycles/blender/blender_session.cpp
trunk/blender/intern/cycles/render/film.cpp
trunk/blender/intern/cycles/render/film.h
Modified: trunk/blender/intern/cycles/blender/blender_session.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_session.cpp 2012-06-20 14:20:03 UTC (rev 48121)
+++ trunk/blender/intern/cycles/blender/blender_session.cpp 2012-06-20 14:24:52 UTC (rev 48122)
@@ -218,7 +218,7 @@
}
buffer_params.passes = passes;
- scene->film->passes = passes;
+ scene->film->tag_passes_update(scene, passes);
scene->film->tag_update(scene);
scene->integrator->tag_update(scene);
Modified: trunk/blender/intern/cycles/render/film.cpp
===================================================================
--- trunk/blender/intern/cycles/render/film.cpp 2012-06-20 14:20:03 UTC (rev 48121)
+++ trunk/blender/intern/cycles/render/film.cpp 2012-06-20 14:24:52 UTC (rev 48122)
@@ -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 @@
&& 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;
Modified: trunk/blender/intern/cycles/render/film.h
===================================================================
--- trunk/blender/intern/cycles/render/film.h 2012-06-20 14:20:03 UTC (rev 48121)
+++ trunk/blender/intern/cycles/render/film.h 2012-06-20 14:24:52 UTC (rev 48122)
@@ -56,6 +56,7 @@
void device_free(Device *device, DeviceScene *dscene);
bool modified(const Film& film);
+ void tag_passes_update(Scene *scene, const vector<Pass>& passes_);
void tag_update(Scene *scene);
};
More information about the Bf-blender-cvs
mailing list