[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