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>2011-12-20 16:25:37 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-12-20 16:25:37 +0400
commit72d2d05770a721986986c137a5cbc36cb796062f (patch)
treec713c496567433e0b7362c2569f113ed5cb042a7 /intern/cycles/blender/blender_session.cpp
parent81c635a3bb194931384d9533e02bff7fc09307b0 (diff)
Cycles: border rendering support, includes some refactoring in how pixels are
accessed on devices.
Diffstat (limited to 'intern/cycles/blender/blender_session.cpp')
-rw-r--r--intern/cycles/blender/blender_session.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 4433b1e24f9..1803dd36beb 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -100,7 +100,9 @@ void BlenderSession::create_session()
session->set_pause(BlenderSync::get_session_pause(b_scene, background));
/* start rendering */
- session->reset(width, height, session_params.samples);
+ BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+ session->reset(buffer_params, session_params.samples);
session->start();
}
@@ -135,7 +137,10 @@ void BlenderSession::write_render_result()
if(!pixels)
return;
- struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, width, height);
+ BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+ int w = buffer_params.width, h = buffer_params.height;
+
+ struct RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, w, h);
PointerRNA rrptr;
RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr);
BL::RenderResult rr(rrptr);
@@ -188,8 +193,10 @@ void BlenderSession::synchronize()
session->scene->mutex.unlock();
/* reset if needed */
- if(scene->need_reset())
- session->reset(width, height, session_params.samples);
+ if(scene->need_reset()) {
+ BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+ session->reset(buffer_params, session_params.samples);
+ }
}
bool BlenderSession::draw(int w, int h)
@@ -225,7 +232,9 @@ bool BlenderSession::draw(int w, int h)
/* reset if requested */
if(reset) {
SessionParams session_params = BlenderSync::get_session_params(b_scene, background);
- session->reset(width, height, session_params.samples);
+ BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+ session->reset(buffer_params, session_params.samples);
}
}
@@ -233,7 +242,9 @@ bool BlenderSession::draw(int w, int h)
update_status_progress();
/* draw */
- return !session->draw(width, height);
+ BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, b_rv3d, width, height);
+
+ return !session->draw(buffer_params);
}
void BlenderSession::get_status(string& status, string& substatus)