ClangFormat: apply to source, most of intern
[blender.git] / intern / cycles / render / tile.h
index 2835c79..017c1af 100644 (file)
@@ -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 &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);
 };
 
 CCL_NAMESPACE_END
 
-#endif  /* __TILE_H__ */
+#endif /* __TILE_H__ */