|
Blender
V2.93
|
#include <blender_session.h>
Public Member Functions | |
| BlenderSession (BL::RenderEngine &b_engine, BL::Preferences &b_userpref, BL::BlendData &b_data, bool preview_osl) | |
| BlenderSession (BL::RenderEngine &b_engine, BL::Preferences &b_userpref, BL::BlendData &b_data, BL::SpaceView3D &b_v3d, BL::RegionView3D &b_rv3d, int width, int height) | |
| ~BlenderSession () | |
| void | create_session () |
| void | free_session () |
| void | reset_session (BL::BlendData &b_data, BL::Depsgraph &b_depsgraph) |
| void | render (BL::Depsgraph &b_depsgraph) |
| void | bake (BL::Depsgraph &b_depsgrah, BL::Object &b_object, const string &pass_type, const int custom_flag, const int bake_width, const int bake_height) |
| void | write_render_result (BL::RenderLayer &b_rlay, RenderTile &rtile) |
| void | write_render_tile (RenderTile &rtile) |
| void | read_render_tile (RenderTile &rtile) |
| void | update_render_result (BL::RenderLayer &b_rlay, RenderTile &rtile) |
| void | update_render_tile (RenderTile &rtile, bool highlight) |
| void | synchronize (BL::Depsgraph &b_depsgraph) |
| bool | draw (int w, int h) |
| void | tag_redraw () |
| void | tag_update () |
| void | get_status (string &status, string &substatus) |
| void | get_kernel_status (string &kernel_status) |
| void | get_progress (float &progress, double &total_time, double &render_time) |
| void | test_cancel () |
| void | update_status_progress () |
| void | update_bake_progress () |
Public Attributes | |
| bool | background |
| Session * | session |
| Scene * | scene |
| BlenderSync * | sync |
| double | last_redraw_time |
| BL::RenderEngine | b_engine |
| BL::Preferences | b_userpref |
| BL::BlendData | b_data |
| BL::RenderSettings | b_render |
| BL::Depsgraph | b_depsgraph |
| BL::Scene | b_scene |
| BL::SpaceView3D | b_v3d |
| BL::RegionView3D | b_rv3d |
| string | b_rlay_name |
| string | b_rview_name |
| string | last_status |
| string | last_error |
| float | last_progress |
| double | last_status_time |
| int | width |
| int | height |
| bool | preview_osl |
| double | start_resize_time |
| void * | python_thread_state |
Static Public Attributes | |
| static DeviceTypeMask | device_override = DEVICE_MASK_ALL |
| static bool | headless = false |
| static int | num_resumable_chunks = 0 |
| static int | current_resumable_chunk = 0 |
| static int | start_resumable_chunk = 0 |
| static int | end_resumable_chunk = 0 |
| static bool | print_render_stats = false |
Protected Member Functions | |
| void | stamp_view_layer_metadata (Scene *scene, const string &view_layer_name) |
| void | do_write_update_render_result (BL::RenderLayer &b_rlay, RenderTile &rtile, bool do_update_only) |
| void | do_write_update_render_tile (RenderTile &rtile, bool do_update_only, bool do_read_only, bool highlight) |
| void | builtin_images_load () |
| void | update_resumable_tile_manager (int num_samples) |
| void | free_blender_memory_if_possible () |
Definition at line 39 of file blender_session.h.
| BlenderSession::BlenderSession | ( | BL::RenderEngine & | b_engine, |
| BL::Preferences & | b_userpref, | ||
| BL::BlendData & | b_data, | ||
| bool | preview_osl | ||
| ) |
Definition at line 58 of file blender_session.cpp.
References background, last_redraw_time, last_status_time, and start_resize_time.
| BlenderSession::BlenderSession | ( | BL::RenderEngine & | b_engine, |
| BL::Preferences & | b_userpref, | ||
| BL::BlendData & | b_data, | ||
| BL::SpaceView3D & | b_v3d, | ||
| BL::RegionView3D & | b_rv3d, | ||
| int | width, | ||
| int | height | ||
| ) |
Definition at line 85 of file blender_session.cpp.
References background, last_redraw_time, last_status_time, and start_resize_time.
| BlenderSession::~BlenderSession | ( | ) |
Definition at line 115 of file blender_session.cpp.
References free_session().
| void BlenderSession::bake | ( | BL::Depsgraph & | b_depsgrah, |
| BL::Object & | b_object, | ||
| const string & | pass_type, | ||
| const int | custom_flag, | ||
| const int | bake_width, | ||
| const int | bake_height | ||
| ) |
Definition at line 635 of file blender_session.cpp.
References Pass::add(), b_depsgraph, b_engine, b_render, b_scene, b_userpref, b_v3d, background, Scene::bake_manager, bake_pass_filter_get(), builtin_images_load(), function_bind, function_null, Progress::get_cancel(), BlenderSync::get_session_params(), get_shader_type(), height, BufferParams::height, Node::name, Scene::name, Scene::objects, PASS_COMBINED, BufferParams::passes, Scene::passes, Session::progress, SessionParams::progressive_refine, python_thread_state, Session::read_bake_tile_cb, read_render_tile(), Session::reset(), SessionParams::samples, scene, session, BakeManager::set(), TileManager::set_samples(), Progress::set_update_callback(), Session::start(), sync, BlenderSync::sync_camera(), BlenderSync::sync_data(), Session::tile_manager, update_bake_progress(), Session::wait(), width, BufferParams::width, write_render_tile(), and Session::write_render_tile_cb.
Referenced by bake_func().
|
protected |
Definition at line 194 of file blender_image.cpp.
References Session::device, ImageManager::device_load_builtin(), Scene::image_manager, Session::progress, Session::scene, and session.
Referenced by bake(), render(), and synchronize().
| void BlenderSession::create_session | ( | ) |
Definition at line 120 of file blender_session.cpp.
References b_data, b_engine, b_render, b_rv3d, b_scene, b_userpref, b_v3d, background, Scene::camera, SessionParams::denoising, Session::device, function_bind, BlenderSync::get_buffer_params(), BlenderSync::get_scene_params(), BlenderSync::get_session_params(), BlenderSync::get_session_pause(), height, last_error, last_progress, last_status, Scene::name, Session::progress, SessionParams::progressive_refine, Session::reset(), SessionParams::samples, scene, Session::scene, session, Progress::set_cancel_callback(), Session::set_pause(), Progress::set_update_callback(), start_resize_time, sync, BlenderSync::sync_camera(), BlenderSync::sync_view(), tag_redraw(), test_cancel(), update_resumable_tile_manager(), DenoiseParams::use, and width.
Referenced by reset_session(), and synchronize().
|
protected |
Definition at line 705 of file blender_session.cpp.
References b_rview_name, RenderTile::buffers, RenderBuffers::copy_from_device(), Scene::film, BlenderSync::get_denoising_pass(), RenderBuffers::get_denoising_pass_rect(), RenderBuffers::get_pass_rect(), RenderTile::h, TileManager::range_start_sample, RenderTile::sample, blender::compositor::sample(), scene, session, Session::tile_manager, and RenderTile::w.
Referenced by update_render_result(), and write_render_result().
|
protected |
Definition at line 330 of file blender_session.cpp.
References b_engine, b_rlay_name, b_rview_name, begin_render_result(), RenderTile::buffers, RenderTile::DENOISE, end_render_result(), BufferParams::full_x, BufferParams::full_y, BlenderSync::get_pass_type(), RenderTile::h, merge(), NULL, RenderTile::num_samples, TileManager::params, RenderTile::sample, session, RenderBuffers::set_pass_rect(), RenderTile::task, Session::tile_manager, update_render_result(), w(), RenderTile::w, write_render_result(), RenderTile::x, x, RenderTile::y, and y.
Referenced by read_render_tile(), update_render_tile(), and write_render_tile().
| bool BlenderSession::draw | ( | int | w, |
| int | h | ||
| ) |
Definition at line 850 of file blender_session.cpp.
References b_engine, b_render, b_rv3d, b_scene, b_userpref, b_v3d, background, DeviceDrawParams::bind_display_space_shader_cb, Scene::camera, SessionParams::denoising, SessionParams::display_buffer_linear, Session::draw(), function_bind, BlenderSync::get_buffer_params(), BlenderSync::get_session_params(), BlenderSync::get_session_pause(), height, Node::is_modified(), Scene::mutex, Session::params, Session::ready_to_reset(), reset(), Session::reset(), SessionParams::samples, scene, Session::scene, session, Session::set_pause(), start_resize_time, sync, BlenderSync::sync_view(), tag_redraw(), tag_update(), time_dt(), DeviceDrawParams::unbind_display_space_shader_cb, update_status_progress(), DenoiseParams::use, w(), and width.
Referenced by draw_func().
|
protected |
Definition at line 1109 of file blender_session.cpp.
References b_engine, and background.
Referenced by render().
| void BlenderSession::free_session | ( | ) |
Definition at line 260 of file blender_session.cpp.
References Session::cancel(), session, and sync.
Referenced by reset_session(), synchronize(), and ~BlenderSession().
| void BlenderSession::get_kernel_status | ( | string & | kernel_status | ) |
Definition at line 935 of file blender_session.cpp.
References Progress::get_kernel_status(), Session::progress, and session.
Referenced by update_status_progress().
Definition at line 940 of file blender_session.cpp.
References Progress::get_progress(), Progress::get_time(), Session::progress, and session.
Referenced by update_status_progress().
| void BlenderSession::get_status | ( | string & | status, |
| string & | substatus | ||
| ) |
Definition at line 930 of file blender_session.cpp.
References Progress::get_status(), Session::progress, and session.
Referenced by update_status_progress().
| void BlenderSession::read_render_tile | ( | RenderTile & | rtile | ) |
Definition at line 391 of file blender_session.cpp.
References do_write_update_render_tile().
Referenced by bake().
| void BlenderSession::render | ( | BL::Depsgraph & | b_depsgraph | ) |
Definition at line 469 of file blender_session.cpp.
References SessionParams::adaptive_sampling, b_depsgraph, b_engine, b_render, b_rlay_name, b_rv3d, b_rview_name, b_scene, b_userpref, b_v3d, background, begin_render_result(), builtin_images_load(), Scene::camera, Session::collect_statistics(), SessionParams::denoising, BufferParams::denoising_clean_pass, BufferParams::denoising_data_pass, BufferParams::denoising_prefiltered_pass, Scene::enable_update_stats(), end_render_result(), Scene::film, free_blender_memory_if_possible(), RenderStats::full_report(), function_bind, function_null, BlenderSync::get_buffer_params(), Progress::get_cancel(), BlenderSync::get_layer_bound_samples(), BlenderSync::get_layer_samples(), BlenderSync::get_session_params(), Progress::get_time(), hash_uint2(), height, Scene::integrator, Scene::MOTION_NONE, Scene::need_motion(), NULL, BufferParams::passes, print_render_stats, Session::progress, python_thread_state, Session::reset(), SessionParams::samples, scene, seed, session, Session::set_denoising(), stamp_view_layer_metadata(), Session::start(), sync, BlenderSync::sync_camera(), BlenderSync::sync_data(), BlenderSync::sync_render_passes(), BlenderSync::tag_update(), update_render_tile(), Session::update_render_tile_cb, update_resumable_tile_manager(), update_status_progress(), DenoiseParams::use, VLOG, Session::wait(), width, write_render_tile(), and Session::write_render_tile_cb.
Referenced by render_func().
| void BlenderSession::reset_session | ( | BL::BlendData & | b_data, |
| BL::Depsgraph & | b_depsgraph | ||
| ) |
Definition at line 166 of file blender_session.cpp.
References b_data, b_depsgraph, b_engine, b_render, b_scene, b_userpref, b_v3d, background, Scene::camera, create_session(), SessionParams::denoising, free_session(), BlenderSync::get_buffer_params(), BlenderSync::get_scene_params(), BlenderSync::get_session_params(), height, Stats::mem_peak, Stats::mem_used, SceneParams::modified(), SessionParams::modified(), NULL, Scene::params, Session::params, PointerRNA_NULL, preview_osl, Session::progress, SessionParams::progressive_refine, render_resolution_x(), render_resolution_y(), Progress::reset(), BlenderSync::reset(), Session::reset(), RNA_boolean_set(), RNA_pointer_get(), SessionParams::samples, scene, session, TileManager::set_tile_order(), start_resize_time, Session::stats, sync, BlenderSync::sync_camera(), BlenderSync::sync_recalc(), Session::tile_manager, SessionParams::tile_order, DenoiseParams::use, and width.
Referenced by reset_func().
|
protected |
Definition at line 424 of file blender_session.cpp.
References add_cryptomatte_layer(), b_engine, CRYPT_ASSET, CRYPT_MATERIAL, CRYPT_OBJECT, Scene::film, ObjectManager::get_cryptomatte_assets(), ShaderManager::get_cryptomatte_materials(), ObjectManager::get_cryptomatte_objects(), Progress::get_time(), Scene::object_manager, Session::params, Session::progress, TileManager::range_num_samples, TileManager::range_start_sample, SessionParams::samples, scene, session, Scene::shader_manager, Session::tile_manager, time_human_readable_from_seconds(), and std::to_string().
Referenced by render().
| void BlenderSession::synchronize | ( | BL::Depsgraph & | b_depsgraph | ) |
Definition at line 768 of file blender_session.cpp.
References b_depsgraph, b_engine, b_render, b_rv3d, b_scene, b_userpref, b_v3d, background, builtin_images_load(), Scene::camera, create_session(), SessionParams::denoising, BufferParams::denoising_data_pass, Scene::film, free_session(), BlenderSync::get_buffer_params(), BlenderSync::get_scene_params(), BlenderSync::get_session_params(), BlenderSync::get_session_pause(), height, SceneParams::modified(), SessionParams::modified(), Scene::mutex, Scene::need_reset(), Scene::params, Session::params, python_thread_state, Session::ready_to_reset(), Session::reset(), SessionParams::samples, scene, Session::scene, session, Session::set_denoising(), Session::set_denoising_start_sample(), Session::set_pause(), Session::set_samples(), Session::start(), start_resize_time, DenoiseParams::start_sample, sync, BlenderSync::sync_camera(), BlenderSync::sync_data(), BlenderSync::sync_recalc(), BlenderSync::sync_view(), tag_update(), DenoiseParams::use, and width.
Referenced by sync_func().
| void BlenderSession::tag_redraw | ( | ) |
Definition at line 1032 of file blender_session.cpp.
References b_engine, background, last_redraw_time, time_dt(), and update_status_progress().
Referenced by create_session(), and draw().
| void BlenderSession::tag_update | ( | ) |
Definition at line 1026 of file blender_session.cpp.
References b_engine.
Referenced by draw(), and synchronize().
| void BlenderSession::test_cancel | ( | ) |
Definition at line 1051 of file blender_session.cpp.
References b_engine, background, Session::progress, session, and Progress::set_cancel().
Referenced by create_session().
| void BlenderSession::update_bake_progress | ( | ) |
Definition at line 946 of file blender_session.cpp.
References b_engine, Progress::get_progress(), last_progress, Session::progress, and session.
Referenced by bake().
| void BlenderSession::update_render_result | ( | BL::RenderLayer & | b_rlay, |
| RenderTile & | rtile | ||
| ) |
Definition at line 763 of file blender_session.cpp.
References do_write_update_render_result().
Referenced by do_write_update_render_tile().
| void BlenderSession::update_render_tile | ( | RenderTile & | rtile, |
| bool | highlight | ||
| ) |
Definition at line 401 of file blender_session.cpp.
References b_engine, and do_write_update_render_tile().
Referenced by render().
|
protected |
Definition at line 1059 of file blender_session.cpp.
References current_resumable_chunk, end_resumable_chunk, float(), floorf, Scene::integrator, max, num_resumable_chunks, TileManager::range_num_samples, TileManager::range_start_sample, scene, session, start_resumable_chunk, Session::tile_manager, and VLOG.
Referenced by create_session(), and render().
| void BlenderSession::update_status_progress | ( | ) |
Definition at line 956 of file blender_session.cpp.
References b_engine, b_rlay_name, b_rview_name, background, double(), error(), float(), Progress::get_error(), Progress::get_error_message(), get_kernel_status(), get_progress(), get_status(), headless, last_error, last_progress, last_status, last_status_time, Stats::mem_peak, Stats::mem_used, Scene::name, Session::progress, scene, session, Session::stats, string_printf(), time_dt(), and time_human_readable_from_seconds().
Referenced by draw(), render(), and tag_redraw().
| void BlenderSession::write_render_result | ( | BL::RenderLayer & | b_rlay, |
| RenderTile & | rtile | ||
| ) |
Definition at line 758 of file blender_session.cpp.
References do_write_update_render_result().
Referenced by do_write_update_render_tile().
| void BlenderSession::write_render_tile | ( | RenderTile & | rtile | ) |
Definition at line 396 of file blender_session.cpp.
References do_write_update_render_tile().
| BL::BlendData BlenderSession::b_data |
Definition at line 103 of file blender_session.h.
Referenced by create_session(), and reset_session().
| BL::Depsgraph BlenderSession::b_depsgraph |
Definition at line 105 of file blender_session.h.
Referenced by bake(), render(), reset_session(), and synchronize().
| BL::RenderEngine BlenderSession::b_engine |
Definition at line 101 of file blender_session.h.
Referenced by bake(), create_session(), do_write_update_render_tile(), draw(), free_blender_memory_if_possible(), render(), reset_session(), stamp_view_layer_metadata(), synchronize(), tag_redraw(), tag_update(), test_cancel(), update_bake_progress(), update_render_tile(), and update_status_progress().
| BL::RenderSettings BlenderSession::b_render |
Definition at line 104 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().
| string BlenderSession::b_rlay_name |
Definition at line 112 of file blender_session.h.
Referenced by do_write_update_render_tile(), render(), and update_status_progress().
| BL::RegionView3D BlenderSession::b_rv3d |
Definition at line 111 of file blender_session.h.
Referenced by create_session(), draw(), render(), and synchronize().
| string BlenderSession::b_rview_name |
Definition at line 113 of file blender_session.h.
Referenced by do_write_update_render_result(), do_write_update_render_tile(), render(), and update_status_progress().
| BL::Scene BlenderSession::b_scene |
Definition at line 109 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().
| BL::Preferences BlenderSession::b_userpref |
Definition at line 102 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().
| BL::SpaceView3D BlenderSession::b_v3d |
Definition at line 110 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().
| bool BlenderSession::background |
Definition at line 95 of file blender_session.h.
Referenced by bake(), BlenderSession(), create_session(), draw(), free_blender_memory_if_possible(), render(), reset_session(), synchronize(), tag_redraw(), test_cancel(), and update_status_progress().
|
static |
Definition at line 143 of file blender_session.h.
Referenced by clear_resumable_chunk_func(), set_resumable_chunk_func(), and update_resumable_tile_manager().
|
static |
Definition at line 129 of file blender_session.h.
Referenced by blender_device_info(), and set_device_override_func().
|
static |
Definition at line 147 of file blender_session.h.
Referenced by set_resumable_chunk_range_func(), and update_resumable_tile_manager().
|
static |
Definition at line 135 of file blender_session.h.
Referenced by BlenderSync::get_session_params(), init_func(), and update_status_progress().
| int BlenderSession::height |
Definition at line 120 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().
| string BlenderSession::last_error |
Definition at line 116 of file blender_session.h.
Referenced by create_session(), and update_status_progress().
| float BlenderSession::last_progress |
Definition at line 117 of file blender_session.h.
Referenced by create_session(), update_bake_progress(), and update_status_progress().
| double BlenderSession::last_redraw_time |
Definition at line 99 of file blender_session.h.
Referenced by BlenderSession(), and tag_redraw().
| string BlenderSession::last_status |
Definition at line 115 of file blender_session.h.
Referenced by create_session(), and update_status_progress().
| double BlenderSession::last_status_time |
Definition at line 118 of file blender_session.h.
Referenced by BlenderSession(), and update_status_progress().
|
static |
Definition at line 140 of file blender_session.h.
Referenced by clear_resumable_chunk_func(), set_resumable_chunk_func(), set_resumable_chunk_range_func(), and update_resumable_tile_manager().
| bool BlenderSession::preview_osl |
Definition at line 121 of file blender_session.h.
Referenced by reset_session().
|
static |
Definition at line 149 of file blender_session.h.
Referenced by enable_print_stats_func(), BlenderSync::get_session_params(), and render().
| void* BlenderSession::python_thread_state |
Definition at line 124 of file blender_session.h.
Referenced by bake(), bake_func(), render(), render_func(), reset_func(), sync_func(), and synchronize().
| Scene* BlenderSession::scene |
Definition at line 97 of file blender_session.h.
Referenced by bake(), create_session(), do_write_update_render_result(), draw(), render(), reset_session(), stamp_view_layer_metadata(), synchronize(), update_resumable_tile_manager(), and update_status_progress().
| Session* BlenderSession::session |
Definition at line 96 of file blender_session.h.
Referenced by bake(), builtin_images_load(), create_session(), do_write_update_render_result(), do_write_update_render_tile(), draw(), free_session(), get_kernel_status(), get_progress(), get_status(), render(), reset_session(), stamp_view_layer_metadata(), synchronize(), test_cancel(), update_bake_progress(), update_resumable_tile_manager(), and update_status_progress().
| double BlenderSession::start_resize_time |
Definition at line 122 of file blender_session.h.
Referenced by BlenderSession(), create_session(), draw(), reset_session(), and synchronize().
|
static |
Definition at line 146 of file blender_session.h.
Referenced by set_resumable_chunk_range_func(), and update_resumable_tile_manager().
| BlenderSync* BlenderSession::sync |
Definition at line 98 of file blender_session.h.
Referenced by bake(), create_session(), draw(), free_session(), render(), reset_session(), and synchronize().
| int BlenderSession::width |
Definition at line 120 of file blender_session.h.
Referenced by bake(), create_session(), draw(), render(), reset_session(), and synchronize().