Blender
V3.3
|
#include <time.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_defaults.h"
#include "DNA_mask_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_path_util.h"
#include "BLI_rect.h"
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_fcurve.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_mask.h"
#include "BKE_movieclip.h"
#include "BKE_scene.h"
#include "BKE_sequencer_offscreen.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_metadata.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "SEQ_channels.h"
#include "SEQ_effects.h"
#include "SEQ_iterator.h"
#include "SEQ_modifier.h"
#include "SEQ_proxy.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "SEQ_sequencer.h"
#include "SEQ_time.h"
#include "SEQ_transform.h"
#include "SEQ_utils.h"
#include "effects.h"
#include "image_cache.h"
#include "multiview.h"
#include "prefetch.h"
#include "proxy.h"
#include "render.h"
#include "strip_time.h"
#include "utils.h"
Go to the source code of this file.
Classes | |
struct | RenderEffectInitData |
struct | RenderEffectThread |
Variables | |
static ThreadMutex | seq_render_mutex = BLI_MUTEX_INITIALIZER |
SequencerDrawView | sequencer_view3d_fn = NULL |
Preprocessing & Effects | |
Input preprocessing for SEQ_TYPE_IMAGE, SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP and SEQ_TYPE_SCENE. Do all the things you can't really do afterwards using sequence effects (read: before re-scaling to render resolution has been done). Order is important!
| |
typedef struct RenderEffectInitData | RenderEffectInitData |
typedef struct RenderEffectThread | RenderEffectThread |
static bool | sequencer_use_transform (const Sequence *seq) |
static bool | sequencer_use_crop (const Sequence *seq) |
static bool | seq_input_have_to_preprocess (const SeqRenderData *context, Sequence *seq, float UNUSED(timeline_frame)) |
static bool | seq_need_scale_to_render_size (const Sequence *seq, bool is_proxy_image) |
static void | sequencer_image_crop_transform_matrix (const Sequence *seq, const ImBuf *in, const ImBuf *out, const float image_scale_factor, const float preview_scale_factor, float r_transform_matrix[4][4]) |
static void | sequencer_image_crop_init (const Sequence *seq, const ImBuf *in, float crop_scale_factor, rctf *r_crop) |
static void | sequencer_thumbnail_transform (ImBuf *in, ImBuf *out) |
static bool | seq_image_transform_transparency_gained (const SeqRenderData *context, Sequence *seq) |
static void | sequencer_preprocess_transform_crop (ImBuf *in, ImBuf *out, const SeqRenderData *context, Sequence *seq, const bool is_proxy_image) |
static void | multibuf (ImBuf *ibuf, const float fmul) |
static ImBuf * | input_preprocess (const SeqRenderData *context, Sequence *seq, float timeline_frame, ImBuf *ibuf, const bool is_proxy_image) |
static ImBuf * | seq_render_preprocess_ibuf (const SeqRenderData *context, Sequence *seq, ImBuf *ibuf, float timeline_frame, bool use_preprocess, const bool is_proxy_image) |
static void | render_effect_execute_init_handle (void *handle_v, int start_line, int tot_line, void *init_data_v) |
static void * | render_effect_execute_do_thread (void *thread_data_v) |
ImBuf * | seq_render_effect_execute_threaded (struct SeqEffectHandle *sh, const SeqRenderData *context, Sequence *seq, float timeline_frame, float fac, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3) |
static ImBuf * | seq_render_effect_strip_impl (const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float timeline_frame) |
typedef struct RenderEffectInitData RenderEffectInitData |
typedef struct RenderEffectThread RenderEffectThread |
|
static |
Used for meta-strips & scenes with SEQ_SCENE_STRIPS flag set.
Definition at line 1592 of file render.c.
References BKE_animsys_evaluate_all_animation(), BLI_listbase_is_empty(), channels(), blender::compositor::context, Sequence::flag, NULL, offset, Sequence::scene, SEQ_get_seqbase_from_sequence(), seq_render_strip_stack(), SEQ_SCENE_STRIPS, and state.
Referenced by do_render_strip_uncached().
|
static |
Definition at line 1628 of file render.c.
References BLI_linklist_index(), blender::compositor::context, do_render_strip_seqbase(), Sequence::flag, IMB_dupImBuf(), IMB_freeImBuf(), LinkNode::next, NULL, ImBuf::rect_float, Sequence::scene, SeqRenderData::scene, seq_give_frame_index(), seq_imbuf_assign_spaces(), seq_imbuf_to_sequencer_space(), seq_render_effect_strip_impl(), seq_render_image_strip(), seq_render_mask_strip(), seq_render_movie_strip(), seq_render_movieclip_strip(), seq_render_scene_strip(), SEQ_SCENE_STRIPS, SEQ_TYPE_EFFECT, SEQ_TYPE_IMAGE, SEQ_TYPE_MASK, SEQ_TYPE_META, SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_SCENE, SeqRenderData::skip_cache, state, type, and Sequence::type.
Referenced by seq_get_uncached_thumbnail(), and seq_render_strip().
|
static |
Definition at line 574 of file render.c.
References Sequence::blend_mode, Sequence::blend_opacity, blender::compositor::context, ELEM, ListBase::first, Sequence::flag, IB_rect, IB_rectfloat, IMB_allocImBuf(), IMB_filtery(), IMB_flipx(), IMB_flipy(), IMB_freeImBuf(), imb_freerectImBuf(), IMB_makeSingleUser(), IMB_metadata_copy(), IMB_saturation(), Sequence::modifiers, mul(), Sequence::mul, multibuf(), NULL, ImBuf::rect, ImBuf::rect_float, Sequence::sat, scene, SEQ_BLEND_REPLACE, SEQ_FILTERY, SEQ_FLIPX, SEQ_FLIPY, seq_imbuf_assign_spaces(), seq_imbuf_to_sequencer_space(), SEQ_MAKE_FLOAT, SEQ_modifier_apply_stack(), SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP, sequencer_preprocess_transform_crop(), sequencer_use_crop(), sequencer_use_transform(), Sequence::type, x, ImBuf::x, y, and ImBuf::y.
Referenced by seq_render_preprocess_ibuf().
Definition at line 535 of file render.c.
References Freestyle::a, ELEM, if(), min_ii(), ImBuf::planes, R_IMF_PLANES_BW, R_IMF_PLANES_RGB, R_IMF_PLANES_RGBA, ImBuf::rect, ImBuf::rect_float, ImBuf::x, and ImBuf::y.
Referenced by input_preprocess().
Definition at line 722 of file render.c.
References RenderEffectThread::context, SeqEffectHandle::execute_slice, RenderEffectThread::fac, RenderEffectThread::ibuf1, RenderEffectThread::ibuf2, RenderEffectThread::ibuf3, NULL, RenderEffectThread::out, RenderEffectThread::seq, RenderEffectThread::sh, RenderEffectThread::start_line, RenderEffectThread::timeline_frame, and RenderEffectThread::tot_line.
Referenced by seq_render_effect_execute_threaded().
|
static |
Definition at line 700 of file render.c.
References RenderEffectThread::context, RenderEffectThread::fac, RenderEffectThread::ibuf1, RenderEffectThread::ibuf2, RenderEffectThread::ibuf3, init_data(), RenderEffectThread::out, RenderEffectThread::seq, RenderEffectThread::sh, RenderEffectThread::start_line, RenderEffectThread::timeline_frame, and RenderEffectThread::tot_line.
Referenced by seq_render_effect_execute_threaded().
Definition at line 256 of file render.c.
References Freestyle::a, and usdtokens::b().
Referenced by seq_get_shown_sequences().
|
static |
Definition at line 1775 of file render.c.
References Sequence::blend_opacity, EARLY_DO_EFFECT, EARLY_NO_INPUT, SeqEffectHandle::early_out, EARLY_USE_INPUT_1, EARLY_USE_INPUT_2, ELEM, seq_effect_get_sequence_blend(), seq_must_swap_input_in_blend_mode(), and sh.
Referenced by seq_render_strip_stack().
|
static |
Definition at line 1170 of file render.c.
References BKE_movieclip_get_ibuf_flag(), BKE_movieclip_get_stable_ibuf(), Sequence::clip, Sequence::clip_flag, MovieClip::flag, MOVIECLIP_CACHE_SKIP, NULL, and SEQ_MOVIECLIP_RENDER_STABILIZED.
Referenced by seq_render_movieclip_strip().
int seq_get_shown_sequences | ( | const Scene * | scene, |
ListBase * | channels, | ||
ListBase * | seqbase, | ||
const int | timeline_frame, | ||
const int | chanshown, | ||
Sequence ** | r_seq_arr | ||
) |
Definition at line 261 of file render.c.
References BLI_assert_msg, BLI_gset_len(), channels(), MAXSEQ, scene, seq_channel_cmp_fn(), SEQ_collection_free(), SEQ_ITERATOR_FOREACH, SEQ_query_rendered_strips(), and SeqCollection::set.
Referenced by seq_prefetch_scene_strip_is_rendered(), SEQ_render_give_ibuf(), and seq_render_strip_stack().
ImBuf* SEQ_get_thumbnail | ( | const SeqRenderData * | context, |
Sequence * | seq, | ||
float | timeline_frame, | ||
rcti * | crop, | ||
bool | clipped | ||
) |
Definition at line 2072 of file render.c.
References blender::compositor::context, IMB_dupImBuf(), IMB_freeImBuf(), IMB_rect_crop(), NULL, seq_cache_get(), SEQ_CACHE_STORE_THUMBNAIL, ImBuf::x, rcti::xmax, rcti::xmin, ImBuf::y, rcti::ymax, and rcti::ymin.
Referenced by draw_seq_strip_thumbnail(), and sequencer_thumbnail_closest_from_memory().
|
static |
Definition at line 2039 of file render.c.
References blender::compositor::context, do_render_strip_uncached(), float(), IB_rect, IB_rectfloat, if(), IMB_allocImBuf(), IMB_freeImBuf(), NULL, ImBuf::rect_float, round_fl_to_int(), seq_imbuf_assign_spaces(), SEQ_RENDER_THUMB_SIZE, sequencer_thumbnail_transform(), state, ImBuf::x, and ImBuf::y.
Referenced by SEQ_render_thumbnails(), and SEQ_render_thumbnails_base_set().
|
static |
Definition at line 913 of file render.c.
References BKE_scene_multiview_view_prefix_get(), Sequence::flag, Scene::r, R_MULTIVIEW, RenderData::scemode, scene, and SEQ_USE_VIEWS.
Referenced by seq_render_image_strip().
|
static |
Definition at line 461 of file render.c.
References add_v2_v2(), blender::compositor::context, isect_point_quad_v2(), scene, SEQ_image_transform_final_quad_get(), x, and y.
Referenced by sequencer_preprocess_transform_crop().
Definition at line 88 of file render.c.
References IMB_colormanagement_assign_float_colorspace(), IMB_colormanagement_assign_rect_colorspace(), ColorManagedColorspaceSettings::name, NULL, ImBuf::rect, ImBuf::rect_float, scene, and Scene::sequencer_colorspace_settings.
Referenced by do_render_strip_uncached(), input_preprocess(), seq_get_uncached_thumbnail(), seq_imbuf_to_sequencer_space(), seq_proxy_fetch(), and seq_render_strip().
Definition at line 101 of file render.c.
References ImBuf::channels, imb_addrectfloatImBuf(), IMB_colormanagement_get_float_colorspace(), IMB_colormanagement_get_rect_colorspace(), IMB_colormanagement_transform_byte_threaded(), IMB_colormanagement_transform_from_byte_threaded(), IMB_colormanagement_transform_threaded(), imb_freerectImBuf(), ColorManagedColorspaceSettings::name, NULL, ImBuf::rect, ImBuf::rect_float, scene, seq_imbuf_assign_spaces(), Scene::sequencer_colorspace_settings, STREQ, ImBuf::x, and ImBuf::y.
Referenced by do_render_strip_uncached(), input_preprocess(), prepare_effect_imbufs(), SEQ_modifier_apply_stack(), seq_render_image_strip_view(), seq_render_movie_strip_view(), and seq_render_scene_strip().
|
static |
Definition at line 337 of file render.c.
References Sequence::blend_mode, Sequence::blend_opacity, blender::compositor::context, ListBase::first, Sequence::flag, Sequence::modifiers, mul(), Sequence::mul, Sequence::sat, SEQ_BLEND_REPLACE, SEQ_FILTERY, SEQ_FLIPX, SEQ_FLIPY, SEQ_MAKE_FLOAT, sequencer_use_crop(), and sequencer_use_transform().
Referenced by seq_render_strip().
Definition at line 1761 of file render.c.
References Sequence::blend_mode, ELEM, SEQ_TYPE_ALPHAOVER, SEQ_TYPE_ALPHAUNDER, and SEQ_TYPE_OVERDROP.
Referenced by seq_get_early_out_for_blend_mode(), and seq_render_strip_stack_apply_effect().
Effect, mask and scene in strip input strips are rendered in preview resolution. They are already down-scaled. input_preprocess() does not expect this to happen. Other strip types are rendered with original media resolution, unless proxies are enabled for them. With proxies is_proxy_image
will be set correctly to true.
Definition at line 379 of file render.c.
References Sequence::flag, SEQ_SCENE_STRIPS, SEQ_TYPE_EFFECT, SEQ_TYPE_MASK, SEQ_TYPE_META, SEQ_TYPE_SCENE, and Sequence::type.
Referenced by sequencer_preprocess_transform_crop().
ImBuf* seq_render_effect_execute_threaded | ( | struct SeqEffectHandle * | sh, |
const SeqRenderData * | context, | ||
Sequence * | seq, | ||
float | timeline_frame, | ||
float | fac, | ||
ImBuf * | ibuf1, | ||
ImBuf * | ibuf2, | ||
ImBuf * | ibuf3 | ||
) |
Definition at line 740 of file render.c.
References blender::compositor::context, IMB_processor_apply_threaded(), init_data(), usdtokens::out(), render_effect_execute_do_thread(), render_effect_execute_init_handle(), and sh.
Referenced by do_speed_effect(), seq_render_effect_strip_impl(), and seq_render_strip_stack_apply_effect().
|
static |
Definition at line 771 of file render.c.
References blender::compositor::context, EARLY_DO_EFFECT, EARLY_NO_INPUT, SeqEffectHandle::early_out, EARLY_USE_INPUT_1, EARLY_USE_INPUT_2, Sequence::effect_fader, evaluate_fcurve(), Sequence::flag, IB_rect, Scene::id, id_data_find_fcurve(), IMB_allocImBuf(), IMB_freeImBuf(), input, NULL, usdtokens::out(), scene, Sequence::seq1, Sequence::seq2, Sequence::seq3, SEQ_effect_get_num_inputs(), SEQ_effect_handle_get(), seq_render_effect_execute_threaded(), seq_render_strip(), seq_speed_effect_target_frame_get(), SEQ_TYPE_SPEED, SEQ_USE_EFFECT_DEFAULT_FADE, sh, state, and Sequence::type.
Referenced by do_render_strip_uncached().
ImBuf* SEQ_render_give_ibuf | ( | const SeqRenderData * | context, |
float | timeline_frame, | ||
int | chanshown | ||
) |
Definition at line 1925 of file render.c.
References BLI_findlink(), BLI_listbase_count(), BLI_listbase_is_empty(), BLI_mutex_lock(), BLI_mutex_unlock(), channels(), blender::compositor::context, count, Editing::displayed_channels, max_ii(), MAXSEQ, Editing::metastack, NULL, usdtokens::out(), scene, seq_cache_free_temp_cache(), seq_cache_get(), seq_cache_put(), seq_cache_put_if_possible(), SEQ_CACHE_STORE_FINAL_OUT, SEQ_editing_get(), seq_get_shown_sequences(), seq_prefetch_start(), SEQ_relations_free_all_anim_ibufs(), seq_render_mutex, seq_render_state_init(), seq_render_strip_stack(), Editing::seqbasep, and state.
Referenced by do_render_sequencer(), screen_opengl_render_apply(), seq_prefetch_frames(), and sequencer_ibuf_get().
ImBuf* SEQ_render_give_ibuf_direct | ( | const SeqRenderData * | context, |
float | timeline_frame, | ||
Sequence * | seq | ||
) |
Definition at line 1994 of file render.c.
References blender::compositor::context, seq_render_state_init(), seq_render_strip(), and state.
Referenced by sequencer_ibuf_get().
ImBuf* seq_render_give_ibuf_seqbase | ( | const SeqRenderData * | context, |
float | timeline_frame, | ||
int | chan_shown, | ||
ListBase * | channels, | ||
ListBase * | seqbasep | ||
) |
Definition at line 1982 of file render.c.
References channels(), blender::compositor::context, seq_render_state_init(), seq_render_strip_stack(), and state.
Referenced by do_adjustment_impl(), and do_multicam().
Definition at line 236 of file render.c.
References Sequence::anim_startofs, NULL, scene, seq_give_frame_index(), SEQ_TYPE_IMAGE, Sequence::strip, Strip::stripdata, and Sequence::type.
Referenced by SEQ_add_image_load_file(), seq_proxy_get_fname(), seq_render_image_strip(), sequencer_rendersize_exec(), sequencer_separate_images_exec(), and sequencer_strip_transform_fit_exec().
|
static |
Definition at line 929 of file render.c.
References BKE_main_blendfile_path_from_global(), BKE_scene_multiview_num_views_get(), BLI_join_dirfile(), BLI_path_abs(), blender::compositor::context, Strip::dir, FILE_MAX, IMB_freeImBuf(), IMB_ImBufFromStereo3d(), MEM_callocN, MEM_freeN, StripElem::name, NULL, StripElem::orig_height, StripElem::orig_width, R_IMF_VIEWS_STEREO_3D, seq_image_strip_is_multiview_render(), seq_num_files(), seq_proxy_fetch(), SEQ_render_give_stripelem(), seq_render_image_strip_view(), seq_render_preprocess_ibuf(), Sequence::stereo3d_format, Sequence::strip, SeqRenderData::view_id, Sequence::views_format, ImBuf::x, and ImBuf::y.
Referenced by do_render_strip_uncached().
|
static |
Render individual view for multi-view or single (default view) for mono-view.
Definition at line 873 of file render.c.
References Sequence::alpha_mode, BKE_scene_multiview_view_prefix_get(), Strip::colorspace_settings, blender::compositor::context, FILE_MAX, IB_alphamode_premul, IB_metadata, IB_rect, imb_freerectImBuf(), IMB_loadiffname(), ColorManagedColorspaceSettings::name, NULL, ImBuf::rect, ImBuf::rect_float, SEQ_ALPHA_PREMUL, seq_imbuf_to_sequencer_space(), seq_multiview_name(), str, and Sequence::strip.
Referenced by seq_render_image_strip().
Definition at line 167 of file render.c.
References ImBuf::channels, COLOR_ROLE_SCENE_LINEAR, IMB_colormanagement_assign_float_colorspace(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_threaded(), ColorManagedColorspaceSettings::name, ImBuf::rect_float, scene, Scene::sequencer_colorspace_settings, ImBuf::x, and ImBuf::y.
Referenced by do_render_sequencer(), and SEQ_modifier_apply_stack().
Definition at line 2199 of file render.c.
References channels(), Sequence::flag, Sequence::machine, SEQ_channel_get_by_index(), SEQ_channel_is_muted(), and SEQ_MUTE.
Referenced by collection_filter_rendered_strips(), color3ubv_from_seq(), draw_color_strip_band(), draw_seq_background(), draw_seq_text_overlay(), draw_sequence_extensions_overlay(), drawmeta_contents(), query_snap_targets(), seq_get_text_strip_cb(), SEQ_get_topmost_sequence(), SEQ_time_find_next_prev_edit(), and seq_update_muting_recursive().
ImBuf* seq_render_mask | ( | const SeqRenderData * | context, |
Mask * | mask, | ||
float | frame_index, | ||
bool | make_float | ||
) |
Definition at line 1238 of file render.c.
References ADT_RECALC_ANIM, BKE_animdata_from_id(), BKE_animsys_eval_context_construct(), BKE_animsys_evaluate_animdata(), BKE_id_copy_ex(), BKE_id_free(), BKE_mask_evaluate(), BKE_maskrasterize_buffer(), BKE_maskrasterize_handle_free(), BKE_maskrasterize_handle_init(), BKE_maskrasterize_handle_new(), blender::compositor::context, IB_rect, IB_rectfloat, Mask::id, IMB_allocImBuf(), LIB_ID_COPY_LOCALIZE, LIB_ID_COPY_NO_ANIMDATA, mask(), MEM_freeN, MEM_mallocN, NULL, ImBuf::rect, and ImBuf::rect_float.
Referenced by modifier_render_mask_input(), and seq_render_mask_strip().
|
static |
Definition at line 1322 of file render.c.
References blender::compositor::context, Sequence::flag, Sequence::mask, SEQ_MAKE_FLOAT, and seq_render_mask().
Referenced by do_render_strip_uncached().
|
static |
Definition at line 1086 of file render.c.
References StripAnim::anim, Sequence::anims, BKE_scene_multiview_num_views_get(), BLI_listbase_count_at_most(), blender::compositor::context, ListBase::first, Sequence::flag, IMB_anim_get_fps(), IMB_freeImBuf(), IMB_ImBufFromStereo3d(), MEM_callocN, MEM_freeN, StripAnim::next, NULL, StripElem::orig_fps, StripElem::orig_height, StripElem::orig_width, R_IMF_VIEWS_STEREO_3D, R_MULTIVIEW, seq_num_files(), seq_open_anim_file(), seq_render_movie_strip_view(), seq_render_preprocess_ibuf(), SEQ_USE_VIEWS, Sequence::stereo3d_format, Sequence::strip, Strip::stripdata, SeqRenderData::view_id, Sequence::views_format, ImBuf::x, and ImBuf::y.
Referenced by do_render_strip_uncached().
|
static |
Definition at line 1012 of file render.c.
References StripProxy::anim, Sequence::anim_startofs, Strip::colorspace_settings, blender::compositor::context, IB_rect, IMB_anim_absolute(), IMB_PROXY_NONE, IMB_TC_NONE, ColorManagedColorspaceSettings::name, NULL, openanim(), Strip::proxy, PROXY_MAXFILE, seq_give_frame_index(), seq_proxy_get_custom_file_fname(), and Sequence::strip.
Referenced by seq_render_movie_strip_view().
|
static |
Render individual view for multi-view or single (default view) for mono-view.
Definition at line 1036 of file render.c.
References StripAnim::anim, Sequence::anim_startofs, blender::compositor::context, IMB_anim_absolute(), imb_freerectImBuf(), IMB_PROXY_NONE, IMB_TC_RECORD_RUN, NULL, Strip::proxy, ImBuf::rect, ImBuf::rect_float, SEQ_can_use_proxy(), SEQ_EDIT_PROXY_DIR_STORAGE, seq_imbuf_to_sequencer_space(), seq_render_movie_strip_custom_file_proxy(), SEQ_rendersize_to_proxysize(), SEQ_STORAGE_PROXY_CUSTOM_FILE, StripProxy::storage, Sequence::strip, and StripProxy::tc.
Referenced by seq_render_movie_strip().
|
static |
Definition at line 1183 of file render.c.
References Sequence::anim_startofs, BKE_movieclip_proxy_enabled(), BKE_movieclip_user_set_frame(), Sequence::clip, Sequence::clip_flag, blender::compositor::context, DNA_struct_default_get, IMB_PROXY_100, IMB_PROXY_25, IMB_PROXY_50, IMB_PROXY_75, IMB_PROXY_NONE, MCLIP_PROXY_RENDER_SIZE_100, MCLIP_PROXY_RENDER_SIZE_25, MCLIP_PROXY_RENDER_SIZE_50, MCLIP_PROXY_RENDER_SIZE_75, MCLIP_PROXY_RENDER_SIZE_FULL, MCLIP_PROXY_RENDER_UNDISTORT, MCLIP_PROXY_RENDER_USE_FALLBACK_RENDER, NULL, MovieClipUser::render_flag, MovieClipUser::render_size, seq_get_movieclip_ibuf(), SEQ_MOVIECLIP_RENDER_UNDISTORTED, SEQ_rendersize_to_proxysize(), and MovieClip::start_frame.
Referenced by do_render_strip_uncached().
void SEQ_render_new_render_data | ( | Main * | bmain, |
struct Depsgraph * | depsgraph, | ||
Scene * | scene, | ||
int | rectx, | ||
int | recty, | ||
int | preview_render_size, | ||
int | for_render, | ||
SeqRenderData * | r_context | ||
) |
Definition at line 205 of file render.c.
References SeqRenderData::bmain, depsgraph, SeqRenderData::depsgraph, SeqRenderData::for_render, SeqRenderData::gpu_offscreen, SeqRenderData::is_prefetch_render, SeqRenderData::is_proxy_render, SeqRenderData::motion_blur_samples, SeqRenderData::motion_blur_shutter, NULL, SeqRenderData::preview_render_size, SeqRenderData::rectx, SeqRenderData::recty, scene, SeqRenderData::scene, SEQ_TASK_MAIN_RENDER, SeqRenderData::skip_cache, SeqRenderData::task_id, and SeqRenderData::view_id.
Referenced by do_render_sequencer(), screen_opengl_render_apply(), seq_prefetch_update_context(), SEQ_proxy_rebuild(), sequencer_ibuf_get(), and sequencer_thumbnail_context_init().
Definition at line 184 of file render.c.
References COLOR_ROLE_SCENE_LINEAR, IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_v4(), ColorManagedColorspaceSettings::name, scene, Scene::sequencer_colorspace_settings, and srgb_to_linearrgb_v4().
Referenced by sequencer_sample_apply().
|
static |
Definition at line 654 of file render.c.
References blender::compositor::context, input_preprocess(), seq_cache_put(), SEQ_CACHE_STORE_PREPROCESSED, SEQ_CACHE_STORE_RAW, SEQ_TYPE_EFFECT, Sequence::type, ImBuf::x, and ImBuf::y.
Referenced by seq_render_image_strip(), seq_render_movie_strip(), and seq_render_strip().
|
static |
Definition at line 1329 of file render.c.
References addzbuffloatImBuf(), RenderData::alphamode, Sequence::anim_startofs, BKE_render_resolution(), BKE_scene_camera_switch_update(), BKE_scene_ensure_depsgraph(), BKE_scene_frame_set(), BKE_scene_graph_update_for_newframe(), BKE_scene_multiview_num_views_get(), BKE_scene_multiview_render_view_name_get(), BKE_view_layer_default_render(), BLI_thread_is_main(), Scene::camera, camera, RenderData::cfra, blender::compositor::context, DEG_get_evaluated_object(), depsgraph, double(), Scene::ed, ListBase::first, Sequence::flag, floorf, G, height, IB_rect, IB_rectfloat, IMB_allocImBuf(), IMB_freeImBuf(), MEM_callocN, MEM_freeN, RenderData::mode, Scene::nodetree, NULL, OB_RENDER, Scene::r, R_DOCOMP, R_DOSEQ, R_NO_CAMERA_SWITCH, R_SEQ_OVERRIDE_SCENE_SETTINGS, RE_AcquireResultImage(), RE_GetSceneRender(), RE_NewSceneRender(), RE_ReleaseResultImage(), RE_RenderFrame(), RenderResult::rect32, RenderResult::rectf, RenderResult::rectx, RenderResult::recty, RenderResult::rectz, RenderData::scemode, scene, Sequence::scene, Sequence::scene_camera, seq_cache_put(), SEQ_CACHE_STORE_RAW, seq_imbuf_to_sequencer_space(), SEQ_SCENE_NO_ANNOTATION, Editing::seqbase, sequencer_view3d_fn, RenderData::sfra, RenderData::subframe, Scene::use_nodes, V3D_OFSDRAW_NONE, V3D_OFSDRAW_OVERRIDE_SCENE_SETTINGS, V3D_OFSDRAW_SHOW_ANNOTATION, SeqRenderData::view_id, and width.
Referenced by do_render_strip_uncached().
void seq_render_state_init | ( | SeqRenderState * | state | ) |
Definition at line 231 of file render.c.
Referenced by modifier_render_mask_input(), SEQ_proxy_rebuild(), SEQ_render_give_ibuf(), SEQ_render_give_ibuf_direct(), seq_render_give_ibuf_seqbase(), SEQ_render_thumbnails(), and SEQ_render_thumbnails_base_set().
ImBuf* seq_render_strip | ( | const SeqRenderData * | context, |
SeqRenderState * | state, | ||
Sequence * | seq, | ||
float | timeline_frame | ||
) |
Definition at line 1723 of file render.c.
References blender::compositor::context, do_render_strip_uncached(), IB_rect, IMB_allocImBuf(), NULL, seq_cache_get(), SEQ_CACHE_STORE_PREPROCESSED, SEQ_CACHE_STORE_RAW, SEQ_can_use_proxy(), seq_imbuf_assign_spaces(), seq_input_have_to_preprocess(), seq_render_preprocess_ibuf(), SEQ_rendersize_to_proxysize(), and state.
Referenced by modifier_render_mask_input(), seq_proxy_build_frame(), seq_render_effect_strip_impl(), SEQ_render_give_ibuf_direct(), and seq_render_strip_stack().
|
static |
Definition at line 1826 of file render.c.
References Sequence::blend_mode, Sequence::blend_opacity, channels(), blender::compositor::context, count, EARLY_DO_EFFECT, EARLY_NO_INPUT, SeqEffectHandle::early_out, EARLY_USE_INPUT_1, EARLY_USE_INPUT_2, ELEM, IB_rect, IMB_allocImBuf(), IMB_freeImBuf(), MAXSEQ, NULL, usdtokens::out(), ImBuf::planes, R_IMF_PLANES_BW, R_IMF_PLANES_RGB, SEQ_BLEND_REPLACE, seq_cache_get(), seq_cache_put(), SEQ_CACHE_STORE_COMPOSITE, seq_get_early_out_for_blend_mode(), seq_get_shown_sequences(), seq_render_strip(), seq_render_strip_stack_apply_effect(), SEQ_TYPE_ALPHAOVER, and state.
Referenced by do_render_strip_seqbase(), SEQ_render_give_ibuf(), and seq_render_give_ibuf_seqbase().
|
static |
Definition at line 1796 of file render.c.
References Sequence::blend_opacity, blender::compositor::context, NULL, usdtokens::out(), seq_effect_get_sequence_blend(), seq_must_swap_input_in_blend_mode(), seq_render_effect_execute_threaded(), and sh.
Referenced by seq_render_strip_stack().
float SEQ_render_thumbnail_first_frame_get | ( | const Scene * | scene, |
Sequence * | seq, | ||
float | frame_step, | ||
rctf * | view_area | ||
) |
Definition at line 2005 of file render.c.
References max_iii(), scene, SEQ_time_left_handle_frame_get(), Sequence::start, and rctf::xmin.
Referenced by draw_seq_strip_thumbnail(), and SEQ_render_thumbnails().
float SEQ_render_thumbnail_next_frame_get | ( | const Scene * | scene, |
Sequence * | seq, | ||
float | last_frame, | ||
float | frame_step | ||
) |
Definition at line 2023 of file render.c.
References scene, SEQ_time_left_handle_frame_get(), and Sequence::start.
Referenced by draw_seq_strip_thumbnail(), and SEQ_render_thumbnails().
void SEQ_render_thumbnails | ( | const SeqRenderData * | context, |
Sequence * | seq, | ||
Sequence * | seq_orig, | ||
float | frame_step, | ||
rctf * | view_area, | ||
const short * | stop | ||
) |
Definition at line 2096 of file render.c.
References blender::compositor::context, Sequence::flag, IMB_freeImBuf(), Sequence::len, round_fl_to_int(), scene, seq_cache_get(), SEQ_CACHE_STORE_THUMBNAIL, seq_cache_thumbnail_put(), SEQ_FLAG_SKIP_THUMBNAILS, seq_get_uncached_thumbnail(), seq_render_state_init(), SEQ_render_thumbnail_first_frame_get(), SEQ_render_thumbnail_next_frame_get(), SEQ_time_has_right_still_frames(), SEQ_time_right_handle_frame_get(), Sequence::start, state, and rctf::xmax.
Referenced by thumbnail_start_job().
void SEQ_render_thumbnails_base_set | ( | const SeqRenderData * | context, |
Sequence * | seq, | ||
Sequence * | seq_orig, | ||
rctf * | view_area, | ||
const short * | stop | ||
) |
Definition at line 2157 of file render.c.
References blender::compositor::context, IMB_freeImBuf(), scene, seq_cache_get(), SEQ_CACHE_STORE_THUMBNAIL, seq_cache_thumbnail_put(), seq_get_uncached_thumbnail(), seq_render_state_init(), SEQ_render_thumbnails_guaranteed_set_frame_step_get(), SEQ_time_left_handle_frame_get(), SEQ_time_right_handle_frame_get(), and state.
Referenced by thumbnail_start_job().
int SEQ_render_thumbnails_guaranteed_set_frame_step_get | ( | const Scene * | scene, |
const Sequence * | seq | ||
) |
Definition at line 2142 of file render.c.
References Sequence::len, max_ii(), min_ii(), scene, SEQ_time_left_handle_frame_get(), SEQ_time_right_handle_frame_get(), and Sequence::start.
Referenced by seq_cache_thumbnail_cleanup(), SEQ_render_thumbnails_base_set(), and sequencer_thumbnail_closest_guaranteed_frame_get().
|
static |
Definition at line 418 of file render.c.
References BLI_rctf_init(), bottom, Freestyle::c, Strip::crop, left, right, Sequence::strip, top, ImBuf::x, and ImBuf::y.
Referenced by sequencer_preprocess_transform_crop().
|
static |
Definition at line 392 of file render.c.
References axis_angle_to_mat3_single(), invert_m4(), loc_rot_size_to_mat4(), usdtokens::out(), Sequence::strip, transform(), Strip::transform, transform_pivot_set_m4(), ImBuf::x, and ImBuf::y.
Referenced by sequencer_preprocess_transform_crop().
|
static |
Definition at line 495 of file render.c.
References blender::compositor::context, filter(), float(), IMB_FILTER_BILINEAR, IMB_FILTER_NEAREST, IMB_transform(), IMB_TRANSFORM_MODE_CROP_SRC, usdtokens::out(), ImBuf::planes, Scene::r, R_IMF_PLANES_RGBA, scene, seq_image_transform_transparency_gained(), seq_need_scale_to_render_size(), SEQ_RENDER_SIZE_SCENE, SEQ_rendersize_to_scale_factor(), SEQ_TRANSFORM_FILTER_NEAREST, sequencer_image_crop_init(), sequencer_image_crop_transform_matrix(), RenderData::size, Sequence::strip, transform(), and Strip::transform.
Referenced by input_preprocess().
Definition at line 432 of file render.c.
References float(), IMB_FILTER_NEAREST, IMB_transform(), IMB_TRANSFORM_MODE_REGULAR, invert_m4(), loc_rot_size_to_mat4(), NULL, usdtokens::out(), transform_pivot_set_m4(), unit_m3(), ImBuf::x, and ImBuf::y.
Referenced by seq_get_uncached_thumbnail().
Definition at line 327 of file render.c.
References StripCrop::bottom, Strip::crop, StripCrop::left, StripCrop::right, Sequence::strip, and StripCrop::top.
Referenced by input_preprocess(), and seq_input_have_to_preprocess().
Definition at line 315 of file render.c.
References Sequence::strip, transform(), and Strip::transform.
Referenced by input_preprocess(), and seq_input_have_to_preprocess().
|
static |
Definition at line 81 of file render.c.
Referenced by SEQ_render_give_ibuf().
SequencerDrawView sequencer_view3d_fn = NULL |
Definition at line 82 of file render.c.
Referenced by ED_spacetype_sequencer(), and seq_render_scene_strip().