diff options
author | Thomas Dinges <blender@dingto.org> | 2013-01-07 23:55:49 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2013-01-07 23:55:49 +0400 |
commit | 41c588256ba88703d172254ff1d7155f5d2c6b02 (patch) | |
tree | b316404eb6453b3e45692a8a1e7147523acb5c31 /intern/cycles/render/tile.h | |
parent | 999aaa1a514caaed9137033b32f1936d7ccccde0 (diff) |
Cycles / Tile Rendering:
* Added new option to chose the tile order.
In addition to the "Center" method, 4 new methods are available now, like Top -> Bottom and Right -> Left.
Thanks to Sergey for code review and some tweaks!
Diffstat (limited to 'intern/cycles/render/tile.h')
-rw-r--r-- | intern/cycles/render/tile.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h index 6f7a8f20734..7d3df6c1524 100644 --- a/intern/cycles/render/tile.h +++ b/intern/cycles/render/tile.h @@ -59,7 +59,7 @@ public: } state; TileManager(bool progressive, int num_samples, int2 tile_size, int start_resolution, - bool preserve_tile_device, bool background, int num_devices = 1); + bool preserve_tile_device, bool background, int tile_order, int num_devices = 1); ~TileManager(); void reset(BufferParams& params, int num_samples); @@ -69,11 +69,21 @@ public: bool done(); protected: + /* Note: this should match enum_tile_order in properties.py */ + enum { + CENTER = 0, + RIGHT_TO_LEFT = 1, + LEFT_TO_RIGHT = 2, + TOP_TO_BOTTOM = 3, + BOTTOM_TO_TOP = 4 + } TileOrder; + void set_tiles(); bool progressive; int num_samples; int2 tile_size; + int tile_order; int start_resolution; int num_devices; @@ -106,9 +116,12 @@ protected: * mimics behavior of blender internal's tile order */ list<Tile>::iterator next_center_tile(int device); + + /* returns simple tile order */ + list<Tile>::iterator next_simple_tile(int device, int tile_order); - /* returns first unhandled tile starting from left bottom corner of the image */ - list<Tile>::iterator next_simple_tile(int device); + /* returns first unhandled tile (for viewport) */ + list<Tile>::iterator next_viewport_tile(int device); }; CCL_NAMESPACE_END |