Blender V4.3
TileManager Class Reference

#include <tile.h>

Public Member Functions

 TileManager ()
 
 ~TileManager ()
 
 TileManager (const TileManager &other)=delete
 
 TileManager (TileManager &&other) noexcept=delete
 
TileManageroperator= (const TileManager &other)=delete
 
TileManageroperator= (TileManager &&other)=delete
 
void reset_scheduling (const BufferParams &params, int2 tile_size)
 
void update (const BufferParams &params, const Scene *scene)
 
void set_temp_dir (const string &temp_dir)
 
int get_num_tiles () const
 
bool has_multiple_tiles () const
 
int get_tile_overscan () const
 
bool next ()
 
bool done ()
 
const Tileget_current_tile () const
 
const int2 get_size () const
 
bool write_tile (const RenderBuffers &tile_buffers)
 
void finish_write_tiles ()
 
bool has_written_tiles () const
 
bool read_full_buffer_from_disk (string_view filename, RenderBuffers *buffers, DenoiseParams *denoise_params)
 
int compute_render_tile_size (const int suggested_tile_size) const
 

Public Attributes

function< void(string_view)> full_buffer_written_cb
 

Static Public Attributes

static const int IMAGE_TILE_SIZE = 128
 
static const int MAX_TILE_SIZE = 8192
 

Protected Member Functions

Tile get_tile_for_index (int index) const
 
bool open_tile_output ()
 
bool close_tile_output ()
 

Protected Attributes

string temp_dir_
 
string tile_file_unique_part_
 
int2 tile_size_ = make_int2(0, 0)
 
int overscan_ = 0
 
BufferParams buffer_params_
 
struct { 
 
   int   num_tiles_x = 0 
 
   int   num_tiles_y = 0 
 
   int   num_tiles = 0 
 
   int   next_tile_index 
 
   Tile   current_tile 
 
tile_state_ 
 
struct { 
 
   int   tile_file_index = 0 
 
   string   filename 
 
   ImageSpec   image_spec 
 
   unique_ptr< ImageOutput >   tile_out 
 
   int   num_tiles_written = 0 
 
write_state_ 
 

Detailed Description

Definition at line 36 of file session/tile.h.

Constructor & Destructor Documentation

◆ TileManager() [1/3]

TileManager::TileManager ( )

◆ ~TileManager()

TileManager::~TileManager ( )

Definition at line 323 of file session/tile.cpp.

◆ TileManager() [2/3]

TileManager::TileManager ( const TileManager & other)
delete

◆ TileManager() [3/3]

TileManager::TileManager ( TileManager && other)
deletenoexcept

Member Function Documentation

◆ close_tile_output()

bool TileManager::close_tile_output ( )
protected

Definition at line 476 of file session/tile.cpp.

References LOG, VLOG_WORK, and write_state_.

Referenced by finish_write_tiles(), and reset_scheduling().

◆ compute_render_tile_size()

int TileManager::compute_render_tile_size ( const int suggested_tile_size) const

Definition at line 325 of file session/tile.cpp.

References align_up(), IMAGE_TILE_SIZE, MAX_TILE_SIZE, and min.

Referenced by Session::get_effective_tile_size().

◆ done()

bool TileManager::done ( )

Definition at line 390 of file session/tile.cpp.

References tile_state_.

Referenced by next(), and RenderScheduler::set_full_frame_render_work().

◆ finish_write_tiles()

◆ get_current_tile()

const Tile & TileManager::get_current_tile ( ) const

◆ get_num_tiles()

int TileManager::get_num_tiles ( ) const
inline

◆ get_size()

const int2 TileManager::get_size ( ) const

◆ get_tile_for_index()

Tile TileManager::get_tile_for_index ( int index) const
protected

◆ get_tile_overscan()

int TileManager::get_tile_overscan ( ) const
inline

◆ has_multiple_tiles()

◆ has_written_tiles()

bool TileManager::has_written_tiles ( ) const
inline

Definition at line 95 of file session/tile.h.

References write_state_.

Referenced by PathTrace::finalize_full_buffer_on_disk().

◆ next()

bool TileManager::next ( )

Definition at line 395 of file session/tile.cpp.

References done(), get_tile_for_index(), and tile_state_.

Referenced by Session::run_update_for_next_iteration().

◆ open_tile_output()

bool TileManager::open_tile_output ( )
protected

Definition at line 446 of file session/tile.cpp.

References LOG, path_join(), temp_dir_, tile_file_unique_part_, to_string(), VLOG_WORK, and write_state_.

Referenced by write_tile().

◆ operator=() [1/2]

TileManager & TileManager::operator= ( const TileManager & other)
delete

◆ operator=() [2/2]

TileManager & TileManager::operator= ( TileManager && other)
delete

◆ read_full_buffer_from_disk()

bool TileManager::read_full_buffer_from_disk ( string_view filename,
RenderBuffers * buffers,
DenoiseParams * denoise_params )

◆ reset_scheduling()

void TileManager::reset_scheduling ( const BufferParams & params,
int2 tile_size )

◆ set_temp_dir()

void TileManager::set_temp_dir ( const string & temp_dir)

Definition at line 385 of file session/tile.cpp.

References temp_dir_.

Referenced by Session::do_delayed_reset().

◆ update()

◆ write_tile()

Member Data Documentation

◆ buffer_params_

BufferParams TileManager::buffer_params_
protected

Definition at line 138 of file session/tile.h.

Referenced by finish_write_tiles(), get_size(), get_tile_for_index(), update(), and write_tile().

◆ current_tile

Tile TileManager::current_tile

Definition at line 148 of file session/tile.h.

◆ filename

string TileManager::filename

Definition at line 159 of file session/tile.h.

Referenced by read_full_buffer_from_disk().

◆ full_buffer_written_cb

function<void(string_view)> TileManager::full_buffer_written_cb

Definition at line 39 of file session/tile.h.

Referenced by finish_write_tiles(), and Session::Session().

◆ image_spec

ImageSpec TileManager::image_spec

Definition at line 166 of file session/tile.h.

Referenced by read_full_buffer_from_disk().

◆ IMAGE_TILE_SIZE

const int TileManager::IMAGE_TILE_SIZE = 128
static

Definition at line 111 of file session/tile.h.

Referenced by compute_render_tile_size(), and configure_image_spec_from_buffer().

◆ MAX_TILE_SIZE

const int TileManager::MAX_TILE_SIZE = 8192
static

Definition at line 117 of file session/tile.h.

Referenced by compute_render_tile_size(), and Session::get_effective_tile_size().

◆ next_tile_index

int TileManager::next_tile_index

Definition at line 146 of file session/tile.h.

◆ num_tiles

int TileManager::num_tiles = 0

Definition at line 144 of file session/tile.h.

◆ num_tiles_written

int TileManager::num_tiles_written = 0

Definition at line 174 of file session/tile.h.

◆ num_tiles_x

int TileManager::num_tiles_x = 0

Definition at line 142 of file session/tile.h.

◆ num_tiles_y

int TileManager::num_tiles_y = 0

Definition at line 143 of file session/tile.h.

◆ overscan_

int TileManager::overscan_ = 0
protected

Definition at line 136 of file session/tile.h.

Referenced by get_tile_for_index(), get_tile_overscan(), and update().

◆ temp_dir_

string TileManager::temp_dir_
protected

Definition at line 127 of file session/tile.h.

Referenced by open_tile_output(), and set_temp_dir().

◆ tile_file_index

int TileManager::tile_file_index = 0

Definition at line 157 of file session/tile.h.

◆ tile_file_unique_part_

string TileManager::tile_file_unique_part_
protected

Definition at line 131 of file session/tile.h.

Referenced by open_tile_output(), and TileManager().

◆ tile_out

unique_ptr<ImageOutput> TileManager::tile_out

Definition at line 172 of file session/tile.h.

◆ tile_size_

int2 TileManager::tile_size_ = make_int2(0, 0)
protected

Definition at line 133 of file session/tile.h.

Referenced by finish_write_tiles(), get_tile_for_index(), reset_scheduling(), and update().

◆ [struct]

◆ [struct]

struct { ... } TileManager::write_state_

The documentation for this class was generated from the following files: