|
Blender V5.0
|
#include <fmt/format.h>#include <cerrno>#include <cstddef>#include <cstdlib>#include <cstring>#include <forward_list>#include <memory>#include "DNA_anim_types.h"#include "DNA_image_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_sequence_types.h"#include "DNA_space_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_mutex.hh"#include "BLI_rect.h"#include "BLI_set.hh"#include "BLI_string_utf8.h"#include "BLI_threads.h"#include "BLI_time.h"#include "BLI_timecode.h"#include "BLI_vector.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_legacy_types.hh"#include "BKE_node_runtime.hh"#include "BKE_pointcache.h"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_sound.h"#include "NOD_composite.hh"#include "COM_compositor.hh"#include "COM_context.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 "MOV_write.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"#include "CLG_log.h"Go to the source code of this file.
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, const int totvideos, const char *filepath_override) |
| static void | result_rcti_nothing (void *, RenderResult *, rcti *) |
| static void | current_scene_nothing (void *, Scene *) |
| 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 (ExrHandle *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) |
Public Render API | |
| Render * | RE_GetRender (const void *owner) |
| RenderResult * | RE_AcquireResultRead (Render *re) |
| RenderResult * | RE_AcquireResultWrite (Render *re) |
| void | RE_ClearResult (Render *re) |
| void | RE_SwapResult (Render *re, RenderResult **rr) |
| void | RE_ReleaseResult (Render *re) |
| Scene * | RE_GetScene (Render *re) |
| void | RE_SetScene (Render *re, Scene *sce) |
| void | RE_AcquireResultImageViews (Render *re, RenderResult *rr) |
| void | RE_ReleaseResultImageViews (Render *re, RenderResult *rr) |
| void | RE_AcquireResultImage (Render *re, RenderResult *rr, const int view_id) |
| void | RE_ReleaseResultImage (Render *re) |
| void | RE_ResultGet32 (Render *re, uint *rect) |
| bool | RE_ResultIsMultiView (RenderResult *rr) |
| RenderStats * | RE_GetStats (Render *re) |
| Render * | RE_NewRender (const void *owner) |
| ViewRender * | RE_NewViewRender (RenderEngineType *engine_type) |
| Render * | RE_GetSceneRender (const Scene *scene) |
| Render * | RE_NewSceneRender (const Scene *scene) |
| Render * | RE_NewInteractiveCompositorRender (const Scene *scene) |
| void | RE_FreeRender (Render *re) |
| void | RE_FreeViewRender (ViewRender *view_render) |
| void | RE_FreeAllRender () |
| void | RE_FreeInteractiveCompositorRenders () |
| void | RE_FreeAllRenderResults () |
| void | RE_FreeAllPersistentData () |
| static void | re_gpu_texture_caches_free (Render *re) |
| void | RE_FreeGPUTextureCaches () |
| void | RE_FreeUnusedGPUResources () |
| static void | re_free_persistent_data (Render *re) |
| void | RE_FreePersistentData (const Scene *scene) |
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_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)) |
Display and GPU context | |
| void | RE_display_init (Render *re) |
| void | RE_display_ensure_gpu_context (Render *re) |
| void | RE_display_share (Render *re, const Render *parent_re) |
| void | RE_display_free (Render *re) |
| void * | RE_system_gpu_context_get (Render *re) |
| void * | RE_blender_gpu_context_ensure (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_group_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 bool | seq_result_needs_float (const ImageFormatData &im_format) |
| static ImBuf * | seq_process_render_image (ImBuf *src, const ImageFormatData &im_format, const Scene *scene) |
| 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_file_output (const bNodeTree *node_tree) |
| static bool | scene_has_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, MovieWriter **movie_writers, const int totvideos, bool preview) |
| static void | get_videos_dimensions (const Render *re, const RenderData *rd, const ImageFormatData *imf, size_t *r_width, size_t *r_height) |
| static void | re_movie_free_all (Render *re) |
| static void | touch_file (const char *filepath) |
| 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_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 | |
| static CLG_LogRef | LOG = {"render"} |
Globals | |
| struct { | |
| std::forward_list< Render * > render_list | |
| blender::Map< const void *, Render * > interactive_compositor_renders | |
| } | RenderGlobal |
|
static |
Definition at line 1659 of file source/blender/render/intern/pipeline.cc.
References BKE_view_layer_camera_find(), BKE_view_layer_default_render(), Scene::camera, check_valid_camera_multiview(), check_valid_compositing_camera(), Scene::ed, LISTBASE_FOREACH, Scene::r, RE_seq_render_active(), SEQ_SCENE_STRIPS, Editing::seqbase, and STRIP_TYPE_SCENE.
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1621 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, Scene::id, LISTBASE_FOREACH, ID::name, Node::name, Scene::r, R_MULTIVIEW, RPT_ERROR, SCE_VIEWS_FORMAT_MULTIVIEW, RenderData::scemode, RenderData::views, and RenderData::views_format.
Referenced by check_valid_camera().
|
static |
Definition at line 1587 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), BKE_view_layer_camera_find(), BKE_view_layer_default_render(), Scene::camera, CMP_NODE_R_LAYERS, Scene::compositing_node_group, Scene::id, ID::name, Scene::r, R_DOCOMP, RPT_ERROR, and RenderData::scemode.
Referenced by check_valid_camera().
|
static |
Definition at line 1136 of file source/blender/render/intern/pipeline.cc.
References Scene::compositing_node_group, get_scene_referenced_by_node(), Scene::r, R_DOCOMP, and RenderData::scemode.
Referenced by do_render_compositor().
|
static |
Definition at line 182 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_display_init().
|
static |
Definition at line 185 of file source/blender/render/intern/pipeline.cc.
References G.
Referenced by RE_display_init().
|
static |
Definition at line 1228 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::cfra, RenderStats::cfra, CLOG_STR_INFO, COM_execute(), blender::compositor::Composite, Scene::compositing_node_group, compositor_needs_render(), BaseRender::display, Render::disprect, do_render_compositor_scenes(), do_render_engine(), blender::compositor::FileOutput, Render::flag, G, Render::i, blender::compositor::RenderContext::is_animation_render, LISTBASE_FOREACH, LOG, RenderData::mode, node_tree_has_group_output(), Render::pipeline_scene_eval, blender::compositor::Previews, Render::r, R_ANIMATION, 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::compositor::RenderContext::save_file_outputs(), RenderData::scemode, THREAD_LOCK_WRITE, blender::compositor::Viewer, and RenderResult::views.
Referenced by do_render_full_pipeline().
Definition at line 1082 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BKE_scene_camera_switch_update(), RenderData::cfra, Render::disprect, do_render_engine(), Render::main, Render::r, Scene::r, R_EXR_CACHE_FILE, RE_display_free(), RE_display_share(), RE_InitState(), RE_NewSceneRender(), RenderData::scemode, Render::scene, Scene::view_layers, Render::winx, and Render::winy.
Referenced by do_render_compositor_scenes().
|
static |
Definition at line 1175 of file source/blender/render/intern/pipeline.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), RenderData::cfra, Scene::compositing_node_group, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), BaseRender::display, do_render_compositor_scene(), get_scene_referenced_by_node(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), Scene::r, render_scene_has_layers_to_render(), and Render::scene.
Referenced by do_render_compositor().
|
static |
Definition at line 1060 of file source/blender/render/intern/pipeline.cc.
References BKE_report(), BaseRender::display, 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 1534 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(), blender::seq::cache_cleanup(), RenderData::cfra, DEG_get_evaluated(), BaseRender::display, 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, RenderData::stamp, and RenderStats::starttime.
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 1429 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, CLOG_STR_INFO, BaseRender::display, Scene::ed, RenderData::efra, Render::i, RenderData::im_format, IMB_freeImBuf(), LOG, Render::main, RenderData::mode, RenderView::name, out, Render::pipeline_depsgraph, Render::pipeline_scene_eval, 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, blender::seq::relations_free_imbuf(), render_result_rect_fill_zero(), render_result_views_new(), BaseRender::result, BaseRender::resultmutex, RenderData::scemode, Render::scene, seq_process_render_image(), 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 2210 of file source/blender/render/intern/pipeline.cc.
References BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), BKE_CB_EVT_RENDER_STATS, BKE_image_path_from_imformat(), BKE_image_render_write(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_report_path_template_errors(), BLI_time_now_seconds(), BLI_timecode_string_from_time_simple(), RenderData::cfra, CLG_LEVEL_INFO, CLOG_CHECK, CLOG_STR_INFO, Vector< T, InlineBufferCapacity, Allocator >::data(), RenderData::engine, FILE_MAX, RenderEngineType::flag, G_MAIN, Render::i, Scene::id, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), RenderStats::lastframetime, LOG, Render::movie_writers, RenderData::pic, Render::r, Scene::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, RPT_ERROR, RenderData::scemode, RenderStats::starttime, and STRNCPY().
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 184 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_display_init().
Definition at line 1115 of file source/blender/render/intern/pipeline.cc.
References CMP_NODE_CRYPTOMATTE, CMP_NODE_CRYPTOMATTE_SOURCE_RENDER, CMP_NODE_R_LAYERS, bNode::custom1, bNode::id, and bNode::type_legacy.
Referenced by compositor_needs_render(), and do_render_compositor_scenes().
|
static |
Definition at line 2296 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 1734 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BKE_report(), RenderData::compositor_device, GPU_is_safe_texture_size(), Scene::r, RPT_ERROR, and SCE_COMPOSITOR_DEVICE_GPU.
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1702 of file source/blender/render/intern/pipeline.cc.
References node_tree_has_file_output().
Referenced by node_tree_has_file_output(), and scene_has_compositor_output().
|
static |
Returns true if the node tree has a group output node.
Definition at line 1158 of file source/blender/render/intern/pipeline.cc.
References NODE_DO_OUTPUT.
Referenced by do_render_compositor(), and scene_has_compositor_output().
| 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 418 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), copy_v2_v2_db(), Render::disprect, RenderResult::have_combined, RenderResult::ibuf, RenderView::ibuf, RenderResult::layers, RenderView::name, RenderResult::ppm, 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 blender::seq::seq_render_scene_strip_ex().
| 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 367 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_lock(), copy_v2_v2_db(), Render::disprect, ListBase::first, RenderResult::have_combined, RenderView::ibuf, RenderResult::layers, LISTBASE_FOREACH, RenderResult::ppm, 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 307 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(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_pass(), blender::render::Context::get_render_size(), image_renderinfo_cb(), 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_scene_and_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 317 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::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 2871 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 981 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display, and RenderDisplay::ensure_blender_gpu_context().
Referenced by DRW_render_context_disable(), DRW_render_context_enable(), and blender::render::Compositor::execute().
| void RE_ClearResult | ( | Render * | re | ) |
Definition at line 328 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 2841 of file source/blender/render/intern/pipeline.cc.
References BLI_addtail(), BLI_freelinkN(), RenderPass::ibuf, IMB_freeImBuf(), RenderResult::layers, RenderLayer::layflag, MEM_callocN(), 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 893 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
Referenced by screen_render_invoke().
| void RE_display_ensure_gpu_context | ( | Render * | re | ) |
Definition at line 952 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
Referenced by blender::ed::space_node::compo_initjob(), and screen_render_invoke().
| void RE_display_free | ( | Render * | re | ) |
Definition at line 969 of file source/blender/render/intern/pipeline.cc.
References RE_display_init().
Referenced by do_render_compositor_scene(), RE_FreeUnusedGPUResources(), render_endjob(), render_pipeline_free(), and blender::seq::seq_render_scene_strip_ex().
| void RE_display_init | ( | Render * | re | ) |
Display, event callbacks and GPU contexts
Definition at line 935 of file source/blender/render/intern/pipeline.cc.
References current_scene_nothing(), default_break(), BaseRender::display, BaseRender::display_shared, float_nothing(), G, result_rcti_nothing(), stats_background(), and stats_nothing().
Referenced by RE_display_free(), RE_NewRender(), and screen_render_invoke().
Definition at line 957 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display, and BaseRender::display_shared.
Referenced by do_render_compositor_scene(), and blender::seq::seq_render_scene_strip_ex().
| void RE_display_update_cb | ( | Render * | re, |
| void * | handle, | ||
| void(* | f )(void *handle, RenderResult *rr, rcti *rect) ) |
Definition at line 886 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
Referenced by blender::ed::space_node::preview_render(), screen_render_invoke(), and shader_preview_render().
Definition at line 909 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display, and lock.
Referenced by screen_render_exec(), and screen_render_invoke().
|
static |
Definition at line 703 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 591 of file source/blender/render/intern/pipeline.cc.
References BLI_assert, BaseRender::engine, RenderEngine::flag, RE_engine_free(), RE_ENGINE_RENDERING, and RenderGlobal.
Referenced by setup_app_data(), and wm_set_working_color_space_exec().
| void RE_FreeAllRender | ( | void | ) |
Only called on exit.
Definition at line 557 of file source/blender/render/intern/pipeline.cc.
References FRS_exit(), RE_FreeInteractiveCompositorRenders(), RE_FreeRender(), and RenderGlobal.
Referenced by WM_exit_ex().
| void RE_FreeAllRenderResults | ( | void | ) |
On file load, free render results.
Definition at line 579 of file source/blender/render/intern/pipeline.cc.
References Render::pushedresult, render_result_free(), RenderGlobal, BaseRender::result, and Render::result_has_gpu_texture_caches.
Referenced by setup_app_data(), and wm_set_working_color_space_exec().
| void RE_FreeGPUTextureCaches | ( | void | ) |
Free cached GPU textures to reduce memory usage.
Definition at line 620 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_FreeInteractiveCompositorRenders | ( | void | ) |
On file load, free all interactive compositor renders.
Definition at line 571 of file source/blender/render/intern/pipeline.cc.
References RE_FreeRender(), and RenderGlobal.
Referenced by RE_FreeAllRender(), setup_app_data(), and wm_set_working_color_space_exec().
| void RE_FreePersistentData | ( | const Scene * | scene | ) |
Definition at line 713 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 545 of file source/blender/render/intern/pipeline.cc.
References RenderGlobal.
Referenced by FRS_do_stroke_rendering(), RE_FreeAllRender(), RE_FreeInteractiveCompositorRenders(), and blender::ed::space_node::NestedTreePreviews::~NestedTreePreviews().
| void RE_FreeRenderResult | ( | struct RenderResult * | rr | ) |
Get results and statistics.
Definition at line 224 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(), blender::bke::cryptomatte::tests::TEST(), write_result(), and blender::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 627 of file source/blender/render/intern/pipeline.cc.
References bScreen::areabase, BLI_assert, BLI_thread_is_main(), Scene::compositing_node_group, RenderData::compositor_device, BaseRender::display_shared, G_MAIN, IMA_SRC_VIEWER, SpaceImage::image, LISTBASE_FOREACH, SpaceNode::nodetree, Render::owner, Scene::r, RE_display_free(), re_gpu_texture_caches_free(), RenderGlobal, SCE_COMPOSITOR_DEVICE_GPU, Image::source, SPACE_IMAGE, SPACE_NODE, SpaceLink::spacetype, 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 552 of file source/blender/render/intern/pipeline.cc.
Referenced by DRW_engine_external_free().
| const char * RE_GetActiveRenderView | ( | Render * | re | ) |
Definition at line 1826 of file source/blender/render/intern/pipeline.cc.
References Render::viewname.
Referenced by eevee_render(), image_rect_update(), RE_engine_active_view_get(), blender::draw::gpencil::render_init_buffers(), blender::draw::gpencil::Engine::render_to_image(), screen_opengl_render_doit(), and workbench_render_to_image().
| Render * RE_GetRender | ( | const void * | owner | ) |
Definition at line 295 of file source/blender/render/intern/pipeline.cc.
References Render::owner, and RenderGlobal.
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 241 of file source/blender/render/intern/pipeline.cc.
References BLI_findstring(), RenderResult::layers, name, and offsetof.
Referenced by 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_pass(), 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 352 of file source/blender/render/intern/pipeline.cc.
References Render::scene.
Definition at line 524 of file source/blender/render/intern/pipeline.cc.
References DEG_get_original_id(), Scene::id, and RE_GetRender().
Referenced by BKE_image_acquire_renderresult(), BKE_image_backup_render(), BKE_image_clear_renderslot(), BKE_image_release_renderresult(), BKE_image_remove_renderslot(), draw_render_info(), DRW_engine_external_acquire_for_image_editor(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_pass(), blender::render::Context::get_render_size(), image_get_render_result(), MOD_lineart_compute_feature_lines_v3(), blender::render::Context::output_to_render_result(), blender::render::Context::populate_meta_data_for_pass(), RE_FreePersistentData(), RE_ReadRenderResult(), render_border_exec(), blender::seq::seq_render_scene_strip_ex(), stampdata(), and ui_imageuser_slot_menu().
| RenderStats * RE_GetStats | ( | Render * | re | ) |
Definition at line 493 of file source/blender/render/intern/pipeline.cc.
References Render::i.
Referenced by stampdata().
|
static |
Definition at line 602 of file source/blender/render/intern/pipeline.cc.
References Render::compositor, RE_AcquireResultWrite(), RE_compositor_free(), RE_ReleaseResult(), render_result_free_gpu_texture_caches(), result, and Render::result_has_gpu_texture_caches.
Referenced by RE_FreeGPUTextureCaches(), and RE_FreeUnusedGPUResources().
| bool RE_HasSingleLayer | ( | Render * | re | ) |
Definition at line 251 of file source/blender/render/intern/pipeline.cc.
References Render::r, R_SINGLE_LAYER, and RenderData::scemode.
Referenced by render_image_restore_scene_and_layer().
|
static |
Definition at line 735 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 2883 of file source/blender/render/intern/pipeline.cc.
References BKE_render_num_threads(), Render::r, and RenderData::threads.
Referenced by RE_InitState().
| 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 781 of file source/blender/render/intern/pipeline.cc.
References BKE_imtype_is_movie(), BKE_report(), BKE_scene_ppm_get(), 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, MEM_callocN(), RenderData::mode, ViewLayer::name, Render::ok, RenderResult::ppm, Render::r, R_BORDER, R_BUTS_PREVIEW, R_CROP, R_EDGE_FRS, R_SINGLE_LAYER, re_init_resolution(), RE_init_threadcount(), 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_UTF8, 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 1751 of file source/blender/render/intern/pipeline.cc.
References BKE_report(), RenderData::border, check_valid_camera(), Scene::compositing_node_group, is_compositing_possible_on_gpu(), RenderData::mode, Scene::r, R_BORDER, R_DOCOMP, RE_seq_render_active(), render_scene_has_layers_to_render(), RPT_ERROR, RenderData::scemode, scene_has_compositor_output(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.
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 2720 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ListBase::first, ImBuf::float_buffer, IB_byte_data, IB_float_data, RenderPass::ibuf, IMB_allocImBuf(), IMB_float_from_byte(), IMB_freeImBuf(), IMB_load_image_from_filepath(), IMB_rectcpy(), RenderPass::name, RenderPass::next, RenderLayer::passes, RE_PASSNAME_COMBINED, RenderLayer::rectx, RenderLayer::recty, render_result_exr_file_read_path(), RPT_ERROR, STREQ, ImBuf::x, x, ImBuf::y, and y.
| bool RE_layers_have_name | ( | struct RenderResult * | result | ) |
Used in the interface to decide whether to show layers or passes.
Definition at line 2803 of file source/blender/render/intern/pipeline.cc.
References BLI_listbase_count_at_most(), and result.
Referenced by uiblock_layer_pass_buttons().
|
static |
Definition at line 2321 of file source/blender/render/intern/pipeline.cc.
References Vector< T, InlineBufferCapacity, Allocator >::clear_and_shrink(), MOV_write_end(), and Render::movie_writers.
Referenced by RE_RenderAnim().
| RenderResult * RE_MultilayerConvert | ( | ExrHandle * | exrhandle, |
| const char * | colorspace, | ||
| bool | predivide, | ||
| int | rectx, | ||
| int | recty ) |
Definition at line 256 of file source/blender/render/intern/pipeline.cc.
References render_result_new_from_exr().
Definition at line 534 of file source/blender/render/intern/pipeline.cc.
References DEG_get_original_id(), Scene::id, Render::owner, and RenderGlobal.
Referenced by blender::ed::space_node::compo_initjob().
| Render * RE_NewRender | ( | const void * | owner | ) |
The owner is a unique identifier for the render, either an original scene datablock for regular renders, or an area for preview renders. Calling a new render with an existing owner frees the existing render.
Definition at line 498 of file source/blender/render/intern/pipeline.cc.
References Render::owner, RE_display_init(), RE_GetRender(), and RenderGlobal.
Referenced by blender::ed::space_node::preview_render(), RE_NewSceneRender(), and shader_preview_render().
Definition at line 529 of file source/blender/render/intern/pipeline.cc.
References DEG_get_original_id(), Scene::id, and RE_NewRender().
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 blender::seq::seq_render_scene_strip_ex().
| ViewRender * RE_NewViewRender | ( | RenderEngineType * | engine_type | ) |
Definition at line 517 of file source/blender/render/intern/pipeline.cc.
References BaseRender::engine, and RE_engine_create().
| RenderPass * RE_pass_find_by_name | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 2826 of file source/blender/render/intern/pipeline.cc.
References LISTBASE_FOREACH_BACKWARD, name, RenderLayer::passes, and STREQ.
Referenced by blender::ed::space_node::get_image_from_viewlayer_and_pass(), blender::render::Context::get_pass(), RE_create_gp_pass(), RE_RenderLayerGetPassImBuf(), blender::draw::gpencil::render_init_buffers(), blender::draw::gpencil::render_result_combined(), render_result_to_bake(), blender::draw::gpencil::render_result_z(), write_render_color_output(), and write_render_z_output().
| bool RE_passes_have_name | ( | RenderLayer * | rl | ) |
Definition at line 2815 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 921 of file source/blender/render/intern/pipeline.cc.
References depsgraph, Render::prepare_viewlayer_cb, and Render::prepare_vl_handle.
Referenced by blender::ed::space_node::preview_render().
Main preview render call.
Definition at line 2638 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), 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 903 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
Referenced by blender::ed::object::bake_invoke(), and screen_render_invoke().
Only the temp file!
Definition at line 2675 of file source/blender/render/intern/pipeline.cc.
References BKE_render_resolution(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), RenderData::border, RenderData::mode, Scene::r, R_BORDER, RE_GetSceneRender(), RE_InitState(), RE_NewSceneRender(), render_result_exr_file_cache_read(), render_result_uncrop(), BaseRender::resultmutex, Render::scene, THREAD_LOCK_WRITE, Scene::view_layers, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rcti::ymax, rctf::ymin, 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 217 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 345 of file source/blender/render/intern/pipeline.cc.
References BLI_rw_mutex_unlock(), and BaseRender::resultmutex.
Referenced by BKE_image_release_renderresult(), eyedropper_cryptomatte_sample_render_fl(), blender::render::Context::get_pass(), blender::render::Context::get_render_size(), image_renderinfo_cb(), 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_scene_and_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 464 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 blender::seq::seq_render_scene_strip_ex().
| void RE_ReleaseResultImageViews | ( | struct Render * | re, |
| struct RenderResult * | rr ) |
Clear temporary RenderResult struct.
Definition at line 408 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, Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), 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_format_free(), BKE_image_format_init_for_write(), BKE_image_path_from_imformat(), BKE_imtype_is_movie(), BKE_main_blendfile_path(), BKE_report(), BKE_report_path_template_errors(), 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_size(), RenderData::cfra, CLOG_INFO, DEG_graph_id_tag_update(), BaseRender::display, do_render_full_pipeline(), do_write_image_or_movie(), RenderData::engine, FILE_MAX, Render::flag, RenderEngineType::flag, G, get_videos_dimensions(), i, Scene::id, ID_RECALC_AUDIO_MUTE, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LISTBASE_FOREACH, LOG, Render::main, RenderData::mode, MOV_write_begin(), Render::movie_writers, RenderData::pic, Render::pipeline_depsgraph, Render::pipeline_scene_eval, Render::r, Scene::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, Vector< T, InlineBufferCapacity, Allocator >::reserve(), RPT_ERROR, RPT_INFO, RenderData::scemode, Render::scene, RenderData::subframe, touch_file(), RenderData::views, 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 (e.g. rendering from Python) when an additional save action for is inconvenient. This is the default behavior for RE_RenderAnim. |
Definition at line 1958 of file source/blender/render/intern/pipeline.cc.
References BKE_add_template_variables_for_render_path(), BKE_add_template_variables_general(), 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_report_path_template_errors(), RenderData::cfra, do_render_full_pipeline(), do_write_image_or_movie(), FILE_MAX, Render::flag, G, Scene::id, RenderData::im_format, ImageFormatData::imtype, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), Render::main, MEM_reset_peak_memory, RenderData::pic, printf, Scene::r, R_EXTENSION, R_SKIP_WRITE, RE_FreeGPUTextureCaches(), render_callback_exec_id(), render_init_depsgraph(), render_init_from_main(), render_pipeline_free(), Render::reports, RPT_ERROR, RenderData::scemode, and RenderData::subframe.
Referenced by render_startjob(), screen_render_exec(), and blender::seq::seq_render_scene_strip_ex().
| float * RE_RenderLayerGetPass | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 235 of file source/blender/render/intern/pipeline.cc.
References ImBufFloatBuffer::data, ImBuf::float_buffer, name, and RE_RenderLayerGetPassImBuf().
Referenced by FRS_composite_result(), image_buffer_rect_update(), and blender::draw::gpencil::Engine::render_to_image().
| ImBuf * RE_RenderLayerGetPassImBuf | ( | RenderLayer * | rl, |
| const char * | name, | ||
| const char * | viewname ) |
Definition at line 229 of file source/blender/render/intern/pipeline.cc.
References RenderPass::ibuf, name, 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 2795 of file source/blender/render/intern/pipeline.cc.
References BKE_reportf(), render_result_exr_file_read_path(), result, and RPT_ERROR.
Caller is responsible for allocating rect in correct size!
Definition at line 471 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_ResultIsMultiView | ( | RenderResult * | rr | ) |
Definition at line 487 of file source/blender/render/intern/pipeline.cc.
References ListBase::first, view, and RenderResult::views.
Referenced by BKE_image_render_write(), image_save_single(), and RE_WriteRenderViewsMovie().
| bool RE_seq_render_active | ( | Scene * | scene, |
| RenderData * | rd ) |
Definition at line 1368 of file source/blender/render/intern/pipeline.cc.
References Editing::channels, Scene::ed, ListBase::first, LISTBASE_FOREACH, R_DOSEQ, blender::seq::render_is_muted(), RenderData::scemode, Editing::seqbase, and STRIP_TYPE_SOUND_RAM.
Referenced by check_valid_camera(), do_render_full_pipeline(), RE_is_rendering_allowed(), screen_render_exec(), and screen_render_invoke().
| void RE_SetActiveRenderView | ( | Render * | re, |
| const char * | viewname ) |
Definition at line 1821 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 1907 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 360 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 898 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
Referenced by screen_render_invoke().
| void RE_SwapResult | ( | Render * | re, |
| RenderResult ** | rr ) |
Definition at line 337 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_get | ( | Render * | re | ) |
Definition at line 975 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display, and RenderDisplay::system_gpu_context.
Referenced by DRW_render_context_disable(), DRW_render_context_enable(), blender::render::Compositor::execute(), and RE_engine_gpu_context_create().
| void RE_test_break_cb | ( | Render * | re, |
| void * | handle, | ||
| bool(* | f )(void *handle) ) |
Definition at line 915 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display.
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, | ||
| MovieWriter ** | movie_writers, | ||
| const int | totvideos, | ||
| bool | preview ) |
Definition at line 2114 of file source/blender/render/intern/pipeline.cc.
References BKE_image_format_free(), BKE_image_format_init_for_write(), BKE_report(), BKE_scene_multiview_view_id_suffix_get(), BLI_assert, BLI_findstringindex(), RenderData::cfra, CLOG_INFO, RenderData::dither_intensity, i, RenderData::im_format, IMB_colormanagement_imbuf_for_write(), IMB_freeImBuf(), IMB_stereo3d_ImBuf(), LOG, MOV_write_append(), name, offsetof, RenderData::psfra, Scene::r, R_IMF_VIEWS_INDIVIDUAL, R_IMF_VIEWS_STEREO_3D, RE_render_result_rect_to_ibuf(), RE_ResultIsMultiView(), RPT_ERROR, RenderData::sfra, 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 163 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 155 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 1216 of file source/blender/render/intern/pipeline.cc.
References BaseRender::display, i, Render::i, and str.
Referenced by do_render_compositor().
| void render_copy_renderdata | ( | RenderData * | to, |
| RenderData * | from ) |
Definition at line 771 of file source/blender/render/intern/pipeline.cc.
References BKE_curvemapping_copy_data(), BKE_curvemapping_free_data(), and RenderData::mblur_shutter_curve.
Referenced by RE_bake_engine_set_engine_parameters(), and RE_InitState().
| RenderLayer * render_get_single_layer | ( | Render * | re, |
| RenderResult * | rr ) |
Definition at line 262 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 1919 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 1832 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::disprect, Render::flag, Render::main, RenderData::mode, Render::ok, Scene::r, R_BORDER, R_SINGLE_LAYER, RE_InitState(), render_result_single_layer_begin(), BaseRender::resultmutex, RenderData::scemode, Render::scene, THREAD_LOCK_WRITE, update_physics_cache(), Scene::view_layers, 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 1937 of file source/blender/render/intern/pipeline.cc.
References DEG_graph_free(), BaseRender::engine, Render::pipeline_depsgraph, Render::pipeline_scene_eval, RE_compositor_free(), RE_display_free(), RE_engine_free(), and RE_engine_use_persistent_data().
Referenced by RE_RenderAnim(), and RE_RenderFrame().
|
static |
Definition at line 1000 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 1009 of file source/blender/render/intern/pipeline.cc.
References BKE_stamp_data_copy(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), BaseRender::display, 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 275 of file source/blender/render/intern/pipeline.cc.
References LISTBASE_FOREACH, VIEW_LAYER_RENDER, and Scene::view_layers.
Referenced by do_render_compositor_scenes(), and RE_is_rendering_allowed().
|
static |
Definition at line 1912 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 1328 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 1345 of file source/blender/render/intern/pipeline.cc.
References BKE_image_stamp_buf(), DEG_get_evaluated(), RenderResult::ibuf, LISTBASE_FOREACH, Render::pipeline_depsgraph, Scene::r, R_STAMP_STRIPMETA, RE_AcquireResultImage(), RE_GetCamera(), RE_ReleaseResultImage(), RE_SetActiveRenderView(), BaseRender::result, Render::scene, RenderData::stamp, RenderResult::stamp_data, and RenderResult::views.
Referenced by do_render_full_pipeline().
|
static |
Definition at line 181 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_display_init().
|
static |
Definition at line 1724 of file source/blender/render/intern/pipeline.cc.
References Scene::compositing_node_group, node_tree_has_file_output(), and node_tree_has_group_output().
Referenced by RE_is_rendering_allowed().
|
static |
Definition at line 1392 of file source/blender/render/intern/pipeline.cc.
References ImBuf::byte_buffer, ImBuf::channels, COLOR_ROLE_SCENE_LINEAR, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_alloc_float_pixels(), IMB_allocImBuf(), IMB_colormanagement_get_rect_colorspace(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_byte_to_float(), IMB_dupImBuf(), IMB_freeImBuf(), IMB_metadata_copy(), ImBuf::planes, blender::seq::render_imbuf_from_sequencer_space(), seq_result_needs_float(), ImBuf::x, and ImBuf::y.
Referenced by do_render_sequencer().
|
static |
Definition at line 1387 of file source/blender/render/intern/pipeline.cc.
References ImageFormatData::depth, ELEM, R_IMF_CHAN_DEPTH_10, and R_IMF_CHAN_DEPTH_12.
Referenced by seq_process_render_image().
|
static |
Definition at line 190 of file source/blender/render/intern/pipeline.cc.
References BKE_callback_exec_string(), BKE_CB_EVT_RENDER_STATS, CLG_LEVEL_INFO, CLOG_CHECK, CLOG_STR_INFO, G_MAIN, RenderStats::infostr, lock, LOG, and mutex.
Referenced by RE_display_init().
|
static |
Definition at line 183 of file source/blender/render/intern/pipeline.cc.
Referenced by RE_display_init().
|
static |
Definition at line 2329 of file source/blender/render/intern/pipeline.cc.
References BLI_exists(), BLI_file_ensure_parent_dir_exists(), BLI_file_touch(), CLOG_ERROR, and LOG.
Referenced by RE_RenderAnim().
Definition at line 1801 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, and PTCacheBaker::view_layer.
Referenced by render_init_from_main().
| blender::Map<const void *, Render *> interactive_compositor_renders |
Special renders that can be used for interactive compositing, each scene has its own render, keyed with the scene name returned from #scene_render_name_get and matches the same name in render_list. Those renders are separate from standard renders because the GPU context can't be bound for compositing and rendering at the same time, so those renders are essentially used to get a persistent dedicated GPU context to interactive compositor execution.
Definition at line 146 of file source/blender/render/intern/pipeline.cc.
|
static |
Definition at line 104 of file source/blender/render/intern/pipeline.cc.
| std::forward_list<Render *> render_list |
Definition at line 138 of file source/blender/render/intern/pipeline.cc.
| struct { ... } RenderGlobal |