[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45611] trunk/blender: Fix #30376: cycles ignores camera override from sequencer.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Apr 13 19:42:03 CEST 2012


Revision: 45611
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45611
Author:   blendix
Date:     2012-04-13 17:42:03 +0000 (Fri, 13 Apr 2012)
Log Message:
-----------
Fix #30376: cycles ignores camera override from sequencer.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_camera.cpp
    trunk/blender/intern/cycles/blender/blender_session.cpp
    trunk/blender/intern/cycles/blender/blender_sync.h
    trunk/blender/source/blender/makesrna/intern/rna_render.c
    trunk/blender/source/blender/render/extern/include/RE_engine.h
    trunk/blender/source/blender/render/intern/source/external_engine.c

Modified: trunk/blender/intern/cycles/blender/blender_camera.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-04-13 17:42:03 UTC (rev 45611)
@@ -250,7 +250,7 @@
 
 /* Sync Render Camera */
 
-void BlenderSync::sync_camera(int width, int height)
+void BlenderSync::sync_camera(BL::Object b_override, int width, int height)
 {
 	BlenderCamera bcam;
 	blender_camera_init(&bcam);
@@ -264,6 +264,9 @@
 	/* camera object */
 	BL::Object b_ob = b_scene.camera();
 
+	if(b_override)
+		b_ob = b_override;
+
 	if(b_ob) {
 		blender_camera_from_object(&bcam, b_ob);
 		bcam.matrix = get_transform(b_ob.matrix_world());

Modified: trunk/blender/intern/cycles/blender/blender_session.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_session.cpp	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/intern/cycles/blender/blender_session.cpp	2012-04-13 17:42:03 UTC (rev 45611)
@@ -96,7 +96,7 @@
 	if(b_rv3d)
 		sync->sync_view(b_v3d, b_rv3d, width, height);
 	else
-		sync->sync_camera(width, height);
+		sync->sync_camera(b_engine.camera_override(), width, height);
 
 	/* create session */
 	session = new Session(session_params);
@@ -314,7 +314,7 @@
 	if(b_rv3d)
 		sync->sync_view(b_v3d, b_rv3d, width, height);
 	else
-		sync->sync_camera(width, height);
+		sync->sync_camera(b_engine.camera_override(), width, height);
 
 	/* unlock */
 	session->scene->mutex.unlock();

Modified: trunk/blender/intern/cycles/blender/blender_sync.h
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.h	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/intern/cycles/blender/blender_sync.h	2012-04-13 17:42:03 UTC (rev 45611)
@@ -55,7 +55,7 @@
 	/* sync */
 	bool sync_recalc();
 	void sync_data(BL::SpaceView3D b_v3d, const char *layer = 0);
-	void sync_camera(int width, int height);
+	void sync_camera(BL::Object b_override, int width, int height);
 	void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height);
 
 	/* get parameters */

Modified: trunk/blender/source/blender/makesrna/intern/rna_render.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_render.c	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/source/blender/makesrna/intern/rna_render.c	2012-04-13 17:42:03 UTC (rev 45611)
@@ -356,6 +356,10 @@
 	prop = RNA_def_property(srna, "is_preview", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", RE_ENGINE_PREVIEW);
 
+	prop= RNA_def_property(srna, "camera_override", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "camera_override");
+	RNA_def_property_struct_type(prop, "Object");
+
 	/* registration */
 
 	prop = RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE);

Modified: trunk/blender/source/blender/render/extern/include/RE_engine.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_engine.h	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/source/blender/render/extern/include/RE_engine.h	2012-04-13 17:42:03 UTC (rev 45611)
@@ -84,6 +84,7 @@
 	void *py_instance;
 
 	int flag;
+	struct Object *camera_override;
 
 	struct Render *re;
 	ListBase fullresult;

Modified: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c	2012-04-13 17:14:34 UTC (rev 45610)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c	2012-04-13 17:42:03 UTC (rev 45611)
@@ -311,6 +311,7 @@
 		engine->flag |= RE_ENGINE_ANIMATION;
 	if (re->r.scemode & R_PREVIEWBUTS)
 		engine->flag |= RE_ENGINE_PREVIEW;
+	engine->camera_override = re->camera_override;
 
 	if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_PREVIEWBUTS))==0)
 		scene_update_for_newframe(re->main, re->scene, re->lay);




More information about the Bf-blender-cvs mailing list