|
Blender V4.3
|
#include <fmt/format.h>#include <cerrno>#include <climits>#include <cmath>#include <cstddef>#include <cstdlib>#include <cstring>#include <forward_list>#include "DNA_anim_types.h"#include "DNA_collection_types.h"#include "DNA_image_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_particle_types.h"#include "DNA_scene_types.h"#include "DNA_sequence_types.h"#include "DNA_space_types.h"#include "DNA_userdef_types.h"#include "DNA_windowmanager_types.h"#include "MEM_guardedalloc.h"#include "BLI_fileops.h"#include "BLI_listbase.h"#include "BLI_map.hh"#include "BLI_rect.h"#include "BLI_set.hh"#include "BLI_string.h"#include "BLI_threads.h"#include "BLI_time.h"#include "BLI_timecode.h"#include "BLI_vector.hh"#include "BLT_translation.hh"#include "BKE_anim_data.hh"#include "BKE_animsys.h"#include "BKE_callbacks.hh"#include "BKE_camera.h"#include "BKE_colortools.hh"#include "BKE_global.hh"#include "BKE_image.hh"#include "BKE_image_format.hh"#include "BKE_image_save.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_lib_remap.hh"#include "BKE_main.hh"#include "BKE_mask.h"#include "BKE_modifier.hh"#include "BKE_node_runtime.hh"#include "BKE_pointcache.h"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_sound.h"#include "BKE_writemovie.hh"#include "NOD_composite.hh"#include "COM_render_context.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_build.hh"#include "DEG_depsgraph_debug.hh"#include "DEG_depsgraph_query.hh"#include "IMB_colormanagement.hh"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"#include "IMB_metadata.hh"#include "RE_engine.h"#include "RE_pipeline.h"#include "RE_texture.h"#include "SEQ_relations.hh"#include "SEQ_render.hh"#include "GPU_capabilities.hh"#include "GPU_context.hh"#include "WM_api.hh"#include "wm_window.hh"#include "pipeline.hh"#include "render_result.h"#include "render_types.h"Go to the source code of this file.
Macros | |
| #define | CHECK_PASS(NAME) |
Functions | |
Callbacks | |
| static void | render_callback_exec_string (Render *re, Main *bmain, eCbEvent evt, const char *str) |
| static void | render_callback_exec_id (Render *re, Main *bmain, ID *id, eCbEvent evt) |
Allocation & Free | |
| static bool | do_write_image_or_movie (Render *re, Main *bmain, Scene *scene, bMovieHandle *mh, const int totvideos, const char *filepath_override) |
| static void | result_nothing (void *, RenderResult *) |
| static void | result_rcti_nothing (void *, RenderResult *, rcti *) |
| static void | current_scene_nothing (void *, Scene *) |
| static bool | prepare_viewlayer_nothing (void *, ViewLayer *, Depsgraph *) |
| static void | stats_nothing (void *, RenderStats *) |
| static void | float_nothing (void *, float) |
| static bool | default_break (void *) |
| static void | stats_background (void *, RenderStats *rs) |
| void | RE_ReferenceRenderResult (RenderResult *rr) |
| void | RE_FreeRenderResult (RenderResult *rr) |
| ImBuf * | RE_RenderLayerGetPassImBuf (RenderLayer *rl, const char *name, const char *viewname) |
| float * | RE_RenderLayerGetPass (RenderLayer *rl, const char *name, const char *viewname) |
| RenderLayer * | RE_GetRenderLayer (RenderResult *rr, const char *name) |
| bool | RE_HasSingleLayer (Render *re) |
| RenderResult * | RE_MultilayerConvert (void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty) |
| RenderLayer * | render_get_single_layer (Render *re, RenderResult *rr) |
| static bool | render_scene_has_layers_to_render (Scene *scene, ViewLayer *single_layer) |
Initialize State | |
| static void | re_init_resolution (Render *re, Render *source, int winx, int winy, const rcti *disprect) |
| void | render_copy_renderdata (RenderData *to, RenderData *from) |
| void | RE_InitState (Render *re, Render *source, RenderData *rd, ListBase *, ViewLayer *single_layer, int winx, int winy, const rcti *disprect) |
| void | RE_display_init_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr)) |
| void | RE_display_clear_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr)) |
| void | RE_display_update_cb (Render *re, void *handle, void(*f)(void *handle, RenderResult *rr, rcti *rect)) |
| void | RE_current_scene_update_cb (Render *re, void *handle, void(*f)(void *handle, Scene *scene)) |
| void | RE_stats_draw_cb (Render *re, void *handle, void(*f)(void *handle, RenderStats *rs)) |
| void | RE_progress_cb (Render *re, void *handle, void(*f)(void *handle, float)) |
| void | RE_draw_lock_cb (Render *re, void *handle, void(*f)(void *handle, bool lock)) |
| void | RE_test_break_cb (Render *re, void *handle, bool(*f)(void *handle)) |
| void | RE_prepare_viewlayer_cb (Render *re, void *handle, bool(*f)(void *handle, ViewLayer *vl, Depsgraph *depsgraph)) |
GPU Context | |
| void | RE_system_gpu_context_ensure (Render *re) |
| void | RE_system_gpu_context_free (Render *re) |
| void * | RE_system_gpu_context_get (Render *re) |
| void * | RE_blender_gpu_context_ensure (Render *re) |
| void | RE_blender_gpu_context_free (Render *re) |
Render & Composite Scenes (Implementation & Public API) | |
Main high-level functions defined here are: | |
| static void | render_result_disprect_to_full_resolution (Render *re) |
| static void | render_result_uncrop (Render *re) |
| static void | do_render_engine (Render *re) |
| static void | do_render_compositor_scene (Render *re, Scene *sce, int cfra) |
| static Scene * | get_scene_referenced_by_node (const bNode *node) |
| static bool | compositor_needs_render (Scene *scene) |
| static bool | node_tree_has_composite_output (const bNodeTree *node_tree) |
| static void | do_render_compositor_scenes (Render *re) |
| static void | render_compositor_stats (void *arg, const char *str) |
| static void | do_render_compositor (Render *re) |
| static void | renderresult_set_passes_metadata (Render *re) |
| static void | renderresult_stampinfo (Render *re) |
| bool | RE_seq_render_active (Scene *scene, RenderData *rd) |
| static void | do_render_sequencer (Render *re) |
| static void | do_render_full_pipeline (Render *re) |
| static bool | check_valid_compositing_camera (Scene *scene, Object *camera_override, ReportList *reports) |
| static bool | check_valid_camera_multiview (Scene *scene, Object *camera, ReportList *reports) |
| static int | check_valid_camera (Scene *scene, Object *camera_override, ReportList *reports) |
| static bool | node_tree_has_any_compositor_output (const bNodeTree *ntree) |
| static int | check_compositor_output (Scene *scene) |
| static bool | is_compositing_possible_on_gpu (Scene *scene, ReportList *reports) |
| bool | RE_is_rendering_allowed (Scene *scene, ViewLayer *single_layer, Object *camera_override, ReportList *reports) |
| static void | update_physics_cache (Render *re, Scene *scene, ViewLayer *view_layer, const bool) |
| void | RE_SetActiveRenderView (Render *re, const char *viewname) |
| const char * | RE_GetActiveRenderView (Render *re) |
| static bool | render_init_from_main (Render *re, const RenderData *rd, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, const bool anim, const bool anim_init) |
| void | RE_SetReports (Render *re, ReportList *reports) |
| static void | render_update_depsgraph (Render *re) |
| static void | render_init_depsgraph (Render *re) |
| static void | render_pipeline_free (Render *re) |
| void | RE_RenderFrame (Render *re, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, const int frame, const float subframe, const bool write_still) |
Read/Write Render Result (Images & Movies) | |
| bool | RE_WriteRenderViewsMovie (ReportList *reports, RenderResult *rr, Scene *scene, RenderData *rd, bMovieHandle *mh, void **movie_ctx_arr, const int totvideos, bool preview) |
| static void | get_videos_dimensions (const Render *re, const RenderData *rd, size_t *r_width, size_t *r_height) |
| static void | re_movie_free_all (Render *re, bMovieHandle *mh, int totvideos) |
| void | RE_RenderAnim (Render *re, Main *bmain, Scene *scene, ViewLayer *single_layer, Object *camera_override, int sfra, int efra, int tfra) |
| void | RE_PreviewRender (Render *re, Main *bmain, Scene *sce) |
| bool | RE_ReadRenderResult (Scene *scene, Scene *scenode) |
| void | RE_layer_load_from_file (RenderLayer *layer, ReportList *reports, const char *filepath, int x, int y) |
| void | RE_result_load_from_file (RenderResult *result, ReportList *reports, const char *filepath) |
| bool | RE_layers_have_name (RenderResult *result) |
| bool | RE_passes_have_name (RenderLayer *rl) |
| RenderPass * | RE_pass_find_by_name (RenderLayer *rl, const char *name, const char *viewname) |
| RenderPass * | RE_pass_find_by_type (RenderLayer *rl, int passtype, const char *viewname) |
| RenderPass * | RE_create_gp_pass (RenderResult *rr, const char *layername, const char *viewname) |
Miscellaneous Public Render API | |
| bool | RE_allow_render_generic_object (Object *ob) |
| void | RE_init_threadcount (Render *re) |
Variables | ||
Globals | ||
| struct { | ||
| std::forward_list< Render * > render_list | ||
| blender::Map< std::string, Render * > interactive_compositor_renders | ||
| } | RenderGlobal | |
| #define CHECK_PASS | ( | NAME | ) |
Referenced by RE_pass_find_by_type().
| #define MAX_SCENE_RENDER_NAME (MAX_ID_NAME + 1024 + 2) |
Definition at line 543 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_GetSceneRender(), RE_NewInteractiveCompositorRender(), and RE_NewSceneRender().
Definition at line 1754 of file source/blender/render/intern/pipeline.cc.
References node_tree_has_any_compositor_output().
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1694 of file source/blender/render/intern/pipeline.cc.
References BKE_view_layer_camera_find(), BKE_view_layer_default_render(), check_valid_camera_multiview(), check_valid_compositing_camera(), LISTBASE_FOREACH, RE_seq_render_active(), scene, SEQ_SCENE_STRIPS, SEQ_TYPE_SCENE, and Sequence::seqbase.
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1656 of file source/blender/render/intern/pipeline.cc.
References BKE_camera_multiview_render(), BKE_reportf(), BKE_scene_multiview_is_render_view_active(), BLI_str_endswith(), Object::id, LISTBASE_FOREACH, ID::name, R_MULTIVIEW, RPT_ERROR, and SCE_VIEWS_FORMAT_MULTIVIEW.
Referenced by check_valid_camera().
|
static |
Definition at line 1622 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), BKE_view_layer_camera_find(), BKE_view_layer_default_render(), Scene::camera, Scene::id, ID::name, NODE_MUTED, R_DOCOMP, RPT_ERROR, and scene.
Referenced by check_valid_camera().
|
static |
Definition at line 1204 of file source/blender/render/intern/pipeline.cc.
References get_scene_referenced_by_node(), and R_DOCOMP.
Referenced by do_render_compositor().
|
static |
Definition at line 180 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 189 of file source/blender/render/intern/pipeline.cc.
References G.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 1305 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::cfra, RenderStats::cfra, compositor_needs_render(), Render::display_update(), Render::disprect, do_render_compositor_scenes(), do_render_engine(), Render::flag, Render::i, LISTBASE_FOREACH, RenderData::mode, node_tree_has_composite_output(), Scene::nodetree, ntreeCompositExecTree(), ntreeCompositTagRender(), Render::pipeline_scene_eval, Render::prh, Render::progress_cb, Render::r, R_CROP, R_DOCOMP, R_SINGLE_LAYER, R_SKIP_WRITE, render_compositor_stats(), render_get_single_layer(), render_result_disprect_to_full_resolution(), render_result_free(), render_result_new(), render_result_single_layer_end(), RenderResult::renlay, BaseRender::result, BaseRender::resultmutex, RR_ALL_LAYERS, RR_ALL_VIEWS, bNodeTree::runtime, blender::realtime_compositor::RenderContext::save_file_outputs(), RenderData::scemode, Render::scene, Render::tbh, Render::test_break(), Render::test_break_cb, THREAD_LOCK_WRITE, Scene::use_nodes, and RenderResult::views.
Referenced by do_render_full_pipeline().
Definition at line 1144 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BKE_scene_camera_switch_update(), RenderData::cfra, Render::current_scene_update_cb, Render::display_update_cb, Render::disprect, do_render_engine(), Render::duh, Render::main, Render::r, Scene::r, R_EXR_CACHE_FILE, RE_InitState(), RE_NewSceneRender(), RenderData::scemode, Render::scene, Render::sdh, Render::stats_draw_cb, Render::suh, Render::tbh, Render::test_break_cb, Scene::view_layers, Render::winx, and Render::winy.
Referenced by do_render_compositor_scenes().
|
static |
Definition at line 1252 of file source/blender/render/intern/pipeline.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), RenderData::cfra, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), Render::current_scene_update(), do_render_compositor_scene(), get_scene_referenced_by_node(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), Scene::nodetree, Scene::r, render_scene_has_layers_to_render(), and Render::scene.
Referenced by do_render_compositor().
|
static |
Definition at line 1122 of file source/blender/render/intern/pipeline.cc.
References BKE_report(), Render::current_scene_update(), G, RE_engine_render(), RE_GetCamera(), RE_SetCamera(), render_result_uncrop(), Render::reports, RPT_ERROR, and Render::scene.
Referenced by do_render_compositor(), and do_render_compositor_scene().
|
static |
Definition at line 1569 of file source/blender/render/intern/pipeline.cc.
References BKE_image_all_free_anim_ibufs(), BKE_render_result_stamp_info(), BKE_scene_camera_switch_update(), BLI_time_now_seconds(), RenderData::cfra, Render::current_scene_update_cb, DEG_get_evaluated_object(), Render::display_update(), do_render_compositor(), do_render_sequencer(), Render::i, RenderStats::lastframetime, Render::main, Render::pipeline_depsgraph, Render::r, Scene::r, R_STAMP_ALL, R_STAMP_DRAW, R_STAMP_STRIPMETA, RE_engine_render(), RE_GetCamera(), RE_seq_render_active(), renderresult_set_passes_metadata(), renderresult_stampinfo(), BaseRender::result, Render::scene, SEQ_cache_cleanup(), RenderData::stamp, RenderStats::starttime, Render::stats_draw(), Render::suh, and Render::test_break().
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 1457 of file source/blender/render/intern/pipeline.cc.
References BKE_render_result_stamp_info(), BKE_scene_multiview_num_views_get(), BKE_stamp_info_from_imbuf(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::cfra, RenderStats::cfra, Render::display_update(), Scene::ed, RenderData::efra, Render::i, IMB_dupImBuf(), IMB_freeImBuf(), IMB_metadata_copy(), Render::main, RenderData::mode, RenderView::name, Render::pipeline_depsgraph, Render::pipeline_scene_eval, Render::progress(), Render::r, Scene::r, R_BORDER, R_CROP, R_DOSEQ, R_STAMP_STRIPMETA, RE_render_result_rect_from_ibuf(), RE_RenderViewGetById(), RE_SetActiveRenderView(), RenderResult::rectx, RenderResult::recty, render_result_rect_fill_zero(), render_result_views_new(), BaseRender::result, BaseRender::resultmutex, RenderData::scemode, Render::scene, SEQ_relations_free_imbuf(), SEQ_render_give_ibuf(), SEQ_render_imbuf_from_sequencer_space(), SEQ_render_new_render_data(), SEQ_RENDER_SIZE_SCENE, Editing::seqbase, RenderData::sfra, RenderData::stamp, THREAD_LOCK_WRITE, Render::winx, and Render::winy.
Referenced by do_render_full_pipeline().
|
static |
Definition at line 2232 of file source/blender/render/intern/pipeline.cc.
References BKE_CB_EVT_RENDER_STATS, BKE_image_path_from_imformat(), BKE_image_render_write(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BLI_time_now_seconds(), BLI_timecode_string_from_time_simple(), RenderData::engine, FILE_MAX, RenderEngineType::flag, G, G_MAIN, Render::i, RenderStats::lastframetime, Render::movie_ctx_arr, printf, Render::r, R_EXTENSION, RE_AcquireResultImageViews(), RE_engines_find(), RE_ReleaseResultImageViews(), RE_USE_NO_IMAGE_SAVE, RE_USE_POSTPROCESS, RE_WriteRenderViewsMovie(), render_callback_exec_string(), Render::reports, RenderStats::starttime, and STRNCPY.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 188 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
Definition at line 1183 of file source/blender/render/intern/pipeline.cc.
References CMP_NODE_CRYPTOMATTE_SOURCE_RENDER, and NODE_MUTED.
Referenced by compositor_needs_render(), and do_render_compositor_scenes().
|
static |
Definition at line 2309 of file source/blender/render/intern/pipeline.cc.
References BKE_scene_multiview_videos_dimensions_get(), RenderData::mode, Render::r, R_BORDER, R_CROP, Render::rectx, Render::recty, Render::winx, and Render::winy.
Referenced by RE_RenderAnim().
|
static |
Definition at line 1761 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BKE_report(), GPU_max_texture_size(), RPT_ERROR, and SCE_COMPOSITOR_DEVICE_GPU.
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1736 of file source/blender/render/intern/pipeline.cc.
References ELEM, NODE_CUSTOM_GROUP, NODE_GROUP, and node_tree_has_any_compositor_output().
Referenced by check_compositor_output(), and node_tree_has_any_compositor_output().
|
static |
Returns true if the node tree has a composite output node.
Definition at line 1229 of file source/blender/render/intern/pipeline.cc.
References ELEM, NODE_CUSTOM_GROUP, NODE_DO_OUTPUT, NODE_GROUP, NODE_MUTED, node_tree, and node_tree_has_composite_output().
Referenced by do_render_compositor(), and node_tree_has_composite_output().
|
static |
Definition at line 181 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
| void RE_AcquireResultImage | ( | struct Render * | re, |
| struct RenderResult * | rr, | ||
| int | view_id ) |
Fill provided result struct with what's currently active or done. This RenderResult struct is the only exception to the rule of a RenderResult always having at least one RenderView.
Definition at line 444 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), Render::disprect, RenderResult::have_combined, RenderResult::ibuf, RenderView::ibuf, RenderResult::layers, RenderView::name, RE_PASSNAME_COMBINED, RE_RenderLayerGetPassImBuf(), RE_RenderViewGetById(), RenderResult::rectx, RenderResult::recty, render_get_single_layer(), BaseRender::result, BaseRender::resultmutex, RenderResult::stamp_data, THREAD_LOCK_READ, RenderResult::views, rcti::xmin, RenderResult::xof, rcti::ymin, and RenderResult::yof.
Referenced by image_get_render_result(), renderresult_stampinfo(), and seq_render_scene_strip().
| void RE_AcquireResultImageViews | ( | struct Render * | re, |
| struct RenderResult * | rr ) |
Same as RE_AcquireResultImage but creating the necessary views to store the result fill provided result struct with a copy of thew views of what is done so far the RenderResult.views ListBase needs to be freed after with RE_ReleaseResultImageViews
Definition at line 395 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), Render::disprect, ListBase::first, RenderResult::have_combined, RenderView::ibuf, RenderResult::layers, LISTBASE_FOREACH, RenderLayer::name, RE_PASSNAME_COMBINED, RE_RenderLayerGetPassImBuf(), RenderResult::rectx, RenderResult::recty, render_get_single_layer(), render_result_views_shallowcopy(), BaseRender::result, BaseRender::resultmutex, RenderResult::stamp_data, THREAD_LOCK_READ, RenderResult::views, rcti::xmin, RenderResult::xof, rcti::ymin, and RenderResult::yof.
Referenced by do_write_image_or_movie(), ed_preview_draw_rect(), and RE_ResultGet32().
| RenderResult * RE_AcquireResultRead | ( | struct Render * | re | ) |
If you want to know exactly what has been done.
Definition at line 335 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), BaseRender::result, BaseRender::resultmutex, and THREAD_LOCK_READ.
Referenced by BKE_image_acquire_renderresult(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::compute_render_domain(), blender::compositor::CompositorOperation::determine_canvas(), blender::compositor::RenderLayersProg::determine_canvas(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_input_texture(), blender::compositor::RenderLayersProg::get_meta_data(), image_renderinfo_cb(), blender::compositor::RenderLayersProg::init_execution(), blender::ed::space_node::node_preview_acquire_ibuf(), blender::render::Context::populate_meta_data_for_pass(), RE_engine_pass_by_index_get(), RE_engine_set_error_message(), render_image_restore_layer(), render_image_update_pass_and_layer(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_render_write(), and screen_render_exec().
| RenderResult * RE_AcquireResultWrite | ( | Render * | re | ) |
Definition at line 345 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), render_result_passes_allocated_ensure(), BaseRender::result, BaseRender::resultmutex, and THREAD_LOCK_WRITE.
Referenced by blender::compositor::CompositorOperation::deinit_execution(), blender::render::Context::output_to_render_result(), re_gpu_texture_caches_free(), screen_opengl_views_setup(), and shader_preview_texture().
| bool RE_allow_render_generic_object | ( | Object * | ob | ) |
Definition at line 2902 of file source/blender/render/intern/pipeline.cc.
References OB_DUPLI, OB_DUPLIPARTS, and Object::transflag.
Referenced by clean_viewport_memory_base().
| void * RE_blender_gpu_context_ensure | ( | Render * | re | ) |
Definition at line 1030 of file source/blender/render/intern/pipeline.cc.
References Render::blender_gpu_context, GPU_context_create(), and Render::system_gpu_context.
Referenced by DRW_render_context_disable(), DRW_render_context_enable(), and blender::render::RealtimeCompositor::execute().
| void RE_blender_gpu_context_free | ( | Render * | re | ) |
Definition at line 1038 of file source/blender/render/intern/pipeline.cc.
References Render::blender_gpu_context, GPU_context_active_set(), GPU_context_discard(), Render::system_gpu_context, and WM_system_gpu_context_activate().
Referenced by RE_FreeUnusedGPUResources(), render_pipeline_free(), and Render::~Render().
| void RE_ClearResult | ( | Render * | re | ) |
Definition at line 356 of file source/blender/render/intern/pipeline.cc.
References render_result_free(), BaseRender::result, and Render::result_has_gpu_texture_caches.
Referenced by BKE_image_clear_renderslot(), and blender::ed::space_node::preview_render().
| RenderPass * RE_create_gp_pass | ( | struct RenderResult * | rr, |
| const char * | layername, | ||
| const char * | viewname ) |
Add passes for grease pencil. Create a render-layer and render-pass for grease-pencil layer.
Definition at line 2872 of file source/blender/render/intern/pipeline.cc.
References BLI_addtail(), BLI_freelinkN(), RenderPass::ibuf, IMB_freeImBuf(), RenderResult::layers, RenderLayer::layflag, RenderLayer::name, RenderLayer::passes, RenderLayer::passflag, RE_GetRenderLayer(), RE_pass_find_by_name(), RE_PASSNAME_COMBINED, RenderLayer::rectx, RenderResult::rectx, RenderLayer::recty, RenderResult::recty, render_layer_add_pass(), SCE_LAY_SOLID, SCE_PASS_COMBINED, and STRNCPY.
| void RE_current_scene_update_cb | ( | Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, Scene *scene) ) |
Definition at line 951 of file source/blender/render/intern/pipeline.cc.
References Render::current_scene_update_cb, and Render::suh.
Referenced by screen_render_invoke().
| void RE_display_clear_cb | ( | Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, RenderResult *rr) ) |
Definition at line 939 of file source/blender/render/intern/pipeline.cc.
References Render::dch, and Render::display_clear_cb.
| void RE_display_init_cb | ( | struct Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, RenderResult *rr) ) |
Image and movie output has to move to either ImBuf or kernel.
Definition at line 934 of file source/blender/render/intern/pipeline.cc.
References Render::dih, and Render::display_init_cb.
| void RE_display_update_cb | ( | Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, RenderResult *rr, rcti *rect) ) |
Definition at line 944 of file source/blender/render/intern/pipeline.cc.
References Render::display_update_cb, and Render::duh.
Referenced by blender::ed::space_node::preview_render(), screen_render_invoke(), and shader_preview_render().
Definition at line 967 of file source/blender/render/intern/pipeline.cc.
References Render::dlh, and Render::draw_lock_cb.
Referenced by screen_render_exec(), and screen_render_invoke().
|
static |
Definition at line 750 of file source/blender/render/intern/pipeline.cc.
References BaseRender::engine, RenderEngine::flag, RE_engine_free(), and RE_ENGINE_RENDERING.
Referenced by RE_FreePersistentData().
| void RE_FreeAllPersistentData | ( | void | ) |
On file load or changes engines, free persistent render data. Assumes no engines are currently rendering.
Definition at line 644 of file source/blender/render/intern/pipeline.cc.
References BLI_assert, RE_engine_free(), RE_ENGINE_RENDERING, and RenderGlobal.
Referenced by setup_app_data().
| void RE_FreeAllRender | ( | void | ) |
Only called on exit.
Definition at line 615 of file source/blender/render/intern/pipeline.cc.
References FRS_exit(), RE_FreeRender(), and RenderGlobal.
Referenced by WM_exit_ex().
| void RE_FreeAllRenderResults | ( | void | ) |
On file load, free render results.
Definition at line 632 of file source/blender/render/intern/pipeline.cc.
References render_result_free(), and RenderGlobal.
Referenced by setup_app_data().
| void RE_FreeGPUTextureCaches | ( | void | ) |
Free cached GPU textures to reduce memory usage.
Definition at line 673 of file source/blender/render/intern/pipeline.cc.
References re_gpu_texture_caches_free(), and RenderGlobal.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
| void RE_FreePersistentData | ( | const Scene * | scene | ) |
Definition at line 760 of file source/blender/render/intern/pipeline.cc.
References re_free_persistent_data(), RE_GetSceneRender(), and RenderGlobal.
Referenced by ED_render_engine_changed(), and engine_depsgraph_init().
| void RE_FreeRender | ( | struct Render * | re | ) |
Use free render as signal to do everything over (previews).
Only call this while you know it will remove the link too.
Definition at line 603 of file source/blender/render/intern/pipeline.cc.
References RenderGlobal.
Referenced by FRS_do_stroke_rendering(), RE_FreeAllRender(), and blender::ed::space_node::NestedTreePreviews::~NestedTreePreviews().
| void RE_FreeRenderResult | ( | struct RenderResult * | rr | ) |
Get results and statistics.
Definition at line 252 of file source/blender/render/intern/pipeline.cc.
References render_result_free().
Referenced by BKE_image_clear_renderslot(), BKE_image_free_buffers_ex(), BKE_image_release_renderresult(), BKE_image_remove_renderslot(), image_free_data(), image_load_sequence_multilayer(), render_result_exr_file_cache_read(), render_result_single_layer_begin(), render_result_single_layer_end(), schedule_write_result(), write_result(), and blender::realtime_compositor::FileOutput::~FileOutput().
| void RE_FreeUnusedGPUResources | ( | void | ) |
Free cached GPU textures, contexts and compositor to reduce memory usage, when nothing in the UI requires them anymore.
Definition at line 680 of file source/blender/render/intern/pipeline.cc.
References BLI_assert, BLI_thread_is_main(), G_MAIN, IMA_SRC_VIEWER, SpaceImage::image, LISTBASE_FOREACH, SpaceNode::nodetree, RE_blender_gpu_context_free(), RE_GetSceneRender(), re_gpu_texture_caches_free(), RE_system_gpu_context_free(), RenderGlobal, SCE_COMPOSITOR_DEVICE_GPU, Image::source, SPACE_IMAGE, SPACE_NODE, wmWindowManager::windows, WM_JOB_TYPE_COMPOSITE, WM_JOB_TYPE_RENDER, WM_jobs_test(), WM_window_get_active_scene(), and WM_window_get_active_screen().
Referenced by wm_event_do_notifiers().
| void RE_FreeViewRender | ( | ViewRender * | view_render | ) |
Definition at line 610 of file source/blender/render/intern/pipeline.cc.
Referenced by DRW_engine_external_free().
| const char * RE_GetActiveRenderView | ( | Render * | re | ) |
Definition at line 1863 of file source/blender/render/intern/pipeline.cc.
References Render::viewname.
Referenced by eevee_render_to_image(), GPENCIL_render_init(), GPENCIL_render_to_image(), image_rect_update(), RE_engine_active_view_get(), screen_opengl_render_doit(), and workbench_render_to_image().
| Render * RE_GetRender | ( | const char * | name | ) |
Definition at line 323 of file source/blender/render/intern/pipeline.cc.
References RE_MAXNAME, RenderGlobal, and STREQLEN.
Referenced by ed_preview_draw_rect(), RE_GetSceneRender(), RE_NewRender(), and shader_preview_render().
| RenderLayer * RE_GetRenderLayer | ( | RenderResult * | rr, |
| const char * | name ) |
Definition at line 269 of file source/blender/render/intern/pipeline.cc.
References BLI_findstring(), RenderResult::layers, and offsetof.
Referenced by blender::compositor::RenderLayersProg::determine_canvas(), DRW_render_gpencil(), eyedropper_cryptomatte_sample_render_fl(), FRS_composite_result(), blender::ed::space_node::get_image_from_viewlayer_and_pass(), blender::render::Context::get_input_texture(), blender::compositor::RenderLayersProg::get_meta_data(), blender::compositor::RenderLayersProg::init_execution(), prepare(), RE_create_gp_pass(), RE_engine_pass_by_index_get(), render_get_single_layer(), render_result_clone_passes(), render_result_merge(), and render_result_single_layer_end().
Definition at line 380 of file source/blender/render/intern/pipeline.cc.
References Render::scene.
Definition at line 555 of file source/blender/render/intern/pipeline.cc.
References MAX_SCENE_RENDER_NAME, RE_GetRender(), and scene_render_name_get().
Referenced by BKE_image_acquire_renderresult(), BKE_image_backup_render(), BKE_image_clear_renderslot(), BKE_image_release_renderresult(), BKE_image_remove_renderslot(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::compute_render_domain(), blender::compositor::RenderLayersNode::convert_to_operations(), blender::compositor::CompositorOperation::deinit_execution(), blender::compositor::CompositorOperation::determine_canvas(), blender::compositor::RenderLayersProg::determine_canvas(), draw_render_info(), DRW_engine_external_acquire_for_image_editor(), external_draw_scene_do_image(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_input_texture(), blender::compositor::RenderLayersProg::get_meta_data(), image_get_render_result(), blender::compositor::RenderLayersProg::init_execution(), MOD_lineart_compute_feature_lines_v3(), blender::render::Context::output_to_render_result(), blender::render::Context::populate_meta_data_for_pass(), RE_FreePersistentData(), RE_FreeUnusedGPUResources(), RE_ReadRenderResult(), render_border_exec(), seq_render_scene_strip(), and stampdata().
| RenderStats * RE_GetStats | ( | Render * | re | ) |
Definition at line 511 of file source/blender/render/intern/pipeline.cc.
References Render::i.
Referenced by stampdata().
|
static |
Definition at line 655 of file source/blender/render/intern/pipeline.cc.
References Render::compositor, RE_AcquireResultWrite(), RE_compositor_free(), RE_ReleaseResult(), render_result_free_gpu_texture_caches(), and Render::result_has_gpu_texture_caches.
Referenced by RE_FreeGPUTextureCaches(), and RE_FreeUnusedGPUResources().
| bool RE_HasSingleLayer | ( | Render * | re | ) |
Definition at line 279 of file source/blender/render/intern/pipeline.cc.
References Render::r, R_SINGLE_LAYER, and RenderData::scemode.
Referenced by render_image_restore_layer().
|
static |
Definition at line 782 of file source/blender/render/intern/pipeline.cc.
References BLI_rcti_size_x(), BLI_rcti_size_y(), RenderData::border, Render::disprect, RenderData::mode, Render::r, R_BORDER, Render::rectx, Render::recty, Render::winx, Render::winy, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rcti::ymax, rctf::ymin, and rcti::ymin.
Referenced by RE_InitState().
| void RE_init_threadcount | ( | Render * | re | ) |
Set the render threads based on the command-line and auto-threads setting.
Definition at line 2914 of file source/blender/render/intern/pipeline.cc.
References BKE_render_num_threads(), Render::r, and RenderData::threads.
Referenced by RE_InitState().
| void RE_InitRenderCB | ( | struct Render * | re | ) |
Called for new renders and when finishing rendering so we always have valid callbacks on a render.
Definition at line 582 of file source/blender/render/intern/pipeline.cc.
References current_scene_nothing(), Render::current_scene_update_cb, Render::dch, default_break(), Render::dih, Render::display_clear_cb, Render::display_init_cb, Render::display_update_cb, Render::dlh, Render::draw_lock_cb, Render::duh, float_nothing(), G, Render::prepare_viewlayer_cb, prepare_viewlayer_nothing(), Render::prh, Render::progress_cb, result_nothing(), result_rcti_nothing(), Render::sdh, stats_background(), Render::stats_draw_cb, stats_nothing(), Render::tbh, and Render::test_break_cb.
Referenced by RE_NewInteractiveCompositorRender(), RE_NewRender(), and render_endjob().
| void RE_InitState | ( | struct Render * | re, |
| struct Render * | source, | ||
| struct RenderData * | rd, | ||
| struct ListBase * | render_layers, | ||
| struct ViewLayer * | single_layer, | ||
| int | winx, | ||
| int | winy, | ||
| const rcti * | disprect ) |
Obligatory initialize call, doesn't change during entire render sequence.
| disprect | is optional. if NULL it assumes full window render. |
Definition at line 828 of file source/blender/render/intern/pipeline.cc.
References BKE_imtype_is_movie(), BKE_report(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), BLI_time_now_seconds(), RenderData::border, ListBase::first, Render::i, RenderData::im_format, ImageFormatData::imtype, RenderResult::layers, LISTBASE_FOREACH, RenderData::mode, ViewLayer::name, Render::ok, Render::r, R_BORDER, R_BUTS_PREVIEW, R_CROP, R_EDGE_FRS, R_SINGLE_LAYER, re_init_resolution(), RE_init_threadcount(), RE_point_density_fix_linking(), Render::rectx, RenderResult::rectx, Render::recty, RenderResult::recty, render_copy_renderdata(), render_result_free(), render_result_view_new(), Render::reports, BaseRender::result, BaseRender::resultmutex, RPT_ERROR, RenderData::scemode, Render::single_view_layer, RenderData::size, RenderStats::starttime, STREQ, STRNCPY, THREAD_LOCK_WRITE, rctf::xmax, rctf::xmin, RenderData::xsch, rctf::ymax, rctf::ymin, and RenderData::ysch.
Referenced by do_render_compositor_scene(), RE_PreviewRender(), RE_ReadRenderResult(), render_init_from_main(), screen_opengl_render_init(), and shader_preview_texture().
| bool RE_is_rendering_allowed | ( | Scene * | scene, |
| ViewLayer * | single_layer, | ||
| Object * | camera_override, | ||
| ReportList * | reports ) |
Definition at line 1783 of file source/blender/render/intern/pipeline.cc.
References BKE_report(), check_compositor_output(), check_valid_camera(), is_compositing_possible_on_gpu(), R_BORDER, R_DOCOMP, RE_seq_render_active(), render_scene_has_layers_to_render(), and RPT_ERROR.
Referenced by screen_render_invoke().
| void RE_layer_load_from_file | ( | struct RenderLayer * | layer, |
| struct ReportList * | reports, | ||
| const char * | filepath, | ||
| int | x, | ||
| int | y ) |
Loads in image into a result, size must match x/y offsets are only used on a partial copy when dimensions don't match.
Definition at line 2713 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IB_rect, IB_rectfloat, RenderPass::ibuf, IMB_allocImBuf(), IMB_float_from_rect(), IMB_freeImBuf(), IMB_loadiffname(), IMB_rectcpy(), RenderPass::name, RenderPass::next, RE_PASSNAME_COMBINED, render_result_exr_file_read_path(), RPT_ERROR, STREQ, ImBuf::x, and ImBuf::y.
| bool RE_layers_have_name | ( | struct RenderResult * | result | ) |
Used in the interface to decide whether to show layers or passes.
Definition at line 2796 of file source/blender/render/intern/pipeline.cc.
References BLI_listbase_count_at_most().
Referenced by uiblock_layer_pass_buttons().
|
static |
Definition at line 2333 of file source/blender/render/intern/pipeline.cc.
References bMovieHandle::context_free, bMovieHandle::end_movie, MEM_SAFE_FREE, and Render::movie_ctx_arr.
Referenced by RE_RenderAnim().
| RenderResult * RE_MultilayerConvert | ( | void * | exrhandle, |
| const char * | colorspace, | ||
| bool | predivide, | ||
| int | rectx, | ||
| int | recty ) |
Definition at line 284 of file source/blender/render/intern/pipeline.cc.
References render_result_new_from_exr().
Definition at line 569 of file source/blender/render/intern/pipeline.cc.
References MAX_SCENE_RENDER_NAME, RE_InitRenderCB(), RenderGlobal, scene_render_name_get(), and STRNCPY.
Referenced by blender::ed::space_node::compo_initjob().
| Render * RE_NewRender | ( | const char * | name | ) |
The name is used as identifier, so elsewhere in blender the result can retrieved. Calling a new render with same name, frees automatic existing render.
Definition at line 516 of file source/blender/render/intern/pipeline.cc.
References Render::name, RE_GetRender(), RE_InitRenderCB(), RenderGlobal, and STRNCPY.
Referenced by blender::ed::space_node::preview_render(), RE_NewSceneRender(), and shader_preview_render().
Definition at line 562 of file source/blender/render/intern/pipeline.cc.
References MAX_SCENE_RENDER_NAME, RE_NewRender(), and scene_render_name_get().
Referenced by arg_handle_render_animation(), arg_handle_render_frame(), blender::ed::object::bake_init_api_data(), do_render_compositor_scene(), RE_ReadRenderResult(), Freestyle::BlenderStrokeRenderer::RenderScene(), screen_opengl_render_init(), screen_render_exec(), screen_render_invoke(), and seq_render_scene_strip().
| ViewRender * RE_NewViewRender | ( | RenderEngineType * | engine_type | ) |
Definition at line 535 of file source/blender/render/intern/pipeline.cc.
References BaseRender::engine, and RE_engine_create().
Referenced by external_draw_scene_do_v3d().
| RenderPass * RE_pass_find_by_name | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 2819 of file source/blender/render/intern/pipeline.cc.
References LISTBASE_FOREACH_BACKWARD, RenderLayer::passes, and STREQ.
Referenced by blender::ed::space_node::get_image_from_viewlayer_and_pass(), blender::render::Context::get_input_texture(), blender::compositor::RenderLayersProg::get_meta_data(), GPENCIL_render_init(), GPENCIL_render_result_combined(), GPENCIL_render_result_z(), RE_create_gp_pass(), RE_RenderLayerGetPassImBuf(), render_result_to_bake(), write_render_color_output(), and write_render_z_output().
| RenderPass * RE_pass_find_by_type | ( | struct RenderLayer * | rl, |
| int | passtype, | ||
| const char * | viewname ) |
Only provided for API compatibility, don't use this in new code!
Definition at line 2834 of file source/blender/render/intern/pipeline.cc.
References CHECK_PASS.
| bool RE_passes_have_name | ( | RenderLayer * | rl | ) |
Definition at line 2808 of file source/blender/render/intern/pipeline.cc.
References LISTBASE_FOREACH, RenderLayer::passes, and STREQ.
Referenced by uiblock_layer_pass_buttons().
| void RE_prepare_viewlayer_cb | ( | Render * | re, |
| void * | handle, | ||
| bool(* | f )(void *handle, ViewLayer *vl, Depsgraph *depsgraph) ) |
Definition at line 979 of file source/blender/render/intern/pipeline.cc.
References Render::prepare_viewlayer_cb, and Render::prepare_vl_handle.
Referenced by blender::ed::space_node::preview_render().
Main preview render call.
Definition at line 2631 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), camera, BaseRender::engine, GPU_backend_get_type(), GPU_BACKEND_NONE, GPU_render_begin(), GPU_render_end(), Render::main, Scene::r, RE_engine_free(), RE_engine_render(), RE_GetCamera(), RE_InitState(), RE_SetCamera(), Render::scene, and Scene::view_layers.
Referenced by blender::ed::space_node::preview_render(), and shader_preview_render().
Definition at line 961 of file source/blender/render/intern/pipeline.cc.
References Render::prh, and Render::progress_cb.
Referenced by blender::ed::object::bake_invoke(), and screen_render_invoke().
Only the temp file!
Definition at line 2668 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), Render::r, R_BORDER, RE_GetSceneRender(), RE_InitState(), RE_NewSceneRender(), render_result_exr_file_cache_read(), render_result_uncrop(), BaseRender::resultmutex, Render::scene, scene, THREAD_LOCK_WRITE, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by image_read_viewlayers_exec(), and blender::ed::space_node::node_read_viewlayers_exec().
| void RE_ReferenceRenderResult | ( | RenderResult * | rr | ) |
Definition at line 245 of file source/blender/render/intern/pipeline.cc.
References RenderResult::user_counter.
Referenced by BKE_image_acquire_renderresult().
| void RE_ReleaseResult | ( | Render * | re | ) |
Definition at line 373 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_unlock(), and BaseRender::resultmutex.
Referenced by BKE_image_release_renderresult(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::compute_render_domain(), blender::compositor::RenderLayersNode::convert_to_operations(), blender::compositor::CompositorOperation::deinit_execution(), blender::compositor::CompositorOperation::determine_canvas(), blender::compositor::RenderLayersProg::determine_canvas(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_input_texture(), blender::compositor::RenderLayersProg::get_meta_data(), image_renderinfo_cb(), blender::compositor::RenderLayersProg::init_execution(), blender::ed::space_node::node_release_preview_ibuf(), blender::render::Context::output_to_render_result(), blender::render::Context::populate_meta_data_for_pass(), RE_engine_pass_by_index_get(), RE_engine_set_error_message(), re_gpu_texture_caches_free(), render_image_restore_layer(), render_image_update_pass_and_layer(), screen_opengl_render_anim_step(), screen_opengl_render_apply(), screen_opengl_views_setup(), screen_render_exec(), and shader_preview_texture().
| void RE_ReleaseResultImage | ( | Render * | re | ) |
Definition at line 488 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_unlock(), and BaseRender::resultmutex.
Referenced by BKE_image_release_ibuf(), image_get_render_result(), renderresult_stampinfo(), screen_opengl_render_write(), and seq_render_scene_strip().
| void RE_ReleaseResultImageViews | ( | struct Render * | re, |
| struct RenderResult * | rr ) |
Clear temporary RenderResult struct.
Definition at line 434 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_unlock(), render_result_views_shallowdelete(), and BaseRender::resultmutex.
Referenced by do_write_image_or_movie(), ed_preview_draw_rect(), and RE_ResultGet32().
| void RE_RenderAnim | ( | struct Render * | re, |
| struct Main * | bmain, | ||
| struct Scene * | scene, | ||
| struct ViewLayer * | single_layer, | ||
| struct Object * | camera_override, | ||
| int | sfra, | ||
| int | efra, | ||
| int | tfra ) |
A version of RE_RenderFrame that saves images to disk.
Definition at line 2345 of file source/blender/render/intern/pipeline.cc.
References ADT_RECALC_ALL, BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_evaluate_animdata(), BKE_CB_EVT_RENDER_CANCEL, BKE_CB_EVT_RENDER_COMPLETE, BKE_CB_EVT_RENDER_INIT, BKE_CB_EVT_RENDER_POST, BKE_CB_EVT_RENDER_PRE, BKE_CB_EVT_RENDER_WRITE, BKE_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_movie_handle_get(), BKE_report(), BKE_scene_ctime_get(), BKE_scene_multiview_filepath_get(), BKE_scene_multiview_is_render_view_active(), BKE_scene_multiview_num_videos_get(), BKE_scene_multiview_view_id_suffix_get(), BKE_sound_reset_scene_specs(), BLI_delete(), BLI_exists(), BLI_file_ensure_parent_dir_exists(), BLI_file_size(), BLI_file_touch(), RenderData::cfra, bMovieHandle::context_create, DEG_graph_id_tag_update(), do_render_full_pipeline(), do_write_image_or_movie(), RenderData::engine, FILE_MAX, Render::flag, RenderEngineType::flag, G, get_videos_dimensions(), Scene::id, ID_RECALC_AUDIO_MUTE, RenderData::im_format, ImageFormatData::imtype, is_movie(), LISTBASE_FOREACH, Render::main, RenderData::mode, Render::movie_ctx_arr, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, printf, Render::r, R_ANIMATION, R_EXTENSION, R_IMF_VIEWS_INDIVIDUAL, R_MULTIVIEW, R_NO_OVERWRITE, R_SKIP_WRITE, R_TOUCH, RE_engines_find(), RE_FreeGPUTextureCaches(), re_movie_free_all(), RE_USE_NO_IMAGE_SAVE, RE_USE_POSTPROCESS, render_callback_exec_id(), render_init_depsgraph(), render_init_from_main(), render_pipeline_free(), render_update_depsgraph(), Render::reports, RPT_ERROR, RPT_INFO, RenderData::scemode, Render::scene, bMovieHandle::start_movie, RenderData::subframe, Render::tbh, Render::test_break_cb, and ImageFormatData::views_format.
Referenced by arg_handle_render_animation(), arg_handle_render_frame(), render_startjob(), and screen_render_exec().
| void RE_RenderFrame | ( | struct Render * | re, |
| struct Main * | bmain, | ||
| struct Scene * | scene, | ||
| struct ViewLayer * | single_layer, | ||
| struct Object * | camera_override, | ||
| int | frame, | ||
| float | subframe, | ||
| bool | write_still ) |
General Blender frame render call.
| write_still | Saves frames to disk (typically disabled). Useful for batch-operations (rendering from Python for e.g.) when an additional save action for is inconvenient. This is the default behavior for RE_RenderAnim. |
Definition at line 2002 of file source/blender/render/intern/pipeline.cc.
References BKE_CB_EVT_RENDER_CANCEL, BKE_CB_EVT_RENDER_COMPLETE, BKE_CB_EVT_RENDER_INIT, BKE_CB_EVT_RENDER_POST, BKE_CB_EVT_RENDER_PRE, BKE_CB_EVT_RENDER_WRITE, BKE_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), do_render_full_pipeline(), do_write_image_or_movie(), FILE_MAX, Render::flag, G, RenderData::im_format, ImageFormatData::imtype, Render::main, MEM_reset_peak_memory, RenderData::pic, printf, Render::r, R_EXTENSION, R_SKIP_WRITE, RE_FreeGPUTextureCaches(), render_callback_exec_id(), render_init_depsgraph(), render_init_from_main(), render_pipeline_free(), and RenderData::scemode.
Referenced by render_startjob(), screen_render_exec(), and seq_render_scene_strip().
| float * RE_RenderLayerGetPass | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 263 of file source/blender/render/intern/pipeline.cc.
References ImBufFloatBuffer::data, ImBuf::float_buffer, and RE_RenderLayerGetPassImBuf().
Referenced by FRS_composite_result(), image_buffer_rect_update(), and blender::compositor::RenderLayersProg::init_execution().
| ImBuf * RE_RenderLayerGetPassImBuf | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 257 of file source/blender/render/intern/pipeline.cc.
References RenderPass::ibuf, and RE_pass_find_by_name().
Referenced by RE_AcquireResultImage(), RE_AcquireResultImageViews(), and RE_RenderLayerGetPass().
| void RE_result_load_from_file | ( | RenderResult * | result, |
| ReportList * | reports, | ||
| const char * | filepath ) |
Definition at line 2788 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), render_result_exr_file_read_path(), and RPT_ERROR.
Caller is responsible for allocating rect in correct size!
Definition at line 495 of file source/blender/render/intern/pipeline.cc.
References BKE_scene_multiview_view_id_get(), Scene::display_settings, Render::r, RE_AcquireResultImageViews(), RE_ReleaseResultImageViews(), Render::rectx, Render::recty, render_result_rect_get_pixels(), Render::scene, Scene::view_settings, and Render::viewname.
Referenced by shader_preview_render().
| bool RE_seq_render_active | ( | Scene * | scene, |
| RenderData * | rd ) |
Definition at line 1439 of file source/blender/render/intern/pipeline.cc.
References ListBase::first, LISTBASE_FOREACH, R_DOSEQ, RenderData::scemode, SEQ_TYPE_SOUND_RAM, and Editing::seqbase.
Referenced by check_valid_camera(), do_render_full_pipeline(), RE_is_rendering_allowed(), and screen_render_invoke().
| void RE_SetActiveRenderView | ( | Render * | re, |
| const char * | viewname ) |
Definition at line 1858 of file source/blender/render/intern/pipeline.cc.
References STRNCPY, and Render::viewname.
Referenced by do_render_sequencer(), DRW_render_gpencil(), DRW_render_to_image(), RE_engine_active_view_set(), renderresult_stampinfo(), and screen_opengl_render_apply().
| void RE_SetReports | ( | struct Render * | re, |
| struct ReportList * | reports ) |
Error reporting.
Definition at line 1950 of file source/blender/render/intern/pipeline.cc.
References Render::reports.
Referenced by arg_handle_render_animation(), arg_handle_render_frame(), blender::ed::object::bake_exec(), blender::ed::object::bake_startjob(), render_startjob(), and screen_render_exec().
Definition at line 388 of file source/blender/render/intern/pipeline.cc.
References Render::scene.
Referenced by shader_preview_texture().
| void RE_stats_draw_cb | ( | Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, RenderStats *rs) ) |
Definition at line 956 of file source/blender/render/intern/pipeline.cc.
References Render::sdh, and Render::stats_draw_cb.
Referenced by screen_render_invoke().
| void RE_SwapResult | ( | Render * | re, |
| RenderResult ** | rr ) |
Definition at line 365 of file source/blender/render/intern/pipeline.cc.
References BaseRender::result.
Referenced by BKE_image_backup_render(), and BKE_image_remove_renderslot().
| void RE_system_gpu_context_ensure | ( | Render * | re | ) |
Definition at line 993 of file source/blender/render/intern/pipeline.cc.
References BLI_assert, BLI_thread_is_main(), Render::system_gpu_context, WM_system_gpu_context_create(), and wm_window_reset_drawable().
Referenced by blender::ed::space_node::compo_initjob(), and screen_render_invoke().
| void RE_system_gpu_context_free | ( | Render * | re | ) |
Definition at line 1005 of file source/blender/render/intern/pipeline.cc.
References Render::blender_gpu_context, BLI_thread_is_main(), GPU_context_active_set(), GPU_context_discard(), Render::system_gpu_context, WM_system_gpu_context_activate(), WM_system_gpu_context_dispose(), and wm_window_reset_drawable().
Referenced by RE_FreeUnusedGPUResources(), render_pipeline_free(), and Render::~Render().
| void * RE_system_gpu_context_get | ( | Render * | re | ) |
Definition at line 1025 of file source/blender/render/intern/pipeline.cc.
References Render::system_gpu_context.
Referenced by DRW_render_context_disable(), DRW_render_context_enable(), blender::render::RealtimeCompositor::execute(), and RE_engine_gpu_context_create().
| void RE_test_break_cb | ( | Render * | re, |
| void * | handle, | ||
| bool(* | f )(void *handle) ) |
Definition at line 973 of file source/blender/render/intern/pipeline.cc.
References Render::tbh, and Render::test_break_cb.
Referenced by blender::ed::object::bake_exec(), blender::ed::object::bake_invoke(), blender::ed::space_node::preview_render(), screen_render_exec(), screen_render_invoke(), and shader_preview_render().
| bool RE_WriteRenderViewsMovie | ( | ReportList * | reports, |
| RenderResult * | rr, | ||
| Scene * | scene, | ||
| RenderData * | rd, | ||
| bMovieHandle * | mh, | ||
| void ** | movie_ctx_arr, | ||
| const int | totvideos, | ||
| bool | preview ) |
Definition at line 2147 of file source/blender/render/intern/pipeline.cc.
References bMovieHandle::append_movie, BKE_image_format_free(), BKE_image_format_init_for_write(), BKE_scene_multiview_view_id_suffix_get(), BLI_assert, BLI_findstringindex(), BLI_listbase_count_at_most(), G, RenderData::im_format, IMB_colormanagement_imbuf_for_write(), IMB_freeImBuf(), IMB_stereo3d_ImBuf(), offsetof, printf, RenderData::psfra, R_IMF_VIEWS_INDIVIDUAL, R_IMF_VIEWS_STEREO_3D, RE_render_result_rect_to_ibuf(), STEREO_LEFT_NAME, STEREO_RIGHT_NAME, RenderResult::views, and ImageFormatData::views_format.
Referenced by do_write_image_or_movie(), and write_result().
Definition at line 156 of file source/blender/render/intern/pipeline.cc.
References BKE_callback_exec_id(), Render::r, R_BUTS_PREVIEW, and RenderData::scemode.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 148 of file source/blender/render/intern/pipeline.cc.
References BKE_callback_exec_string(), Render::r, R_BUTS_PREVIEW, RenderData::scemode, and str.
Referenced by do_write_image_or_movie().
|
static |
Definition at line 1293 of file source/blender/render/intern/pipeline.cc.
References Render::i, RenderStats::infostr, Render::stats_draw(), and str.
Referenced by do_render_compositor().
| void render_copy_renderdata | ( | RenderData * | to, |
| RenderData * | from ) |
Definition at line 818 of file source/blender/render/intern/pipeline.cc.
References BKE_curvemapping_copy_data(), and BKE_curvemapping_free_data().
Referenced by RE_bake_engine_set_engine_parameters(), and RE_InitState().
| RenderLayer * render_get_single_layer | ( | Render * | re, |
| RenderResult * | rr ) |
Definition at line 290 of file source/blender/render/intern/pipeline.cc.
References ListBase::first, RenderResult::layers, RE_GetRenderLayer(), and Render::single_view_layer.
Referenced by do_render_compositor(), FRS_composite_result(), RE_AcquireResultImage(), RE_AcquireResultImageViews(), and render_result_uncrop().
|
static |
Definition at line 1962 of file source/blender/render/intern/pipeline.cc.
References BKE_view_layer_default_render(), DAG_EVAL_RENDER, DEG_debug_name_set(), DEG_get_evaluated_scene(), DEG_graph_build_for_render_pipeline(), DEG_graph_new(), Render::main, Render::pipeline_depsgraph, Render::pipeline_scene_eval, render_update_depsgraph(), and Render::scene.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Evaluating scene options for general Blender render.
Definition at line 1869 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BKE_view_layer_context_active_PLACEHOLDER(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::border, Render::camera_override, Render::display_clear(), Render::display_init(), Render::disprect, Render::flag, Render::main, ntreeCompositTagRender(), Render::ok, Render::r, R_BORDER, R_SINGLE_LAYER, RE_InitState(), render_result_single_layer_begin(), BaseRender::result, BaseRender::resultmutex, Render::scene, scene, THREAD_LOCK_WRITE, update_physics_cache(), Render::viewname, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rcti::ymax, rctf::ymin, and rcti::ymin.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 1980 of file source/blender/render/intern/pipeline.cc.
References DEG_graph_free(), BaseRender::engine, Render::pipeline_depsgraph, Render::pipeline_scene_eval, RE_blender_gpu_context_free(), RE_compositor_free(), RE_engine_free(), RE_engine_use_persistent_data(), and RE_system_gpu_context_free().
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 1061 of file source/blender/render/intern/pipeline.cc.
References Render::disprect, Render::rectx, Render::recty, Render::winx, Render::winy, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by do_render_compositor(), and render_result_uncrop().
|
static |
Definition at line 1070 of file source/blender/render/intern/pipeline.cc.
References BKE_stamp_data_copy(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), Render::display_init(), Render::display_update(), Render::disprect, RenderData::mode, Render::r, R_BORDER, R_CROP, Render::rectx, Render::recty, render_get_single_layer(), render_result_clone_passes(), render_result_disprect_to_full_resolution(), render_result_free(), render_result_merge(), render_result_new(), render_result_passes_allocated_ensure(), RenderResult::renlay, BaseRender::result, BaseRender::resultmutex, RR_ALL_LAYERS, RR_ALL_VIEWS, RenderResult::stamp_data, THREAD_LOCK_WRITE, RenderResult::tilerect, RenderResult::xof, and RenderResult::yof.
Referenced by do_render_engine(), and RE_ReadRenderResult().
Definition at line 303 of file source/blender/render/intern/pipeline.cc.
References LISTBASE_FOREACH, and VIEW_LAYER_RENDER.
Referenced by do_render_compositor_scenes(), and RE_is_rendering_allowed().
|
static |
Definition at line 1955 of file source/blender/render/intern/pipeline.cc.
References BKE_scene_frame_get(), BKE_scene_update_sound(), DEG_evaluate_on_framechange(), Render::main, Render::pipeline_depsgraph, and Render::scene.
Referenced by RE_RenderAnim(), and render_init_depsgraph().
|
static |
Definition at line 1399 of file source/blender/render/intern/pipeline.cc.
References BKE_imbuf_stamp_info(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderResult::ibuf, RenderResult::layers, LISTBASE_FOREACH, LISTBASE_FOREACH_BACKWARD, BaseRender::result, BaseRender::resultmutex, and THREAD_LOCK_WRITE.
Referenced by do_render_full_pipeline().
|
static |
Definition at line 1416 of file source/blender/render/intern/pipeline.cc.
References BKE_image_stamp_buf(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, DEG_get_evaluated_object(), ImBuf::float_buffer, RenderResult::ibuf, LISTBASE_FOREACH, Render::name, Render::pipeline_depsgraph, Scene::r, R_STAMP_STRIPMETA, RE_AcquireResultImage(), RE_GetCamera(), RE_ReleaseResultImage(), RE_SetActiveRenderView(), RenderResult::rectx, RenderResult::recty, BaseRender::result, Render::scene, RenderData::stamp, RenderResult::stamp_data, and RenderResult::views.
Referenced by do_render_full_pipeline().
|
static |
Definition at line 178 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 179 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 545 of file source/blender/render/intern/pipeline.cc.
References BLI_snprintf(), and ID_IS_LINKED.
Referenced by RE_GetSceneRender(), RE_NewInteractiveCompositorRender(), and RE_NewSceneRender().
|
static |
Definition at line 194 of file source/blender/render/intern/pipeline.cc.
References BKE_callback_exec_string(), BKE_CB_EVT_RENDER_STATS, BLI_MUTEX_INITIALIZER, BLI_mutex_lock(), BLI_mutex_unlock(), BLI_sprintfN(), BLI_time_now_seconds(), BLI_timecode_string_from_time_simple(), RenderStats::cfra, G, G_MAIN, RenderStats::infostr, MEM_freeN(), MEM_get_memory_in_use, MEM_get_peak_memory, mem_in_use, mutex, RPT_, and RenderStats::starttime.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 187 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_InitRenderCB().
|
static |
Definition at line 1838 of file source/blender/render/intern/pipeline.cc.
References PTCacheBaker::anim_init, PTCacheBaker::bake, BKE_ptcache_bake(), BKE_scene_ensure_depsgraph(), PTCacheBaker::bmain, PTCacheBaker::depsgraph, Render::main, PTCacheBaker::quick_step, PTCacheBaker::render, PTCacheBaker::scene, scene, and PTCacheBaker::view_layer.
Referenced by render_init_from_main().
| blender::Map<std::string, Render *> interactive_compositor_renders |
Definition at line 139 of file source/blender/render/intern/pipeline.cc.
| std::forward_list<Render *> render_list |
Definition at line 133 of file source/blender/render/intern/pipeline.cc.
| struct { ... } RenderGlobal |