Blender V5.0
render_internal.cc File Reference
#include <cstddef>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math_base.hh"
#include "BLI_rect.h"
#include "BLI_string_utf8.h"
#include "BLI_string_utils.hh"
#include "BLI_time.h"
#include "BLI_timecode.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
#include "BKE_colortools.hh"
#include "BKE_context.hh"
#include "BKE_global.hh"
#include "BKE_image.hh"
#include "BKE_image_format.hh"
#include "BKE_layer.hh"
#include "BKE_lib_id.hh"
#include "BKE_main.hh"
#include "BKE_node_tree_update.hh"
#include "BKE_object.hh"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "BKE_screen.hh"
#include "NOD_composite.hh"
#include "DEG_depsgraph.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_render.hh"
#include "ED_screen.hh"
#include "ED_util.hh"
#include "BIF_glutil.hh"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "IMB_colormanagement.hh"
#include "IMB_imbuf_types.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "SEQ_relations.hh"
#include "render_intern.hh"

Go to the source code of this file.

Classes

struct  RenderJob

Functions

static bool render_break (void *rjv)
static bool image_buffer_calc_tile_rect (const RenderResult *rr, const ImBuf *ibuf, rcti *renrect, rcti *r_ibuf_rect, int *r_offset_x, int *r_offset_y)
static void image_buffer_rect_update (RenderJob *rj, RenderResult *rr, ImBuf *ibuf, ImageUser *iuser, const rcti *tile_rect, int offset_x, int offset_y, const char *viewname)
static void screen_render_single_layer_set (wmOperator *op, Main *mainp, ViewLayer *active_layer, Scene **scene, ViewLayer **single_layer)
static bool render_operator_has_custom_frame_range (wmOperator *render_operator)
static void get_render_operator_frame_range (wmOperator *render_operator, const Scene *scene, int &frame_start, int &frame_end)
static wmOperatorStatus screen_render_exec (bContext *C, wmOperator *op)
static void render_freejob (void *rjv)
static void make_renderinfo_string (const RenderStats *rs, const Scene *scene, const bool v3d_override, const char *error, char ret[IMA_MAX_RENDER_TEXT_SIZE])
static void image_renderinfo_cb (void *rjv, RenderStats *rs)
static void render_progress_update (void *rjv, float progress)
static void render_image_update_pass_and_layer (RenderJob *rj, RenderResult *rr, ImageUser *iuser)
static void image_rect_update (void *rjv, RenderResult *rr, rcti *renrect)
static void current_scene_update (void *rjv, Scene *scene)
static void render_startjob (void *rjv, wmJobWorkerStatus *worker_status)
static void render_image_restore_scene_and_layer (RenderJob *rj)
static void render_endjob (void *rjv)
static bool render_breakjob (void *rjv)
static void render_drawlock (void *rjv, bool lock)
static wmOperatorStatus screen_render_modal (bContext *C, wmOperator *op, const wmEvent *event)
static void screen_render_cancel (bContext *C, wmOperator *op)
static void clean_viewport_memory_base (Base *base)
static void clean_viewport_memory (Main *bmain, Scene *scene)
static wmOperatorStatus screen_render_invoke (bContext *C, wmOperator *op, const wmEvent *event)
static std::string screen_render_get_description (bContext *, wmOperatorType *, PointerRNA *ptr)
void RENDER_OT_render (wmOperatorType *ot)
static RenderJobBaserender_job_get (const bContext *C)
SceneED_render_job_get_scene (const bContext *C)
SceneED_render_job_get_current_scene (const bContext *C)
static wmOperatorStatus render_shutter_curve_preset_exec (bContext *C, wmOperator *op)
void RENDER_OT_shutter_curve_preset (wmOperatorType *ot)

Function Documentation

◆ clean_viewport_memory()

◆ clean_viewport_memory_base()

◆ current_scene_update()

void current_scene_update ( void * rjv,
Scene * scene )
static

◆ ED_render_job_get_current_scene()

Scene * ED_render_job_get_current_scene ( const bContext * C)

◆ ED_render_job_get_scene()

Scene * ED_render_job_get_scene ( const bContext * C)

Definition at line 1335 of file render_internal.cc.

References C, render_job_get(), and RenderJobBase::scene.

Referenced by draw_render_info().

◆ get_render_operator_frame_range()

void get_render_operator_frame_range ( wmOperator * render_operator,
const Scene * scene,
int & frame_start,
int & frame_end )
static

◆ image_buffer_calc_tile_rect()

bool image_buffer_calc_tile_rect ( const RenderResult * rr,
const ImBuf * ibuf,
rcti * renrect,
rcti * r_ibuf_rect,
int * r_offset_x,
int * r_offset_y )
static

◆ image_buffer_rect_update()

◆ image_rect_update()

◆ image_renderinfo_cb()

◆ make_renderinfo_string()

◆ render_break()

bool render_break ( void * )
static

For exec() when there is no render job NOTE: this won't check for the escape key being pressed, but doing so isn't thread-safe.

Definition at line 923 of file render_internal.cc.

References G.

Referenced by screen_render_exec().

◆ render_breakjob()

bool render_breakjob ( void * rjv)
static

Definition at line 906 of file render_internal.cc.

References G, and RenderJob::stop.

Referenced by screen_render_invoke().

◆ render_drawlock()

void render_drawlock ( void * rjv,
bool lock )
static

◆ render_endjob()

◆ render_freejob()

void render_freejob ( void * rjv)
static

◆ render_image_restore_scene_and_layer()

◆ render_image_update_pass_and_layer()

◆ render_job_get()

◆ render_operator_has_custom_frame_range()

bool render_operator_has_custom_frame_range ( wmOperator * render_operator)
static

Definition at line 300 of file render_internal.cc.

References wmOperator::ptr, and RNA_struct_property_is_set().

Referenced by screen_render_exec(), and screen_render_invoke().

◆ RENDER_OT_render()

◆ RENDER_OT_shutter_curve_preset()

◆ render_progress_update()

void render_progress_update ( void * rjv,
float progress )
static

Definition at line 590 of file render_internal.cc.

References RenderJob::do_update, and RenderJob::progress.

Referenced by screen_render_invoke().

◆ render_shutter_curve_preset_exec()

◆ render_startjob()

◆ screen_render_cancel()

void screen_render_cancel ( bContext * C,
wmOperator * op )
static

◆ screen_render_exec()

◆ screen_render_get_description()

std::string screen_render_get_description ( bContext * ,
wmOperatorType * ,
PointerRNA * ptr )
static

Definition at line 1222 of file render_internal.cc.

References ptr, RNA_boolean_get(), and TIP_.

Referenced by RENDER_OT_render().

◆ screen_render_invoke()

wmOperatorStatus screen_render_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

Definition at line 1012 of file render_internal.cc.

References RenderJob::anim, RenderJob::area, BKE_color_managed_display_settings_copy(), BKE_color_managed_view_settings_copy(), BKE_image_backup_render(), BKE_image_ensure_viewer(), BKE_image_signal(), BKE_imtype_is_movie(), BKE_report(), BKE_view_layer_default_render(), C, blender::seq::cache_cleanup(), Scene::camera, RenderJob::camera_override, clean_viewport_memory(), CTX_data_main(), CTX_data_scene(), CTX_data_sequencer_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_screen(), CTX_wm_view3d(), CTX_wm_window(), RenderJobBase::current_scene, current_scene_update(), wmOperator::customdata, RenderJob::display_settings, Scene::display_settings, ED_editors_flush_edits_ex(), ED_screen_animation_play(), ED_screen_animation_playing(), RenderData::engine, ListBase::first, RenderJob::frame_end, RenderJob::frame_start, G, get_render_operator_frame_range(), RenderData::im_format, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, RenderJob::image, image_rect_update(), image_renderinfo_cb(), ImageFormatData::imtype, RenderJob::interface_locked, RenderJob::iuser, SpaceImage::iuser, RenderJob::last_layer, ImageUser::layer, RenderJob::main, name, NC_SCENE, ND_RENDER_RESULT, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, RenderJob::orig_layer, wmOperator::ptr, Scene::r, R_DOSEQ, RenderJob::re, RE_current_scene_update_cb(), RE_display_ensure_gpu_context(), RE_display_init(), RE_display_update_cb(), RE_draw_lock_cb(), RE_engines_find(), RE_is_rendering_allowed(), RE_NewSceneRender(), RE_progress_cb(), RE_seq_render_active(), RE_stats_draw_cb(), RE_test_break_cb(), REGION_DRAW_LOCK_RENDER, blender::seq::relations_check_scene_recursion(), RenderEngineType::render, render_breakjob(), render_drawlock(), render_endjob(), render_freejob(), render_operator_has_custom_frame_range(), render_progress_update(), render_startjob(), render_view_open(), RenderJob::reports, wmOperator::reports, RNA_boolean_get(), RNA_struct_property_is_set(), RPT_, RPT_ERROR, RenderData::scemode, ImageUser::scene, RenderJobBase::scene, screen_render_single_layer_set(), RenderJob::single_layer, ScrArea::spacedata, RenderData::use_lock_interface, RenderJob::use_sequencer_scene, V3D_CAMERA_LOCAL, RenderJob::v3d_override, RenderJob::view_layer, RenderJob::view_settings, Scene::view_settings, WM_cursor_wait(), WM_event_add_modal_handler(), WM_event_add_notifier(), WM_JOB_EXCL_RENDER, WM_JOB_PRIORITY, WM_JOB_PROGRESS, WM_JOB_TYPE_RENDER, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_delay_start(), WM_jobs_get(), WM_jobs_kill_all_except(), WM_jobs_start(), WM_jobs_test(), WM_jobs_timer(), WM_locked_interface_set_with_flags(), RenderJob::write_still, and wmEvent::xy.

Referenced by RENDER_OT_render().

◆ screen_render_modal()

wmOperatorStatus screen_render_modal ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ screen_render_single_layer_set()

void screen_render_single_layer_set ( wmOperator * op,
Main * mainp,
ViewLayer * active_layer,
Scene ** scene,
ViewLayer ** single_layer )
static