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:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-01-30 16:18:29 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-01-30 17:08:57 +0300
commit74c7707e8c763a60c2936e95c2f0ad13dfd33f43 (patch)
tree08dddce249a8821e54728355f32fea976d324ac1 /intern/cycles/blender/blender_sync.cpp
parent0e4e1993e619caad3dfbecc20ab9fb20cdf6cd06 (diff)
Cycles: Pass Blender's C++ RNA structures by reference
This way we avoid passing structures which could be up to few hundred bytes by value to the utility functions. Ideally we'll also have to add `const` qualifier in majority of the calls, but C++ RNA does not allow us to do that because it does not know if some function modifies contents or not.
Diffstat (limited to 'intern/cycles/blender/blender_sync.cpp')
-rw-r--r--intern/cycles/blender/blender_sync.cpp51
1 files changed, 30 insertions, 21 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 78882156ed1..65d1a6d09ba 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -42,22 +42,29 @@ CCL_NAMESPACE_BEGIN
/* Constructor */
-BlenderSync::BlenderSync(BL::RenderEngine b_engine_, BL::BlendData b_data_, BL::Scene b_scene_, Scene *scene_, bool preview_, Progress &progress_, bool is_cpu_)
-: b_engine(b_engine_),
- b_data(b_data_), b_scene(b_scene_),
- shader_map(&scene_->shaders),
- object_map(&scene_->objects),
- mesh_map(&scene_->meshes),
- light_map(&scene_->lights),
- particle_system_map(&scene_->particle_systems),
+BlenderSync::BlenderSync(BL::RenderEngine& b_engine,
+ BL::BlendData& b_data,
+ BL::Scene& b_scene,
+ Scene *scene,
+ bool preview,
+ Progress &progress,
+ bool is_cpu)
+: b_engine(b_engine),
+ b_data(b_data),
+ b_scene(b_scene),
+ shader_map(&scene->shaders),
+ object_map(&scene->objects),
+ mesh_map(&scene->meshes),
+ light_map(&scene->lights),
+ particle_system_map(&scene->particle_systems),
world_map(NULL),
world_recalc(false),
+ scene(scene),
+ preview(preview),
experimental(false),
- progress(progress_)
+ is_cpu(is_cpu),
+ progress(progress)
{
- scene = scene_;
- preview = preview_;
- is_cpu = is_cpu_;
}
BlenderSync::~BlenderSync()
@@ -145,9 +152,9 @@ bool BlenderSync::sync_recalc()
return recalc;
}
-void BlenderSync::sync_data(BL::RenderSettings b_render,
- BL::SpaceView3D b_v3d,
- BL::Object b_override,
+void BlenderSync::sync_data(BL::RenderSettings& b_render,
+ BL::SpaceView3D& b_v3d,
+ BL::Object& b_override,
int width, int height,
void **python_thread_state,
const char *layer)
@@ -308,7 +315,7 @@ void BlenderSync::sync_film()
/* Render Layer */
-void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer)
+void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
{
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
string layername;
@@ -416,7 +423,9 @@ void BlenderSync::sync_images()
/* Scene Parameters */
-SceneParams BlenderSync::get_scene_params(BL::Scene b_scene, bool background, bool is_cpu)
+SceneParams BlenderSync::get_scene_params(BL::Scene& b_scene,
+ bool background,
+ bool is_cpu)
{
BL::RenderSettings r = b_scene.render();
SceneParams params;
@@ -455,15 +464,15 @@ SceneParams BlenderSync::get_scene_params(BL::Scene b_scene, bool background, bo
/* Session Parameters */
-bool BlenderSync::get_session_pause(BL::Scene b_scene, bool background)
+bool BlenderSync::get_session_pause(BL::Scene& b_scene, bool background)
{
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
return (background)? false: get_boolean(cscene, "preview_pause");
}
-SessionParams BlenderSync::get_session_params(BL::RenderEngine b_engine,
- BL::UserPreferences b_userpref,
- BL::Scene b_scene,
+SessionParams BlenderSync::get_session_params(BL::RenderEngine& b_engine,
+ BL::UserPreferences& b_userpref,
+ BL::Scene& b_scene,
bool background)
{
SessionParams params;