Blender  V3.3
Classes | Functions
render_internal.cc File Reference
#include <cmath>
#include <cstddef>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rect.h"
#include "BLI_threads.h"
#include "BLI_timecode.h"
#include "BLI_utildefines.h"
#include "PIL_time.h"
#include "BLT_translation.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "DNA_view3d_types.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_image_format.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_node_tree_update.h"
#include "BKE_object.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "NOD_composite.h"
#include "DEG_depsgraph.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_util.h"
#include "BIF_glutil.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "SEQ_relations.h"
#include "render_intern.hh"

Go to the source code of this file.

Classes

struct  RenderJob
 

Functions

static int 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 int 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 *str)
 
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, short *stop, short *do_update, float *progress)
 
static void render_image_restore_layer (RenderJob *rj)
 
static void render_endjob (void *rjv)
 
static int render_breakjob (void *rjv)
 
static int render_break (void *UNUSED(rjv))
 
static void render_drawlock (void *rjv, bool lock)
 
static int 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 int screen_render_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void RENDER_OT_render (wmOperatorType *ot)
 
SceneED_render_job_get_scene (const bContext *C)
 
SceneED_render_job_get_current_scene (const bContext *C)
 
static int render_shutter_curve_preset_exec (bContext *C, wmOperator *op)
 
void RENDER_OT_shutter_curve_preset (wmOperatorType *ot)
 

Function Documentation

◆ clean_viewport_memory()

static void clean_viewport_memory ( Main bmain,
Scene scene 
)
static

◆ clean_viewport_memory_base()

static void clean_viewport_memory_base ( Base base)
static

◆ current_scene_update()

static 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)

◆ image_buffer_calc_tile_rect()

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

◆ image_buffer_rect_update()

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

◆ image_rect_update()

static void image_rect_update ( void rjv,
RenderResult rr,
rcti renrect 
)
static

◆ image_renderinfo_cb()

static void image_renderinfo_cb ( void rjv,
RenderStats rs 
)
static

◆ make_renderinfo_string()

static void make_renderinfo_string ( const RenderStats rs,
const Scene scene,
const bool  v3d_override,
const char *  error,
char *  str 
)
static

◆ render_break() [1/2]

static int render_break ( void rjv)
static

Referenced by screen_render_exec().

◆ render_break() [2/2]

static int render_break ( void UNUSEDrjv)
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 810 of file render_internal.cc.

References G.

◆ render_breakjob()

static int render_breakjob ( void rjv)
static

Definition at line 793 of file render_internal.cc.

References G, and RenderJob::stop.

Referenced by screen_render_invoke().

◆ render_drawlock()

static void render_drawlock ( void rjv,
bool  lock 
)
static

Definition at line 820 of file render_internal.cc.

References BKE_spacedata_draw_locks(), RenderJob::interface_locked, and lock.

Referenced by screen_render_invoke().

◆ render_endjob()

static void render_endjob ( void rjv)
static

◆ render_freejob()

static void render_freejob ( void rjv)
static

◆ render_image_restore_layer()

static void render_image_restore_layer ( RenderJob rj)
static

◆ render_image_update_pass_and_layer()

static void render_image_update_pass_and_layer ( RenderJob rj,
RenderResult rr,
ImageUser iuser 
)
static

◆ RENDER_OT_render()

void RENDER_OT_render ( struct wmOperatorType ot)

◆ RENDER_OT_shutter_curve_preset()

void RENDER_OT_shutter_curve_preset ( wmOperatorType ot)

◆ render_progress_update()

static void render_progress_update ( void rjv,
float  progress 
)
static

Definition at line 489 of file render_internal.cc.

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

Referenced by screen_render_invoke().

◆ render_shutter_curve_preset_exec()

static int render_shutter_curve_preset_exec ( bContext C,
wmOperator op 
)
static

◆ render_startjob()

static void render_startjob ( void rjv,
short *  stop,
short *  do_update,
float progress 
)
static

◆ screen_render_cancel()

static void screen_render_cancel ( bContext C,
wmOperator op 
)
static

◆ screen_render_exec()

static int screen_render_exec ( bContext C,
wmOperator op 
)
static

◆ screen_render_invoke()

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

Definition at line 901 of file render_internal.cc.

References RenderJob::anim, blender::compositor::area(), 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(), C, Scene::camera, RenderJob::camera_override, clean_viewport_memory(), CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_screen(), CTX_wm_view3d(), CTX_wm_window(), RenderJob::current_scene, current_scene_update(), wmOperator::customdata, RenderJob::depsgraph, RenderJob::display_settings, Scene::display_settings, ED_editors_flush_edits_ex(), ED_screen_animation_play(), ED_screen_animation_playing(), RenderData::engine, G, RenderData::im_format, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, RenderJob::image, image_rect_update(), image_renderinfo_cb(), IMB_colormanagement_support_glsl_draw(), ImageFormatData::imtype, RenderJob::interface_locked, RenderJob::iuser, SpaceImage::iuser, RenderJob::last_layer, ImageUser::layer, RenderJob::main, Node::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_update_cb(), RE_draw_lock_cb(), RE_engines_find(), RE_gl_context_create(), RE_is_rendering_allowed(), RE_NewSceneRender(), RE_progress_cb(), RE_seq_render_active(), RE_stats_draw_cb(), RE_test_break_cb(), RenderEngineType::render, render_breakjob(), render_drawlock(), render_endjob(), render_freejob(), render_progress_update(), render_startjob(), render_view_open(), RenderJob::reports, wmOperator::reports, RNA_boolean_get(), RNA_struct_property_is_set(), RPT_ERROR, RenderData::scemode, scene, RenderJob::scene, ImageUser::scene, screen_render_single_layer_set(), SEQ_cache_cleanup(), SEQ_relations_check_scene_recursion(), RenderJob::single_layer, RenderJob::supports_glsl_draw, RenderData::use_lock_interface, V3D_CAMERA_LOCAL, RenderJob::v3d_override, 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_set_locked_interface(), RenderJob::write_still, and wmEvent::xy.

Referenced by RENDER_OT_render().

◆ screen_render_modal()

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

◆ screen_render_single_layer_set()

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