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>2012-09-04 17:29:07 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-09-04 17:29:07 +0400
commitadea12cb01e4c4f18f345dfbbf49e9e622192e4e (patch)
treeb43018344c696e4d59437fabc7f17f5b9d6a8e80 /intern/cycles/util/util_progress.h
parent68563134d4800be4eb46aa6b598fd719cdaf2980 (diff)
Cycles: merge of changes from tomato branch.
Regular rendering now works tiled, and supports save buffers to save memory during render and cache render results. Brick texture node by Thomas. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture Image texture Blended Box Mapping. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture http://mango.blender.org/production/blended_box/ Various bug fixes by Sergey and Campbell. * Fix for reading freed memory in some node setups. * Fix incorrect memory read when synchronizing mesh motion. * Fix crash appearing when direct light usage is different on different layers. * Fix for vector pass gives wrong result in some circumstances. * Fix for wrong resolution used for rendering Render Layer node. * Option to cancel rendering when doing initial synchronization. * No more texture limit when using CPU render. * Many fixes for new tiled rendering.
Diffstat (limited to 'intern/cycles/util/util_progress.h')
-rw-r--r--intern/cycles/util/util_progress.h45
1 files changed, 34 insertions, 11 deletions
diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h
index c63aa841c52..ab9ab7243e9 100644
--- a/intern/cycles/util/util_progress.h
+++ b/intern/cycles/util/util_progress.h
@@ -36,10 +36,11 @@ class Progress {
public:
Progress()
{
+ tile = 0;
sample = 0;
start_time = time_dt();
total_time = 0.0f;
- sample_time = 0.0f;
+ tile_time = 0.0f;
status = "Initializing";
substatus = "";
update_cb = NULL;
@@ -57,8 +58,10 @@ public:
{
thread_scoped_lock lock(progress.progress_mutex);
- progress.get_sample(sample, total_time, sample_time);
progress.get_status(status, substatus);
+ progress.get_tile(tile, total_time, tile_time);
+
+ sample = progress.get_sample();
return *this;
}
@@ -90,7 +93,7 @@ public:
cancel_cb = function;
}
- /* sample and timing information */
+ /* tile and timing information */
void set_start_time(double start_time_)
{
@@ -99,22 +102,41 @@ public:
start_time = start_time_;
}
- void set_sample(int sample_, double sample_time_)
+ void set_tile(int tile_, double tile_time_)
{
thread_scoped_lock lock(progress_mutex);
- sample = sample_;
+ tile = tile_;
total_time = time_dt() - start_time;
- sample_time = sample_time_;
+ tile_time = tile_time_;
}
- void get_sample(int& sample_, double& total_time_, double& sample_time_)
+ void get_tile(int& tile_, double& total_time_, double& tile_time_)
{
thread_scoped_lock lock(progress_mutex);
- sample_ = sample;
+ tile_ = tile;
total_time_ = (total_time > 0.0)? total_time: 0.0;
- sample_time_ = sample_time;
+ tile_time_ = tile_time;
+ }
+
+ void reset_sample()
+ {
+ thread_scoped_lock lock(progress_mutex);
+
+ sample = 0;
+ }
+
+ void increment_sample()
+ {
+ thread_scoped_lock lock(progress_mutex);
+
+ sample++;
+ }
+
+ int get_sample()
+ {
+ return sample;
}
/* status messages */
@@ -170,11 +192,12 @@ protected:
boost::function<void(void)> update_cb;
boost::function<void(void)> cancel_cb;
- int sample;
+ int tile; /* counter for rendered tiles */
+ int sample; /* counter of rendered samples, global for all tiles */
double start_time;
double total_time;
- double sample_time;
+ double tile_time;
string status;
string substatus;