[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49550] branches/soc-2011-tomato/intern/ cycles/render: Tomato Cycles: minor code cleanup
Sergey Sharybin
sergey.vfx at gmail.com
Sat Aug 4 11:13:53 CEST 2012
Revision: 49550
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49550
Author: nazgul
Date: 2012-08-04 09:13:52 +0000 (Sat, 04 Aug 2012)
Log Message:
-----------
Tomato Cycles: minor code cleanup
Move center tile acquiring code into own function. Should be
easier for time being when we'll want to support other tile
render orders.
Also now there should be a single bucket growing from center
when multi-GPU is used. Can't test this here tho.
Modified Paths:
--------------
branches/soc-2011-tomato/intern/cycles/render/tile.cpp
branches/soc-2011-tomato/intern/cycles/render/tile.h
Modified: branches/soc-2011-tomato/intern/cycles/render/tile.cpp
===================================================================
--- branches/soc-2011-tomato/intern/cycles/render/tile.cpp 2012-08-04 01:49:33 UTC (rev 49549)
+++ branches/soc-2011-tomato/intern/cycles/render/tile.cpp 2012-08-04 09:13:52 UTC (rev 49550)
@@ -113,7 +113,7 @@
state.buffer.full_height = max(1, params.full_height/resolution);
}
-bool TileManager::next_tile(Tile& tile, int device)
+list<Tile>::iterator TileManager::next_center_tile(int device)
{
list<Tile>::iterator iter, best = state.tiles.end();
@@ -131,7 +131,7 @@
/* find center of rendering tiles, image center counts for 1 too */
for(iter = state.tiles.begin(); iter != state.tiles.end(); iter++) {
- if(iter->device == device && iter->rendering) {
+ if(iter->rendering) {
Tile &cur_tile = *iter;
centx += cur_tile.x + cur_tile.w / 2;
centy += cur_tile.y + cur_tile.h / 2;
@@ -151,16 +151,25 @@
int64_t disty = centy - (cur_tile.y + cur_tile.h / 2);
distx = (int64_t) sqrt((double)distx * distx + disty * disty);
- if (distx < mindist) {
+ if(distx < mindist) {
best = iter;
mindist = distx;
}
}
}
- if (best != state.tiles.end()) {
- best->rendering = true;
- tile = *best;
+ return best;
+}
+
+bool TileManager::next_tile(Tile& tile, int device)
+{
+ list<Tile>::iterator tile_it;
+
+ tile_it = next_center_tile(device);
+
+ if(tile_it != state.tiles.end()) {
+ tile_it->rendering = true;
+ tile = *tile_it;
state.num_rendered_tiles++;
return true;
Modified: branches/soc-2011-tomato/intern/cycles/render/tile.h
===================================================================
--- branches/soc-2011-tomato/intern/cycles/render/tile.h 2012-08-04 01:49:33 UTC (rev 49549)
+++ branches/soc-2011-tomato/intern/cycles/render/tile.h 2012-08-04 09:13:52 UTC (rev 49550)
@@ -76,6 +76,8 @@
int num_devices;
int start_resolution;
+
+ list<Tile>::iterator next_center_tile(int device = 0);
};
CCL_NAMESPACE_END
More information about the Bf-blender-cvs
mailing list