diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /intern/cycles/render/tile.h | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'intern/cycles/render/tile.h')
-rw-r--r-- | intern/cycles/render/tile.h | 239 |
1 files changed, 126 insertions, 113 deletions
diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h index 2835c793073..017c1af0ead 100644 --- a/intern/cycles/render/tile.h +++ b/intern/cycles/render/tile.h @@ -27,131 +27,144 @@ CCL_NAMESPACE_BEGIN /* Tile */ class Tile { -public: - int index; - int x, y, w, h; - int device; - /* RENDER: The tile has to be rendered. - * RENDERED: The tile has been rendered, but can't be denoised yet (waiting for neighbors). - * DENOISE: The tile can be denoised now. - * DENOISED: The tile has been denoised, but can't be freed yet (waiting for neighbors). - * DONE: The tile is finished and has been freed. */ - typedef enum { RENDER = 0, RENDERED, DENOISE, DENOISED, DONE } State; - State state; - RenderBuffers *buffers; - - Tile() - {} - - Tile(int index_, int x_, int y_, int w_, int h_, int device_, State state_ = RENDER) - : index(index_), x(x_), y(y_), w(w_), h(h_), device(device_), state(state_), buffers(NULL) {} + public: + int index; + int x, y, w, h; + int device; + /* RENDER: The tile has to be rendered. + * RENDERED: The tile has been rendered, but can't be denoised yet (waiting for neighbors). + * DENOISE: The tile can be denoised now. + * DENOISED: The tile has been denoised, but can't be freed yet (waiting for neighbors). + * DONE: The tile is finished and has been freed. */ + typedef enum { RENDER = 0, RENDERED, DENOISE, DENOISED, DONE } State; + State state; + RenderBuffers *buffers; + + Tile() + { + } + + Tile(int index_, int x_, int y_, int w_, int h_, int device_, State state_ = RENDER) + : index(index_), x(x_), y(y_), w(w_), h(h_), device(device_), state(state_), buffers(NULL) + { + } }; /* Tile order */ /* Note: this should match enum_tile_order in properties.py */ enum TileOrder { - TILE_CENTER = 0, - TILE_RIGHT_TO_LEFT = 1, - TILE_LEFT_TO_RIGHT = 2, - TILE_TOP_TO_BOTTOM = 3, - TILE_BOTTOM_TO_TOP = 4, - TILE_HILBERT_SPIRAL = 5, + TILE_CENTER = 0, + TILE_RIGHT_TO_LEFT = 1, + TILE_LEFT_TO_RIGHT = 2, + TILE_TOP_TO_BOTTOM = 3, + TILE_BOTTOM_TO_TOP = 4, + TILE_HILBERT_SPIRAL = 5, }; /* Tile Manager */ class TileManager { -public: - BufferParams params; - - struct State { - vector<Tile> tiles; - int tile_stride; - BufferParams buffer; - int sample; - int num_samples; - int resolution_divider; - int num_tiles; - - /* Total samples over all pixels: Generally num_samples*num_pixels, - * but can be higher due to the initial resolution division for previews. */ - uint64_t total_pixel_samples; - - /* These lists contain the indices of the tiles to be rendered/denoised and are used - * when acquiring a new tile for the device. - * Each list in each vector is for one logical device. */ - vector<list<int> > render_tiles; - vector<list<int> > denoising_tiles; - } state; - - int num_samples; - - TileManager(bool progressive, int num_samples, int2 tile_size, int start_resolution, - bool preserve_tile_device, bool background, TileOrder tile_order, int num_devices = 1, int pixel_size = 1); - ~TileManager(); - - void device_free(); - void reset(BufferParams& params, int num_samples); - void set_samples(int num_samples); - bool next(); - bool next_tile(Tile* &tile, int device = 0); - bool finish_tile(int index, bool& delete_tile); - bool done(); - - void set_tile_order(TileOrder tile_order_) { tile_order = tile_order_; } - - /* ** Sample range rendering. ** */ - - /* Start sample in the range. */ - int range_start_sample; - - /* Number to samples in the rendering range. */ - int range_num_samples; - - /* Get number of actual samples to render. */ - int get_num_effective_samples(); - - /* Schedule tiles for denoising after they've been rendered. */ - bool schedule_denoising; -protected: - - void set_tiles(); - - bool progressive; - int2 tile_size; - TileOrder tile_order; - int start_resolution; - int pixel_size; - int num_devices; - - /* in some cases it is important that the same tile will be returned for the same - * device it was originally generated for (i.e. viewport rendering when buffer is - * allocating once for tile and then always used by it) - * - * in other cases any tile could be handled by any device (i.e. final rendering - * without progressive refine) - */ - bool preserve_tile_device; - - /* for background render tiles should exactly match render parts generated from - * blender side, which means image first gets split into tiles and then tiles are - * assigning to render devices - * - * however viewport rendering expects tiles to be allocated in a special way, - * meaning image is being sliced horizontally first and every device handles - * it's own slice - */ - bool background; - - /* Generate tile list, return number of tiles. */ - int gen_tiles(bool sliced); - void gen_render_tiles(); - - int get_neighbor_index(int index, int neighbor); - bool check_neighbor_state(int index, Tile::State state); + public: + BufferParams params; + + struct State { + vector<Tile> tiles; + int tile_stride; + BufferParams buffer; + int sample; + int num_samples; + int resolution_divider; + int num_tiles; + + /* Total samples over all pixels: Generally num_samples*num_pixels, + * but can be higher due to the initial resolution division for previews. */ + uint64_t total_pixel_samples; + + /* These lists contain the indices of the tiles to be rendered/denoised and are used + * when acquiring a new tile for the device. + * Each list in each vector is for one logical device. */ + vector<list<int>> render_tiles; + vector<list<int>> denoising_tiles; + } state; + + int num_samples; + + TileManager(bool progressive, + int num_samples, + int2 tile_size, + int start_resolution, + bool preserve_tile_device, + bool background, + TileOrder tile_order, + int num_devices = 1, + int pixel_size = 1); + ~TileManager(); + + void device_free(); + void reset(BufferParams ¶ms, int num_samples); + void set_samples(int num_samples); + bool next(); + bool next_tile(Tile *&tile, int device = 0); + bool finish_tile(int index, bool &delete_tile); + bool done(); + + void set_tile_order(TileOrder tile_order_) + { + tile_order = tile_order_; + } + + /* ** Sample range rendering. ** */ + + /* Start sample in the range. */ + int range_start_sample; + + /* Number to samples in the rendering range. */ + int range_num_samples; + + /* Get number of actual samples to render. */ + int get_num_effective_samples(); + + /* Schedule tiles for denoising after they've been rendered. */ + bool schedule_denoising; + + protected: + void set_tiles(); + + bool progressive; + int2 tile_size; + TileOrder tile_order; + int start_resolution; + int pixel_size; + int num_devices; + + /* in some cases it is important that the same tile will be returned for the same + * device it was originally generated for (i.e. viewport rendering when buffer is + * allocating once for tile and then always used by it) + * + * in other cases any tile could be handled by any device (i.e. final rendering + * without progressive refine) + */ + bool preserve_tile_device; + + /* for background render tiles should exactly match render parts generated from + * blender side, which means image first gets split into tiles and then tiles are + * assigning to render devices + * + * however viewport rendering expects tiles to be allocated in a special way, + * meaning image is being sliced horizontally first and every device handles + * it's own slice + */ + bool background; + + /* Generate tile list, return number of tiles. */ + int gen_tiles(bool sliced); + void gen_render_tiles(); + + int get_neighbor_index(int index, int neighbor); + bool check_neighbor_state(int index, Tile::State state); }; CCL_NAMESPACE_END -#endif /* __TILE_H__ */ +#endif /* __TILE_H__ */ |