[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14473] trunk/blender/source/blender: fix for [#8236] Lens Change by driver won't update in 3d View

Campbell Barton ideasman42 at gmail.com
Sat Apr 19 04:19:47 CEST 2008


Revision: 14473
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14473
Author:   campbellbarton
Date:     2008-04-19 04:19:46 +0200 (Sat, 19 Apr 2008)

Log Message:
-----------
fix for [#8236] Lens Change by driver won't update in 3d View
Lamps would not update either.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/render/intern/source/initrender.c

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2008-04-18 23:23:43 UTC (rev 14472)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2008-04-19 02:19:46 UTC (rev 14473)
@@ -46,6 +46,7 @@
 #include "DNA_effect_types.h"
 #include "DNA_group_types.h"
 #include "DNA_lattice_types.h"
+#include "DNA_lamp_types.h"
 #include "DNA_key_types.h"
 #include "DNA_mesh_types.h"
 #include "DNA_modifier_types.h"
@@ -494,11 +495,20 @@
 	}
 	if (ob->type==OB_CAMERA) {
 		Camera *cam = (Camera *)ob->data;
+		if (cam->ipo) {
+			dag_add_driver_relation(cam->ipo, dag, node, 1);
+		}
 		if (cam->dof_ob) {
 			node2 = dag_get_node(dag, cam->dof_ob);
 			dag_add_relation(dag,node2,node,DAG_RL_OB_OB, "Camera DoF");
 		}
 	}
+	if (ob->type==OB_LAMP) {
+		Lamp *la = (Lamp *)ob->data;
+		if (la->ipo) {
+			dag_add_driver_relation(la->ipo, dag, node, 1);
+		}
+	}
 	if (ob->transflag & OB_DUPLI) {
 		if((ob->transflag & OB_DUPLIGROUP) && ob->dup_group) {
 			GroupObject *go;

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2008-04-18 23:23:43 UTC (rev 14472)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2008-04-19 02:19:46 UTC (rev 14473)
@@ -2224,6 +2224,16 @@
 			else if(ob->type==OB_LATTICE) {
 				lattice_calc_modifiers(ob);
 			}
+			else if(ob->type==OB_CAMERA) {
+				Camera *cam = (Camera *)ob->data;
+				calc_ipo(cam->ipo, frame_to_float(G.scene->r.cfra));
+				execute_ipo(&cam->id, cam->ipo);
+			}
+			else if(ob->type==OB_LAMP) {
+				Lamp *la = (Lamp *)ob->data;
+				calc_ipo(la->ipo, frame_to_float(G.scene->r.cfra));
+				execute_ipo(&la->id, la->ipo);
+			}
 			else if(ob->type==OB_ARMATURE) {
 				/* this happens for reading old files and to match library armatures with poses */
 				if(ob->pose==NULL || (ob->pose->flag & POSE_RECALC))

Modified: trunk/blender/source/blender/render/intern/source/initrender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/initrender.c	2008-04-18 23:23:43 UTC (rev 14472)
+++ trunk/blender/source/blender/render/intern/source/initrender.c	2008-04-19 02:19:46 UTC (rev 14473)
@@ -459,11 +459,7 @@
 		
 		if(cam->type==CAM_ORTHO) re->r.mode |= R_ORTHO;
 		
-		/* solve this too... all time depending stuff is in convertblender.c? */
-		if(cam->ipo) {
-			calc_ipo(cam->ipo, frame_to_float(re->r.cfra));
-			execute_ipo(&cam->id, cam->ipo);
-		}
+		/* updating these values from ipo's/drivers is handeled by the depgraph */
 		lens= cam->lens;
 		shiftx=cam->shiftx;
 		shifty=cam->shifty;





More information about the Bf-blender-cvs mailing list