Blender V4.3
render_internal.cc File Reference
#include <cmath>
#include <cstddef>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_string_utils.hh"
#include "BLI_threads.h"
#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 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 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_layer (RenderJob *rj)
 
static void render_endjob (void *rjv)
 
static bool render_breakjob (void *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()

◆ clean_viewport_memory_base()

◆ 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()

◆ image_rect_update()

◆ image_renderinfo_cb()

◆ make_renderinfo_string()

◆ render_break()

static 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 871 of file render_internal.cc.

References G.

Referenced by screen_render_exec().

◆ render_breakjob()

static bool render_breakjob ( void * rjv)
static

Definition at line 854 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 881 of file render_internal.cc.

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

Referenced by screen_render_invoke().

◆ render_endjob()

◆ render_freejob()

static void render_freejob ( void * rjv)
static

◆ render_image_restore_layer()

◆ render_image_update_pass_and_layer()

◆ RENDER_OT_render()

◆ RENDER_OT_shutter_curve_preset()

◆ render_progress_update()

static void render_progress_update ( void * rjv,
float progress )
static

Definition at line 547 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()

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

◆ screen_render_exec()

◆ screen_render_invoke()

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

Definition at line 964 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(), 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, ED_editors_flush_edits_ex(), ED_screen_animation_play(), ED_screen_animation_playing(), G, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, RenderJob::image, image_rect_update(), image_renderinfo_cb(), IMB_colormanagement_support_glsl_draw(), RenderJob::interface_locked, RenderJob::iuser, SpaceImage::iuser, RenderJob::last_layer, ImageUser::layer, RenderJob::main, NC_SCENE, ND_RENDER_RESULT, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, RenderJob::orig_layer, wmOperator::ptr, R_DOSEQ, RenderJob::re, RE_current_scene_update_cb(), 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_system_gpu_context_ensure(), 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, ImageUser::scene, RenderJob::scene, scene, screen_render_single_layer_set(), SEQ_relations_check_scene_recursion(), RenderJob::single_layer, RenderJob::supports_glsl_draw, V3D_CAMERA_LOCAL, RenderJob::v3d_override, RenderJob::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