|
Blender V4.3
|
#include <ctime>#include "MEM_guardedalloc.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_math_geom.h"#include "BLI_math_rotation.h"#include "BLI_path_utils.hh"#include "BLI_rect.h"#include "BLI_task.hh"#include "BKE_anim_data.hh"#include "BKE_animsys.h"#include "BKE_fcurve.hh"#include "BKE_global.hh"#include "BKE_image.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_main.hh"#include "BKE_mask.h"#include "BKE_movieclip.h"#include "BKE_scene.hh"#include "BKE_sequencer_offscreen.h"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "IMB_colormanagement.hh"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"#include "IMB_metadata.hh"#include "RNA_prototypes.hh"#include "RE_engine.h"#include "RE_pipeline.h"#include "SEQ_channels.hh"#include "SEQ_effects.hh"#include "SEQ_iterator.hh"#include "SEQ_modifier.hh"#include "SEQ_proxy.hh"#include "SEQ_relations.hh"#include "SEQ_render.hh"#include "SEQ_sequencer.hh"#include "SEQ_time.hh"#include "SEQ_transform.hh"#include "SEQ_utils.hh"#include "effects.hh"#include "image_cache.hh"#include "multiview.hh"#include "prefetch.hh"#include "proxy.hh"#include "render.hh"#include "utils.hh"#include <algorithm>Go to the source code of this file.
Classes | |
| struct | OpaqueQuad |
| struct | OpaqueQuadTracker |
| struct | RenderEffectInitData |
| struct | RenderEffectThread |
Functions | |
Strip Stack Rendering Functions | |
| static ImBuf * | seq_render_strip_stack (const SeqRenderData *context, SeqRenderState *state, ListBase *channels, ListBase *seqbasep, float timeline_frame, int chanshown) |
| static ImBuf * | do_render_strip_uncached (const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float timeline_frame, bool *r_is_proxy_image) |
| ImBuf * | seq_render_strip (const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float timeline_frame) |
| static bool | seq_must_swap_input_in_blend_mode (Sequence *seq) |
| static StripEarlyOut | seq_get_early_out_for_blend_mode (Sequence *seq) |
| static ImBuf * | seq_render_strip_stack_apply_effect (const SeqRenderData *context, Sequence *seq, float timeline_frame, ImBuf *ibuf1, ImBuf *ibuf2) |
| static bool | is_opaque_alpha_over (const Sequence *seq) |
| ImBuf * | SEQ_render_give_ibuf (const SeqRenderData *context, float timeline_frame, int chanshown) |
| ImBuf * | seq_render_give_ibuf_seqbase (const SeqRenderData *context, float timeline_frame, int chan_shown, ListBase *channels, ListBase *seqbasep) |
| ImBuf * | SEQ_render_give_ibuf_direct (const SeqRenderData *context, float timeline_frame, Sequence *seq) |
| bool | SEQ_render_is_muted (const ListBase *channels, const Sequence *seq) |
Color-space utility functions | |
| void | seq_imbuf_assign_spaces (const Scene *scene, ImBuf *ibuf) |
| void | seq_imbuf_to_sequencer_space (const Scene *scene, ImBuf *ibuf, bool make_float) |
| void | SEQ_render_imbuf_from_sequencer_space (Scene *scene, ImBuf *ibuf) |
| void | SEQ_render_pixel_from_sequencer_space_v4 (Scene *scene, float pixel[4]) |
Rendering utility functions | |
| void | SEQ_render_new_render_data (Main *bmain, Depsgraph *depsgraph, Scene *scene, int rectx, int recty, int preview_render_size, int for_render, SeqRenderData *r_context) |
| StripElem * | SEQ_render_give_stripelem (const Scene *scene, const Sequence *seq, int timeline_frame) |
| Vector< Sequence * > | seq_get_shown_sequences (const Scene *scene, ListBase *channels, ListBase *seqbase, const int timeline_frame, const int chanshown) |
| StripScreenQuad | get_strip_screen_quad (const SeqRenderData *context, const Sequence *seq) |
| static bool | is_quad_a_inside_b (const StripScreenQuad &a, const StripScreenQuad &b) |
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!
| |
| 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) |
| 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 bool | is_strip_covering_screen (const SeqRenderData *context, const Sequence *seq) |
| static eIMBInterpolationFilterMode | get_auto_filter (const StripTransform *transform) |
| static void | sequencer_preprocess_transform_crop (ImBuf *in, ImBuf *out, const SeqRenderData *context, Sequence *seq, const bool is_proxy_image) |
| static void | multiply_ibuf (ImBuf *ibuf, const float fmul, const bool multiply_alpha) |
| 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 (SeqEffectHandle *sh, const SeqRenderData *context, Sequence *seq, float timeline_frame, float fac, ImBuf *ibuf1, ImBuf *ibuf2) |
| static ImBuf * | seq_render_effect_strip_impl (const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float timeline_frame) |
Individual strip rendering functions | |
| static ImBuf * | seq_render_image_strip_view (const SeqRenderData *context, Sequence *seq, char *filepath, char *prefix, const char *ext, int view_id) |
| static bool | seq_image_strip_is_multiview_render (Scene *scene, Sequence *seq, int totfiles, const char *filepath, char *r_prefix, const char *r_ext) |
| static ImBuf * | create_missing_media_image (const SeqRenderData *context, int width, int height) |
| static ImBuf * | seq_render_image_strip (const SeqRenderData *context, Sequence *seq, int timeline_frame, bool *r_is_proxy_image) |
| static ImBuf * | seq_render_movie_strip_custom_file_proxy (const SeqRenderData *context, Sequence *seq, int timeline_frame) |
| static IMB_Timecode_Type | seq_render_movie_strip_timecode_get (Sequence *seq) |
| static ImBuf * | seq_render_movie_strip_view (const SeqRenderData *context, Sequence *seq, float timeline_frame, StripAnim *sanim, bool *r_is_proxy_image) |
| static ImBuf * | seq_render_movie_strip (const SeqRenderData *context, Sequence *seq, float timeline_frame, bool *r_is_proxy_image) |
| static ImBuf * | seq_get_movieclip_ibuf (Sequence *seq, MovieClipUser user) |
| static ImBuf * | seq_render_movieclip_strip (const SeqRenderData *context, Sequence *seq, float frame_index, bool *r_is_proxy_image) |
| ImBuf * | seq_render_mask (const SeqRenderData *context, Mask *mask, float frame_index, bool make_float) |
| static ImBuf * | seq_render_mask_strip (const SeqRenderData *context, Sequence *seq, float frame_index) |
| static ImBuf * | seq_render_scene_strip (const SeqRenderData *context, Sequence *seq, float frame_index, float timeline_frame) |
| static ImBuf * | do_render_strip_seqbase (const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float frame_index) |
Variables | |
| static ThreadMutex | seq_render_mutex = BLI_MUTEX_INITIALIZER |
| SequencerDrawView | sequencer_view3d_fn = nullptr |
|
static |
Definition at line 994 of file render.cc.
References col, IB_rect, IMB_allocImBuf(), IMB_rectfill(), max_ii(), and SEQ_EDIT_SHOW_MISSING_MEDIA.
Referenced by seq_render_image_strip(), seq_render_movie_strip(), and seq_render_scene_strip().
|
static |
Used for meta-strips & scenes with SEQ_SCENE_STRIPS flag set.
Definition at line 1699 of file render.cc.
References BKE_animsys_evaluate_all_animation(), BLI_listbase_is_empty(), Sequence::flag, 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 1735 of file render.cc.
References BLI_linklist_index(), ImBufFloatBuffer::data, do_render_strip_seqbase(), Sequence::flag, ImBuf::float_buffer, IMB_dupImBuf(), IMB_freeImBuf(), LinkNode::link, LinkNode::next, round_fl_to_int(), SeqRenderData::scene, Sequence::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, and Sequence::type.
Referenced by seq_render_strip().
|
static |
Definition at line 526 of file render.cc.
References fabsf, IMB_FILTER_BILINEAR, IMB_FILTER_BOX, IMB_FILTER_CUBIC_MITCHELL, IMB_FILTER_NEAREST, and rot.
Referenced by sequencer_preprocess_transform_crop().
| StripScreenQuad get_strip_screen_quad | ( | const SeqRenderData * | context, |
| const Sequence * | seq ) |
Definition at line 296 of file render.cc.
References quad, and SEQ_image_transform_final_quad_get().
Referenced by OpaqueQuadTracker::add_occluder(), OpaqueQuadTracker::is_occluded(), is_strip_covering_screen(), and SEQ_modifier_apply_stack().
|
static |
Definition at line 636 of file render.cc.
References Sequence::blend_mode, Sequence::blend_opacity, ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ELEM, ListBase::first, Sequence::flag, ImBuf::float_buffer, 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, multiply_ibuf(), Sequence::sat, 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_MULTIPLY_ALPHA, SEQ_TYPE_MOVIE, SEQ_TYPE_MOVIECLIP, sequencer_preprocess_transform_crop(), sequencer_use_crop(), sequencer_use_transform(), Sequence::type, ImBuf::x, and ImBuf::y.
Referenced by seq_render_preprocess_ibuf().
|
static |
Definition at line 1933 of file render.cc.
References Sequence::blend_mode, Sequence::blend_opacity, Sequence::flag, LISTBASE_FOREACH, Sequence::modifiers, Sequence::mul, SEQ_MULTIPLY_ALPHA, SEQ_TYPE_ALPHAOVER, seqModifierType_Mask, and SEQUENCE_MODIFIER_MUTE.
Referenced by seq_render_strip_stack().
|
static |
Definition at line 310 of file render.cc.
References b, and isect_point_quad_v2().
Referenced by OpaqueQuadTracker::is_occluded(), and is_strip_covering_screen().
|
static |
Definition at line 500 of file render.cc.
References float, get_strip_screen_quad(), is_quad_a_inside_b(), and quad.
Referenced by sequencer_preprocess_transform_crop().
Definition at line 601 of file render.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_get_rect_len(), int, min_ii(), blender::threading::parallel_for(), ptr, and range.
Referenced by input_preprocess().
|
static |
Definition at line 782 of file render.cc.
References RenderEffectThread::context, SeqEffectHandle::execute_slice, RenderEffectThread::fac, RenderEffectThread::ibuf1, RenderEffectThread::ibuf2, 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 761 of file render.cc.
References blender::init_data(), and RenderEffectInitData::sh.
Referenced by seq_render_effect_execute_threaded().
|
static |
Definition at line 1882 of file render.cc.
References Sequence::blend_opacity, DoEffect, SeqEffectHandle::early_out, ELEM, NoInput, seq_effect_get_sequence_blend(), seq_must_swap_input_in_blend_mode(), UseInput1, and UseInput2.
Referenced by seq_render_strip_stack().
|
static |
Definition at line 1269 of file render.cc.
References BKE_movieclip_get_ibuf_flag(), BKE_movieclip_get_stable_ibuf(), Sequence::clip, Sequence::clip_flag, MovieClip::flag, MOVIECLIP_CACHE_SKIP, and SEQ_MOVIECLIP_RENDER_STABILIZED.
Referenced by seq_render_movieclip_strip().
| Vector< Sequence * > seq_get_shown_sequences | ( | const Scene * | scene, |
| ListBase * | channels, | ||
| ListBase * | seqbase, | ||
| const int | timeline_frame, | ||
| const int | chanshown ) |
Definition at line 268 of file render.cc.
References b, BLI_assert_msg, result, SEQ_MAX_CHANNELS, SEQ_query_rendered_strips(), blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), and UNLIKELY.
Referenced by seq_prefetch_scene_strip_is_rendered(), SEQ_render_give_ibuf(), and seq_render_strip_stack().
|
static |
Definition at line 974 of file render.cc.
References BKE_scene_multiview_view_prefix_get(), Sequence::flag, R_MULTIVIEW, and SEQ_USE_VIEWS.
Referenced by seq_render_image_strip().
Definition at line 93 of file render.cc.
References ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_colormanagement_assign_byte_colorspace(), and IMB_colormanagement_assign_float_colorspace().
Referenced by do_render_strip_uncached(), input_preprocess(), blender::seq::make_thumb_for_image(), seq_imbuf_to_sequencer_space(), seq_proxy_fetch(), seq_render_strip(), and seq_render_strip_stack().
Definition at line 106 of file render.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, 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(), seq_imbuf_assign_spaces(), STREQ, ImBuf::x, and ImBuf::y.
Referenced by do_render_strip_uncached(), input_preprocess(), blender::seq::make_thumb_for_image(), 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 403 of file render.cc.
References Sequence::blend_mode, Sequence::blend_opacity, 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().
|
static |
Definition at line 1868 of file render.cc.
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().
|
static |
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 446 of file render.cc.
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 | ( | SeqEffectHandle * | sh, |
| const SeqRenderData * | context, | ||
| Sequence * | seq, | ||
| float | timeline_frame, | ||
| float | fac, | ||
| ImBuf * | ibuf1, | ||
| ImBuf * | ibuf2 ) |
Definition at line 799 of file render.cc.
References IMB_processor_apply_threaded(), blender::init_data(), SeqEffectHandle::init_execution, render_effect_execute_do_thread(), and render_effect_execute_init_handle().
Referenced by do_speed_effect(), seq_render_effect_strip_impl(), and seq_render_strip_stack_apply_effect().
|
static |
Definition at line 828 of file render.cc.
References DoEffect, SeqEffectHandle::early_out, Sequence::effect_fader, Sequence::effectdata, evaluate_fcurve(), SeqEffectHandle::execute, SeqEffectHandle::execute_slice, Sequence::flag, SeqEffectHandle::get_default_fac, IB_rect, id_data_find_fcurve(), IMB_allocImBuf(), IMB_freeImBuf(), SeqEffectHandle::init_execution, SeqEffectHandle::multithreaded, NoInput, Sequence::seq1, Sequence::seq2, SEQ_effect_get_num_inputs(), SEQ_effect_handle_get(), seq_render_effect_execute_threaded(), seq_render_strip(), seq_speed_effect_target_frame_get(), SEQ_SPEED_USE_INTERPOLATION, SEQ_TYPE_SPEED, SEQ_USE_EFFECT_DEFAULT_FADE, state, Sequence::type, UseInput1, and UseInput2.
Referenced by do_render_strip_uncached().
| ImBuf * SEQ_render_give_ibuf | ( | const SeqRenderData * | context, |
| float | timeline_frame, | ||
| int | chanshown ) |
Definition at line 2078 of file render.cc.
References BLI_findlink(), BLI_listbase_count(), BLI_listbase_is_empty(), BLI_mutex_lock(), BLI_mutex_unlock(), channels(), count, Editing::displayed_channels, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), max_ii(), Editing::metastack, 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_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 2144 of file render.cc.
References 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 2133 of file render.cc.
References seq_render_strip_stack(), and state.
Referenced by do_adjustment_impl(), and do_multicam().
| StripElem * SEQ_render_give_stripelem | ( | const Scene * | scene, |
| const Sequence * | seq, | ||
| int | timeline_frame ) |
Definition at line 248 of file render.cc.
References Sequence::anim_startofs, round_fl_to_int(), SEQ_give_frame_index(), SEQ_TYPE_IMAGE, Sequence::strip, Strip::stripdata, and Sequence::type.
Referenced by blender::seq::get_path_from_seq(), SEQ_add_image_load_file(), seq_proxy_get_filepath(), seq_render_image_strip(), sequencer_rendersize_exec(), sequencer_separate_images_exec(), and sequencer_strip_transform_fit_exec().
|
static |
Definition at line 1011 of file render.cc.
References BKE_scene_multiview_num_views_get(), BLI_path_abs(), BLI_path_join, create_missing_media_image(), Strip::dirpath, FILE_MAX, StripElem::filename, ID_BLEND_PATH_FROM_GLOBAL, IMB_freeImBuf(), IMB_ImBufFromStereo3d(), blender::seq::media_presence_set_missing(), MEM_callocN, MEM_freeN(), 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 935 of file render.cc.
References Sequence::alpha_mode, BKE_scene_multiview_view_prefix_get(), ImBuf::byte_buffer, Strip::colorspace_settings, ImBufByteBuffer::data, ImBufFloatBuffer::data, FILE_MAX, flag, ImBuf::float_buffer, IB_alphamode_premul, IB_metadata, IB_rect, imb_freerectImBuf(), IMB_loadiffname(), ColorManagedColorspaceSettings::name, SEQ_ALPHA_PREMUL, seq_imbuf_to_sequencer_space(), seq_multiview_name(), and Sequence::strip.
Referenced by seq_render_image_strip().
Definition at line 177 of file render.cc.
References ImBuf::channels, COLOR_ROLE_SCENE_LINEAR, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_colormanagement_assign_float_colorspace(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_threaded(), ImBuf::x, and ImBuf::y.
Referenced by do_render_sequencer(), and SEQ_modifier_apply_stack().
Check if seq is muted for rendering. This function also checks SeqTimelineChannel flag.
Definition at line 2154 of file render.cc.
References Sequence::flag, Sequence::machine, SEQ_channel_get_by_index(), SEQ_channel_is_muted(), and SEQ_MUTE.
Referenced by collection_filter_rendered_strips(), drawmeta_contents(), query_snap_targets_timeline(), seq_get_text_strip_cb(), SEQ_get_topmost_sequence(), SEQ_time_find_next_prev_edit(), seq_update_muting_recursive(), and strip_draw_context_get().
| ImBuf * seq_render_mask | ( | const SeqRenderData * | context, |
| Mask * | mask, | ||
| float | frame_index, | ||
| bool | make_float ) |
Definition at line 1337 of file render.cc.
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(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IB_rect, IB_rectfloat, IB_uninitialized_pixels, Mask::id, IMB_allocImBuf(), LIB_ID_COPY_LOCALIZE, LIB_ID_COPY_NO_ANIMDATA, MEM_freeN(), MEM_mallocN, and Mask::sfra.
Referenced by modifier_render_mask_input(), and seq_render_mask_strip().
|
static |
Definition at line 1423 of file render.cc.
References Sequence::flag, Sequence::mask, SEQ_MAKE_FLOAT, and seq_render_mask().
Referenced by do_render_strip_uncached().
|
static |
Definition at line 1182 of file render.cc.
References StripAnim::anim, Sequence::anims, BKE_scene_multiview_num_views_get(), BLI_listbase_count_is_equal_to(), create_missing_media_image(), ListBase::first, Sequence::flag, IMB_anim_get_fps(), IMB_freeImBuf(), IMB_ImBufFromStereo3d(), blender::seq::media_presence_set_missing(), MEM_callocN, MEM_freeN(), StripAnim::next, 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 1096 of file render.cc.
References StripProxy::anim, Sequence::anim_startofs, Strip::colorspace_settings, IB_rect, IMB_anim_absolute(), IMB_PROXY_NONE, IMB_TC_NONE, ColorManagedColorspaceSettings::name, openanim(), Strip::proxy, PROXY_MAXFILE, round_fl_to_int(), SEQ_give_frame_index(), seq_proxy_get_custom_file_filepath(), and Sequence::strip.
Referenced by seq_render_movie_strip_view().
|
static |
Definition at line 1117 of file render.cc.
References Sequence::flag, IMB_TC_NONE, Strip::proxy, SEQ_USE_PROXY, Sequence::strip, and StripProxy::tc.
Referenced by seq_render_movie_strip_view().
|
static |
Render individual view for multi-view or single (default view) for mono-view.
Definition at line 1130 of file render.cc.
References StripAnim::anim, Sequence::anim_startofs, ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_anim_absolute(), imb_freerectImBuf(), IMB_PROXY_NONE, Strip::proxy, round_fl_to_int(), SEQ_can_use_proxy(), SEQ_EDIT_PROXY_DIR_STORAGE, SEQ_give_frame_index(), seq_imbuf_to_sequencer_space(), seq_render_movie_strip_custom_file_proxy(), seq_render_movie_strip_timecode_get(), SEQ_rendersize_to_proxysize(), SEQ_STORAGE_PROXY_CUSTOM_FILE, StripProxy::storage, and Sequence::strip.
Referenced by seq_render_movie_strip().
|
static |
Definition at line 1282 of file render.cc.
References Sequence::anim_startofs, BKE_movieclip_proxy_enabled(), BKE_movieclip_user_set_frame(), Sequence::clip, Sequence::clip_flag, 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, 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, |
| Depsgraph * | depsgraph, | ||
| Scene * | scene, | ||
| int | rectx, | ||
| int | recty, | ||
| int | preview_render_size, | ||
| int | for_render, | ||
| SeqRenderData * | r_context ) |
Definition at line 220 of file render.cc.
References SeqRenderData::bmain, depsgraph, SeqRenderData::depsgraph, SeqRenderData::for_render, SeqRenderData::gpu_offscreen, SeqRenderData::gpu_viewport, SeqRenderData::ignore_missing_media, SeqRenderData::is_prefetch_render, SeqRenderData::is_proxy_render, SeqRenderData::motion_blur_samples, SeqRenderData::motion_blur_shutter, 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(), and sequencer_ibuf_get().
Definition at line 199 of file render.cc.
References COLOR_ROLE_SCENE_LINEAR, IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_v4(), and srgb_to_linearrgb_v4().
Referenced by sequencer_sample_apply().
|
static |
Definition at line 712 of file render.cc.
References input_preprocess(), seq_cache_put(), SEQ_CACHE_STORE_PREPROCESSED, SEQ_CACHE_STORE_RAW, SEQ_effect_get_num_inputs(), 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 1430 of file render.cc.
References 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(), ImBuf::byte_buffer, camera, create_missing_media_image(), ImBufByteBuffer::data, ImBufFloatBuffer::data, DEG_get_evaluated_object(), depsgraph, double(), Sequence::flag, ImBuf::float_buffer, floorf, G, IB_rect, IB_rectfloat, RenderResult::ibuf, IMB_allocImBuf(), IMB_freeImBuf(), MEM_callocN, MEM_freeN(), OB_RENDER, R_DOCOMP, R_DOSEQ, R_NO_CAMERA_SWITCH, R_SEQ_OVERRIDE_SCENE_SETTINGS, RE_AcquireResultImage(), RE_GetSceneRender(), RE_NewSceneRender(), RE_ReleaseResultImage(), RE_RenderFrame(), RenderResult::rectx, RenderResult::recty, scene, Sequence::scene, Sequence::scene_camera, seq_cache_put(), SEQ_CACHE_STORE_RAW, seq_imbuf_to_sequencer_space(), SEQ_SCENE_NO_ANNOTATION, sequencer_view3d_fn, V3D_OFSDRAW_NONE, V3D_OFSDRAW_OVERRIDE_SCENE_SETTINGS, V3D_OFSDRAW_SHOW_ANNOTATION, and SeqRenderData::view_id.
Referenced by do_render_strip_uncached().
| ImBuf * seq_render_strip | ( | const SeqRenderData * | context, |
| SeqRenderState * | state, | ||
| Sequence * | seq, | ||
| float | timeline_frame ) |
Definition at line 1830 of file render.cc.
References do_render_strip_uncached(), IB_rect, IMB_allocImBuf(), 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 1953 of file render.cc.
References OpaqueQuadTracker::add_occluder(), Sequence::blend_mode, ImBufFloatBuffer::data, DoEffect, ELEM, ImBuf::float_buffer, IB_rect, IB_rectfloat, IMB_allocImBuf(), IMB_freeImBuf(), IMB_metadata_copy(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), OpaqueQuadTracker::is_occluded(), is_opaque_alpha_over(), NoInput, ImBuf::planes, R_IMF_PLANES_BW, R_IMF_PLANES_RGB, R_IMF_PLANES_RGBA, SEQ_BLEND_REPLACE, seq_cache_get(), seq_cache_put(), SEQ_CACHE_STORE_COMPOSITE, SEQ_CACHE_STORE_RAW, seq_get_early_out_for_blend_mode(), seq_get_shown_sequences(), seq_imbuf_assign_spaces(), seq_render_strip(), seq_render_strip_stack_apply_effect(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), state, UseInput1, and UseInput2.
Referenced by do_render_strip_seqbase(), SEQ_render_give_ibuf(), and seq_render_give_ibuf_seqbase().
|
static |
Definition at line 1903 of file render.cc.
References Sequence::blend_opacity, SeqEffectHandle::execute, SeqEffectHandle::multithreaded, seq_effect_get_sequence_blend(), seq_must_swap_input_in_blend_mode(), and seq_render_effect_execute_threaded().
Referenced by seq_render_strip_stack().
|
static |
Definition at line 486 of file render.cc.
References BLI_rctf_init(), StripCrop::bottom, Strip::crop, StripCrop::left, StripCrop::right, Sequence::strip, and StripCrop::top.
Referenced by sequencer_preprocess_transform_crop().
|
static |
Definition at line 460 of file render.cc.
References axis_angle_to_mat3_single(), invert_m4(), loc_rot_size_to_mat4(), StripTransform::scale_x, Sequence::strip, Strip::transform, and transform_pivot_set_m4().
Referenced by sequencer_preprocess_transform_crop().
|
static |
Definition at line 545 of file render.cc.
References float, get_auto_filter(), IMB_FILTER_BILINEAR, IMB_FILTER_BOX, IMB_FILTER_CUBIC_BSPLINE, IMB_FILTER_CUBIC_MITCHELL, IMB_FILTER_NEAREST, IMB_transform(), IMB_TRANSFORM_MODE_CROP_SRC, is_strip_covering_screen(), R_IMF_PLANES_RGBA, seq_need_scale_to_render_size(), SEQ_RENDER_SIZE_SCENE, SEQ_rendersize_to_scale_factor(), SEQ_TRANSFORM_FILTER_AUTO, SEQ_TRANSFORM_FILTER_BILINEAR, SEQ_TRANSFORM_FILTER_BOX, SEQ_TRANSFORM_FILTER_CUBIC_BSPLINE, SEQ_TRANSFORM_FILTER_CUBIC_MITCHELL, SEQ_TRANSFORM_FILTER_NEAREST, sequencer_image_crop_init(), sequencer_image_crop_transform_matrix(), Sequence::strip, and Strip::transform.
Referenced by input_preprocess().
|
static |
Definition at line 393 of file render.cc.
References StripCrop::bottom, Strip::crop, StripCrop::left, StripCrop::right, Sequence::strip, and StripCrop::top.
Referenced by input_preprocess(), and seq_input_have_to_preprocess().
|
static |
Definition at line 380 of file render.cc.
References Sequence::strip, and Strip::transform.
Referenced by input_preprocess(), and seq_input_have_to_preprocess().
|
static |
Definition at line 86 of file render.cc.
Referenced by SEQ_render_give_ibuf().
| SequencerDrawView sequencer_view3d_fn = nullptr |
Definition at line 87 of file render.cc.
Referenced by ED_spacetype_sequencer(), and seq_render_scene_strip().