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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-05 19:47:52 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-05 19:47:52 +0400
commit03bd670f8286c841a8696badb492256ca6fcadd8 (patch)
tree3e29e2fbbb71f6732da43311c7fc40573f71c358 /source/blender/blenkernel/intern/scene.c
parent5805a8d36d77404b868fe9f806261c3d0b5aed42 (diff)
Fix #36649 and #36650: animation of freestyle line thickness and linestyle did
not render correct in animations, due to missing updates.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r--source/blender/blenkernel/intern/scene.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 1874523dac9..5829ff4995e 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -44,6 +44,7 @@
#include "DNA_anim_types.h"
#include "DNA_group_types.h"
+#include "DNA_linestyle_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_rigidbody_types.h"
@@ -1064,6 +1065,7 @@ void BKE_scene_frame_set(struct Scene *scene, double cfra)
*/
static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene)
{
+ SceneRenderLayer *srl;
float ctime = BKE_scene_frame_get(scene);
/* scene itself */
@@ -1098,6 +1100,22 @@ static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene)
if (adt && adt->drivers.first)
BKE_animsys_evaluate_animdata(scene, nid, adt, ctime, ADT_RECALC_DRIVERS);
}
+
+ /* freestyle */
+ for (srl = scene->r.layers.first; srl; srl = srl->next) {
+ FreestyleConfig *config = &srl->freestyleConfig;
+ FreestyleLineSet *lineset;
+
+ for (lineset = config->linesets.first; lineset; lineset = lineset->next) {
+ if (lineset->linestyle) {
+ ID *lid = &lineset->linestyle->id;
+ AnimData *adt = BKE_animdata_from_id(lid);
+
+ if (adt && adt->drivers.first)
+ BKE_animsys_evaluate_animdata(scene, lid, adt, ctime, ADT_RECALC_DRIVERS);
+ }
+ }
+ }
}
/* deps hack - do extra recalcs at end */