diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-09 16:54:13 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-10 15:49:49 +0400 |
commit | f93bc7693a530632455d3ec7acc4bce54a1f85bc (patch) | |
tree | d0e067438cbc547875b3cb77e53904c5ea2a537d /intern/cycles/render | |
parent | 19e627cab34a04a3d01b2e3a868b7bf91d56e8f9 (diff) |
Backport revisions for the 2.70a releasev2.70a
d2660a0, 6e99fb0, 58c22d8, 83f2012 + ff21f6a, a7ed1db. cc6b106
7997e38, 9d4b54b, efb48fc, 3fc293c, 29f359c, 77c1d17, 92a539e,
c626462, f48828b, 6452d9f, 765d077, 74518b2, af16d46, 8da4936,
6babbf5, f0106d2, f88776b, ee72cba, 467596d, e21a7b3, eed3974,
71a2ff1, ccf9afd, 44d6c68, 30fdfc3, b69809c, b0a8e4c, bd57ec6,
3b0832d, 2a25676, 3977b76, fb25a86, 9bbb30b, 51abc2b, 0ebade5,
2c0e32f, 3deaf7d, ea01b24, c61eb64, f3db038, a6fb670, eedde31,
b66a954, 7ff123c, f5b79df, 7148c97, 54a8753, fcaa018, 4c73001,
7a21330, 07578be, e9a64e2, fd3de8b, ae792e9, b7712a7 + 3600622,
d9557d0, 6d973b8, 688257d, 4acb57a, 95ac6bc,
Also backported openmp changes to sculpt making it so number
of real CPU cores is used as a number of threads here.
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/buffers.cpp | 4 | ||||
-rw-r--r-- | intern/cycles/render/buffers.h | 3 | ||||
-rw-r--r-- | intern/cycles/render/session.cpp | 14 | ||||
-rw-r--r-- | intern/cycles/render/session.h | 6 |
4 files changed, 14 insertions, 13 deletions
diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp index da1b7484b77..fc65922fc87 100644 --- a/intern/cycles/render/buffers.cpp +++ b/intern/cycles/render/buffers.cpp @@ -358,14 +358,14 @@ void DisplayBuffer::draw_set(int width, int height) draw_height = height; } -void DisplayBuffer::draw(Device *device) +void DisplayBuffer::draw(Device *device, const DeviceDrawParams& draw_params) { if(draw_width != 0 && draw_height != 0) { glPushMatrix(); glTranslatef(params.full_x, params.full_y, 0.0f); device_memory& rgba = rgba_data(); - device->draw_pixels(rgba, 0, draw_width, draw_height, 0, params.width, params.height, transparent); + device->draw_pixels(rgba, 0, draw_width, draw_height, 0, params.width, params.height, transparent, draw_params); glPopMatrix(); } diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h index 81eaf41077f..27ab20bbafd 100644 --- a/intern/cycles/render/buffers.h +++ b/intern/cycles/render/buffers.h @@ -31,6 +31,7 @@ CCL_NAMESPACE_BEGIN class Device; +struct DeviceDrawParams; struct float4; /* Buffer Parameters @@ -114,7 +115,7 @@ public: void write(Device *device, const string& filename); void draw_set(int width, int height); - void draw(Device *device); + void draw(Device *device, const DeviceDrawParams& draw_params); bool draw_ready(); device_memory& rgba_data(); diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 0805a685467..2b799972a97 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -151,7 +151,7 @@ void Session::reset_gpu(BufferParams& buffer_params, int samples) pause_cond.notify_all(); } -bool Session::draw_gpu(BufferParams& buffer_params) +bool Session::draw_gpu(BufferParams& buffer_params, DeviceDrawParams& draw_params) { /* block for buffer access */ thread_scoped_lock display_lock(display_mutex); @@ -170,7 +170,7 @@ bool Session::draw_gpu(BufferParams& buffer_params) gpu_need_tonemap_cond.notify_all(); } - display->draw(device); + display->draw(device, draw_params); if(display_outdated && (time_dt() - reset_time) > params.text_timeout) return false; @@ -315,7 +315,7 @@ void Session::reset_cpu(BufferParams& buffer_params, int samples) pause_cond.notify_all(); } -bool Session::draw_cpu(BufferParams& buffer_params) +bool Session::draw_cpu(BufferParams& buffer_params, DeviceDrawParams& draw_params) { thread_scoped_lock display_lock(display_mutex); @@ -324,7 +324,7 @@ bool Session::draw_cpu(BufferParams& buffer_params) /* then verify the buffers have the expected size, so we don't * draw previous results in a resized window */ if(!buffer_params.modified(display->params)) { - display->draw(device); + display->draw(device, draw_params); if(display_outdated && (time_dt() - reset_time) > params.text_timeout) return false; @@ -624,12 +624,12 @@ void Session::run() progress.set_update(); } -bool Session::draw(BufferParams& buffer_params) +bool Session::draw(BufferParams& buffer_params, DeviceDrawParams &draw_params) { if(device_use_gl) - return draw_gpu(buffer_params); + return draw_gpu(buffer_params, draw_params); else - return draw_cpu(buffer_params); + return draw_cpu(buffer_params, draw_params); } void Session::reset_(BufferParams& buffer_params, int samples) diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h index 1227edf81b6..e2a7076f250 100644 --- a/intern/cycles/render/session.h +++ b/intern/cycles/render/session.h @@ -128,7 +128,7 @@ public: ~Session(); void start(); - bool draw(BufferParams& params); + bool draw(BufferParams& params, DeviceDrawParams& draw_params); void wait(); bool ready_to_reset(); @@ -155,11 +155,11 @@ protected: void reset_(BufferParams& params, int samples); void run_cpu(); - bool draw_cpu(BufferParams& params); + bool draw_cpu(BufferParams& params, DeviceDrawParams& draw_params); void reset_cpu(BufferParams& params, int samples); void run_gpu(); - bool draw_gpu(BufferParams& params); + bool draw_gpu(BufferParams& params, DeviceDrawParams& draw_params); void reset_gpu(BufferParams& params, int samples); bool acquire_tile(Device *tile_device, RenderTile& tile); |