|
Blender
V2.93
|
#include <math.h>#include <stddef.h>#include <string.h>#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_lib_id.h"#include "BKE_main.h"#include "BKE_node.h"#include "BKE_object.h"#include "BKE_report.h"#include "BKE_scene.h"#include "BKE_screen.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.h"Go to the source code of this file.
Classes | |
| struct | RenderJob |
Typedefs | |
| typedef struct RenderJob | RenderJob |
Functions | |
| static int | render_break (void *rjv) |
| static bool | image_buffer_calc_tile_rect (const RenderResult *rr, const ImBuf *ibuf, volatile 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, volatile 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) |
| Scene * | ED_render_job_get_scene (const bContext *C) |
| Scene * | ED_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) |
Definition at line 863 of file render_internal.c.
References BKE_main_id_tag_listbase(), clean_viewport_memory_base(), ListBase::first, LIB_TAG_DOIT, LISTBASE_FOREACH, Base::next, ViewLayer::object_bases, Main::objects, scene, SETLOOPER_SET_ONLY, Main::wm, and WM_window_get_active_view_layer().
Referenced by screen_render_invoke().
|
static |
Definition at line 845 of file render_internal.c.
References BASE_VISIBLE_DEPSGRAPH, BKE_object_free_derived_caches(), Base::flag, Object::id, LIB_TAG_DOIT, Base::object, RE_allow_render_generic_object(), and ID::tag.
Referenced by clean_viewport_memory().
|
static |
Definition at line 623 of file render_internal.c.
References RenderJob::current_scene, RenderJob::iuser, scene, and ImageUser::scene.
Referenced by screen_render_invoke().
Definition at line 1147 of file render_internal.c.
References C, CTX_wm_manager(), RenderJob::current_scene, NULL, WM_JOB_TYPE_RENDER, and WM_jobs_customdata_from_type().
Definition at line 1135 of file render_internal.c.
References C, CTX_wm_manager(), NULL, RenderJob::scene, WM_JOB_TYPE_RENDER, and WM_jobs_customdata_from_type().
|
static |
Definition at line 115 of file render_internal.c.
References NULL, RenderResult::rectx, RenderResult::recty, RenderResult::renlay, RenderResult::tilerect, ImBuf::x, rcti::xmax, rcti::xmin, ImBuf::y, rcti::ymax, and rcti::ymin.
Referenced by image_rect_update().
|
static |
Definition at line 182 of file render_internal.c.
References BKE_scene_multiview_view_id_get(), BLI_rcti_size_x(), BLI_rcti_size_y(), Scene::display_settings, IB_DISPLAY_BUFFER_INVALID, IMB_partial_display_buffer_update(), Object::iuser, NULL, ImageUser::pass, Scene::r, RE_PASSNAME_COMBINED, RE_RenderLayerGetPass(), RE_RenderViewGetById(), RenderView::rect32, ImBuf::rect_float, RenderView::rectf, RenderResult::rectx, RenderResult::renlay, scene, RenderJob::scene, ImBuf::userflags, Scene::view_settings, ImBuf::x, rcti::xmin, and rcti::ymin.
Referenced by image_rect_update().
|
static |
Definition at line 563 of file render_internal.c.
References BKE_image_acquire_ibuf(), BKE_image_free_buffers, BKE_image_release_ibuf(), BKE_image_update_gputexture_delayed(), BLI_rcti_size_x(), BLI_rcti_size_y(), ImBuf::channels, RenderJob::do_update, ED_draw_imbuf_method(), RenderJob::image, image_buffer_calc_tile_rect(), image_buffer_rect_update(), IMAGE_DRAW_METHOD_GLSL, RenderJob::image_outdated, RenderJob::iuser, Image::last_render_slot, NULL, RenderJob::re, RE_GetActiveRenderView(), render_image_update_pass_and_layer(), Image::render_slot, and RenderJob::supports_glsl_draw.
Referenced by screen_render_invoke().
|
static |
Definition at line 472 of file render_internal.c.
References RenderJob::do_update, RenderResult::error, IMA_MAX_RENDER_TEXT, make_renderinfo_string(), MEM_callocN, NULL, RenderJob::re, RE_AcquireResultRead(), RE_ReleaseResult(), RenderJob::scene, RenderResult::text, and RenderJob::v3d_override.
Referenced by screen_render_invoke().
|
static |
Definition at line 393 of file render_internal.c.
References BLI_timecode_string_from_time_simple(), RenderData::cfra, error(), G, G_DEBUG, IMA_MAX_RENDER_TEXT, RenderStats::infostr, RenderStats::lastframetime, RenderStats::localview, MEM_get_memory_in_use, MEM_get_peak_memory, mem_in_use, RenderStats::mem_peak, RenderStats::mem_used, PIL_check_seconds_timer(), Scene::r, scene, RenderStats::starttime, RenderStats::statstr, str, and TIP_.
Referenced by image_renderinfo_cb().
|
static |
Referenced by screen_render_exec().
|
static |
For exec() when there is no render job note: this wont check for the escape key being pressed, but doing so isn't thread-safe.
Definition at line 798 of file render_internal.c.
References G.
|
static |
Definition at line 781 of file render_internal.c.
References G, and RenderJob::stop.
Referenced by screen_render_invoke().
|
static |
Definition at line 808 of file render_internal.c.
References BKE_spacedata_draw_locks(), and RenderJob::interface_locked.
Referenced by screen_render_invoke().
|
static |
Definition at line 700 of file render_internal.c.
References RenderJob::anim, RenderJob::area, BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_main_free(), DEG_on_visible_update(), RenderJob::depsgraph, ED_update_for_newframe(), ListBase::first, G, G_MAIN, IB_DISPLAY_BUFFER_INVALID, Scene::id, RenderJob::image, RenderJob::image_outdated, RenderJob::interface_locked, RenderJob::iuser, ListBase::last, RenderJob::main, NA_EDITED, NC_NODE, NC_SCENE, ND_RENDER_RESULT, Scene::nodetree, nodeUpdateID(), ntreeCompositClearTags(), NULL, Scene::r, R_NO_FRAME_UPDATE, RenderJob::re, RE_InitRenderCB(), render_image_restore_layer(), RenderData::scemode, RenderJob::scene, RenderJob::single_layer, ImBuf::userflags, Scene::view_layers, WM_main_add_notifier(), and WM_set_locked_interface().
Referenced by screen_render_invoke().
|
static |
Definition at line 384 of file render_internal.c.
References BKE_color_managed_view_settings_free(), MEM_freeN, and RenderJob::view_settings.
Referenced by screen_render_invoke().
|
static |
Definition at line 663 of file render_internal.c.
References blender::compositor::area(), RenderJob::area, bScreen::areabase, ListBase::first, wmWindowManager::id, SpaceImage::iuser, ImageUser::layer, LISTBASE_FOREACH, RenderJob::main, ID::next, wmWindow::next, RenderJob::orig_layer, RenderJob::re, RE_AcquireResultRead(), RE_HasCombinedLayer(), RE_HasSingleLayer(), RE_ReleaseResult(), SPACE_IMAGE, wmWindowManager::windows, Main::wm, and WM_window_get_active_screen().
Referenced by render_endjob().
|
static |
Definition at line 511 of file render_internal.c.
References blender::compositor::area(), RenderJob::area, bScreen::areabase, BLI_findstringindex(), ListBase::first, wmWindowManager::id, RenderJob::image, SpaceImage::image, Object::iuser, SpaceImage::iuser, RenderJob::last_layer, ImageUser::layer, RenderResult::layers, LISTBASE_FOREACH, RenderJob::main, Node::name, RenderLayer::name, ID::next, wmWindow::next, NULL, ImageUser::pass, RenderJob::re, RE_AcquireResultRead(), RE_ReleaseResult(), RenderResult::renlay, SPACE_IMAGE, wmWindowManager::windows, Main::wm, and WM_window_get_active_screen().
Referenced by image_rect_update().
| void RENDER_OT_render | ( | wmOperatorType * | ot | ) |
Definition at line 1081 of file render_internal.c.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_screenactive(), wmOperatorType::exec, wmOperatorType::idname, wmOperatorType::invoke, MAX_ID_NAME, wmOperatorType::modal, wmOperatorType::name, NULL, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RE_MAXNAME, RNA_def_boolean(), RNA_def_property_flag(), RNA_def_string(), screen_render_cancel(), screen_render_exec(), screen_render_invoke(), screen_render_modal(), and wmOperatorType::srna.
Referenced by ED_operatortypes_render().
| void RENDER_OT_shutter_curve_preset | ( | wmOperatorType * | ot | ) |
Definition at line 1175 of file render_internal.c.
References BLT_I18NCONTEXT_ID_CURVE, CURVE_PRESET_LINE, CURVE_PRESET_MAX, CURVE_PRESET_ROOT, CURVE_PRESET_ROUND, CURVE_PRESET_SHARP, CURVE_PRESET_SMOOTH, wmOperatorType::description, wmOperatorType::exec, wmOperatorType::idname, wmOperatorType::name, NULL, ot, render_shutter_curve_preset_exec(), RNA_def_enum(), RNA_def_property_translation_context(), and wmOperatorType::srna.
Referenced by ED_operatortypes_render().
|
static |
Definition at line 494 of file render_internal.c.
References RenderJob::do_update, and RenderJob::progress.
Referenced by screen_render_invoke().
|
static |
Definition at line 1159 of file render_internal.c.
References BKE_curvemap_reset(), BKE_curvemapping_changed(), C, CurveMapping::clipr, CurveMapping::cm, CTX_data_scene(), CUMA_EXTEND_EXTRAPOLATE, CURVEMAP_SLOPE_POS_NEG, CurveMapping::flag, RenderData::mblur_shutter_curve, OPERATOR_FINISHED, CurveMapping::preset, wmOperator::ptr, Scene::r, RNA_enum_get(), and scene.
Referenced by RENDER_OT_shutter_curve_preset().
|
static |
Definition at line 630 of file render_internal.c.
References RenderJob::anim, RenderJob::camera_override, RenderData::cfra, RenderJob::do_update, RenderData::efra, RenderData::frame_step, RenderJob::main, NULL, RenderJob::progress, Scene::r, RenderJob::re, RE_RenderAnim(), RE_RenderFrame(), RE_SetReports(), RenderJob::reports, RenderJob::scene, RenderData::sfra, RenderJob::single_layer, RenderJob::stop, and RenderJob::write_still.
Referenced by screen_render_invoke().
|
static |
Definition at line 836 of file render_internal.c.
References C, CTX_wm_manager(), wmOperator::customdata, scene, WM_JOB_TYPE_RENDER, and WM_jobs_kill_type().
Referenced by RENDER_OT_render().
|
static |
Definition at line 313 of file render_internal.c.
References BKE_image_backup_render(), BKE_image_ensure_viewer(), BKE_image_signal(), BKE_imtype_is_movie(), BKE_report(), C, RenderData::cfra, CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), ED_update_for_newframe(), RenderData::efra, RenderData::engine, RenderData::frame_step, G, RenderData::im_format, IMA_SIGNAL_FREE, IMA_TYPE_R_RESULT, ImageFormatData::imtype, NC_SCENE, ND_RENDER_RESULT, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, Scene::r, RE_draw_lock_cb(), RE_engines_find(), RE_NewSceneRender(), RE_RenderAnim(), RE_RenderFrame(), RE_SetReports(), RE_test_break_cb(), RenderEngineType::render, render_break(), wmOperator::reports, RNA_boolean_get(), RPT_ERROR, scene, screen_render_single_layer_set(), SEQ_cache_cleanup(), RenderData::sfra, V3D_CAMERA_LOCAL, and WM_event_add_notifier().
Referenced by RENDER_OT_render().
|
static |
Definition at line 888 of file render_internal.c.
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, MEM_callocN, Node::name, NC_SCENE, ND_RENDER_RESULT, NULL, ImageUser::ok, 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, wmEvent::x, and wmEvent::y.
Referenced by RENDER_OT_render().
|
static |
Definition at line 819 of file render_internal.c.
References C, CTX_wm_manager(), wmOperator::customdata, EVT_ESCKEY, if(), OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, scene, wmEvent::type, WM_JOB_TYPE_RENDER, and WM_jobs_test().
Referenced by RENDER_OT_render().
|
static |
Definition at line 276 of file render_internal.c.
References BKE_scene_camera_switch_update(), BLI_findstring(), RenderData::cfra, MAX_ID_NAME, Node::name, wmOperator::ptr, Scene::r, R_SINGLE_LAYER, RE_MAXNAME, RNA_string_get(), RNA_struct_property_is_set(), scene, and Main::scenes.
Referenced by screen_render_exec(), and screen_render_invoke().