|
Blender V4.3
|
#include <cstddef>#include <cstdlib>#include <cstring>#include "MEM_guardedalloc.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_sequence_types.h"#include "DNA_space_types.h"#include "BLI_listbase.h"#include "BLI_threads.h"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"#include "BKE_anim_data.hh"#include "BKE_animsys.h"#include "BKE_context.hh"#include "BKE_global.hh"#include "BKE_layer.hh"#include "BKE_main.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_build.hh"#include "DEG_depsgraph_debug.hh"#include "DEG_depsgraph_query.hh"#include "SEQ_channels.hh"#include "SEQ_iterator.hh"#include "SEQ_prefetch.hh"#include "SEQ_relations.hh"#include "SEQ_render.hh"#include "SEQ_sequencer.hh"#include "image_cache.hh"#include "prefetch.hh"#include "render.hh"Go to the source code of this file.
Classes | |
| struct | PrefetchJob |
|
static |
Definition at line 419 of file prefetch.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), LISTBASE_FOREACH, SEQ_SCENE_STRIPS, and SEQ_TYPE_SCENE.
Referenced by seq_prefetch_must_skip_frame().
|
static |
Definition at line 169 of file prefetch.cc.
References BKE_animsys_eval_context_construct(), PrefetchJob::depsgraph, and seq_prefetch_cfra().
Referenced by seq_prefetch_frames().
|
static |
Definition at line 165 of file prefetch.cc.
References PrefetchJob::cfra, and PrefetchJob::num_frames_prefetched.
Referenced by seq_prefetch_anim_eval_context(), seq_prefetch_frames(), seq_prefetch_get_time_range(), seq_prefetch_need_suspend(), seq_prefetch_scene_strip_is_rendered(), seq_prefetch_seq_has_disk_cache(), and seq_prefetch_update_depsgraph().
|
static |
Definition at line 447 of file prefetch.cc.
References BLI_condition_wait(), BLI_mutex_lock(), BLI_mutex_unlock(), Editing::cache_flag, Scene::ed, PrefetchJob::prefetch_suspend_cond, PrefetchJob::prefetch_suspend_mutex, PrefetchJob::scene, SEQ_CACHE_PREFETCH_ENABLE, seq_prefetch_need_suspend(), seq_prefetch_update_area(), PrefetchJob::stop, and PrefetchJob::waiting.
Referenced by seq_prefetch_frames().
|
static |
Definition at line 461 of file prefetch.cc.
References ADT_RECALC_ALL, BKE_animdata_from_id(), BKE_animsys_evaluate_animdata(), Editing::cache_flag, RenderData::cfra, PrefetchJob::context, PrefetchJob::context_cpy, Scene::ed, RenderData::efra, Scene::id, IMB_freeImBuf(), PrefetchJob::num_frames_prefetched, Editing::prefetch_job, Scene::r, PrefetchJob::running, PrefetchJob::scene, SeqRenderData::scene, PrefetchJob::scene_eval, SEQ_active_seqbase_get(), seq_cache_free_temp_cache(), SEQ_CACHE_PREFETCH_ENABLE, SEQ_channels_displayed_get(), SEQ_editing_get(), seq_prefetch_anim_eval_context(), seq_prefetch_cfra(), seq_prefetch_do_suspend(), seq_prefetch_must_skip_frame(), seq_prefetch_update_area(), seq_prefetch_update_depsgraph(), SEQ_render_give_ibuf(), PrefetchJob::stop, and SeqRenderData::task_id.
Referenced by seq_prefetch_start_ex().
| void seq_prefetch_free | ( | Scene * | scene | ) |
Definition at line 332 of file prefetch.cc.
References BKE_main_free(), BLI_condition_end(), BLI_mutex_end(), BLI_threadpool_end(), BLI_threadpool_remove(), PrefetchJob::bmain_eval, MEM_freeN(), PrefetchJob::prefetch_suspend_cond, PrefetchJob::prefetch_suspend_mutex, seq_prefetch_free_depsgraph(), seq_prefetch_job_get(), SEQ_prefetch_stop(), and PrefetchJob::threads.
Referenced by SEQ_editing_free().
|
static |
Definition at line 182 of file prefetch.cc.
References DEG_graph_free(), PrefetchJob::depsgraph, and PrefetchJob::scene_eval.
Referenced by seq_prefetch_free(), and seq_prefetch_update_scene().
| SeqRenderData * seq_prefetch_get_original_context | ( | const SeqRenderData * | context | ) |
For cache context swapping.
Definition at line 147 of file prefetch.cc.
References PrefetchJob::context, and seq_prefetch_job_get().
Referenced by seq_cache_get(), seq_cache_put(), and seq_cache_put_if_possible().
For cache context swapping.
Definition at line 141 of file prefetch.cc.
References Editing::seqbase, and sequencer_prefetch_get_original_sequence().
Referenced by seq_cache_get(), seq_cache_put(), seq_cache_put_if_possible(), and seq_prefetch_update_active_seqbase().
Definition at line 174 of file prefetch.cc.
References PrefetchJob::cfra, seq_prefetch_cfra(), and seq_prefetch_job_get().
Referenced by seq_cache_choose_key().
|
static |
Definition at line 196 of file prefetch.cc.
References BKE_view_layer_default_render(), PrefetchJob::bmain_eval, Editing::cache_flag, DAG_EVAL_RENDER, DEG_debug_name_set(), DEG_get_evaluated_scene(), DEG_graph_build_for_render_pipeline(), DEG_graph_new(), PrefetchJob::depsgraph, Scene::ed, PrefetchJob::scene, PrefetchJob::scene_eval, and seq_prefetch_update_depsgraph().
Referenced by seq_prefetch_start_ex(), and seq_prefetch_update_scene().
|
static |
Definition at line 154 of file prefetch.cc.
References PrefetchJob::scene, seq_cache_is_full(), seq_cache_recycle_item(), and seq_prefetch_job_get().
Referenced by seq_prefetch_need_suspend().
|
static |
Definition at line 82 of file prefetch.cc.
Referenced by seq_prefetch_free(), seq_prefetch_get_original_context(), seq_prefetch_get_time_range(), seq_prefetch_is_cache_full(), seq_prefetch_job_is_running(), seq_prefetch_job_is_waiting(), seq_prefetch_job_scrubbing_set(), seq_prefetch_resume(), seq_prefetch_start_ex(), SEQ_prefetch_stop(), seq_prefetch_update_context(), and seq_prefetch_update_scene().
| bool seq_prefetch_job_is_running | ( | Scene * | scene | ) |
Definition at line 90 of file prefetch.cc.
References PrefetchJob::running, and seq_prefetch_job_get().
Referenced by seq_cache_choose_key(), SEQ_prefetch_need_redraw(), and seq_prefetch_start().
|
static |
Definition at line 112 of file prefetch.cc.
References seq_prefetch_job_get(), and PrefetchJob::waiting.
Referenced by SEQ_prefetch_need_redraw().
|
static |
Definition at line 101 of file prefetch.cc.
References PrefetchJob::is_scrubbing, and seq_prefetch_job_get().
Referenced by seq_prefetch_start().
|
static |
Definition at line 432 of file prefetch.cc.
References query_scene_strips(), and seq_prefetch_scene_strip_is_rendered().
Referenced by seq_prefetch_frames().
Definition at line 583 of file prefetch.cc.
References SpaceSeq::cache_overlay, CTX_wm_screen(), CTX_wm_space_seq(), SequencerCacheOverlay::flag, SEQ_CACHE_SHOW, seq_prefetch_job_is_running(), and seq_prefetch_job_is_waiting().
Referenced by seq_prefetch_wm_notify(), and seq_prefetch_wm_notify().
|
static |
Definition at line 441 of file prefetch.cc.
References RenderData::efra, PrefetchJob::is_scrubbing, Scene::r, PrefetchJob::scene, seq_prefetch_cfra(), and seq_prefetch_is_cache_full().
Referenced by seq_prefetch_do_suspend().
|
static |
Definition at line 323 of file prefetch.cc.
References BLI_condition_notify_one(), PrefetchJob::prefetch_suspend_cond, seq_prefetch_job_get(), and PrefetchJob::waiting.
Referenced by seq_prefetch_start().
|
static |
Definition at line 383 of file prefetch.cc.
References PrefetchJob::scene_eval, seq_get_shown_sequences(), seq_prefetch_cfra(), seq_prefetch_scene_strip_is_rendered(), seq_prefetch_seq_has_disk_cache(), SEQ_relations_render_loop_check(), SEQ_SCENE_STRIPS, SEQ_TYPE_META, and SEQ_TYPE_SCENE.
Referenced by seq_prefetch_must_skip_frame(), and seq_prefetch_scene_strip_is_rendered().
|
static |
Definition at line 351 of file prefetch.cc.
References PrefetchJob::context_cpy, IMB_freeImBuf(), seq_cache_get(), SEQ_CACHE_STORE_FINAL_OUT, SEQ_CACHE_STORE_PREPROCESSED, SEQ_CACHE_STORE_RAW, and seq_prefetch_cfra().
Referenced by seq_prefetch_scene_strip_is_rendered().
| void seq_prefetch_start | ( | const SeqRenderData * | context, |
| float | timeline_frame ) |
Start or resume prefetching.
Definition at line 558 of file prefetch.cc.
References Editing::cache_flag, ListBase::first, G, SEQ_CACHE_ALL_TYPES, SEQ_CACHE_PREFETCH_ENABLE, seq_prefetch_job_is_running(), seq_prefetch_job_scrubbing_set(), seq_prefetch_resume(), seq_prefetch_start_ex(), and Editing::seqbasep.
Referenced by SEQ_render_give_ibuf().
|
static |
Definition at line 521 of file prefetch.cc.
References BKE_main_new(), BLI_condition_init(), BLI_mutex_init(), BLI_threadpool_init(), BLI_threadpool_insert(), BLI_threadpool_remove(), PrefetchJob::bmain, PrefetchJob::bmain_eval, PrefetchJob::cfra, Scene::ed, MEM_callocN, PrefetchJob::num_frames_prefetched, Editing::prefetch_job, PrefetchJob::prefetch_suspend_cond, PrefetchJob::prefetch_suspend_mutex, PrefetchJob::running, PrefetchJob::scene, seq_prefetch_frames(), seq_prefetch_init_depsgraph(), seq_prefetch_job_get(), seq_prefetch_update_active_seqbase(), seq_prefetch_update_context(), seq_prefetch_update_scene(), PrefetchJob::stop, PrefetchJob::threads, and PrefetchJob::waiting.
Referenced by seq_prefetch_start().
| void SEQ_prefetch_stop | ( | Scene * | scene | ) |
Use also to update scene and context changes This function should almost always be called by cache invalidation, not directly.
Definition at line 247 of file prefetch.cc.
References BLI_condition_notify_one(), PrefetchJob::prefetch_suspend_cond, PrefetchJob::running, seq_prefetch_job_get(), and PrefetchJob::stop.
Referenced by SEQ_cache_cleanup(), seq_prefetch_free(), SEQ_prefetch_stop_all(), SEQ_relations_free_imbuf(), sequence_invalidate_cache(), sequencer_delete_exec(), sequencer_meta_make_exec(), sequencer_meta_separate_exec(), sequencer_meta_toggle_exec(), sequencer_separate_images_exec(), and sequencer_split_exec().
| void SEQ_prefetch_stop_all | ( | ) |
Definition at line 237 of file prefetch.cc.
References G, scene, and SEQ_prefetch_stop().
Referenced by WM_jobs_kill_all().
|
static |
Definition at line 309 of file prefetch.cc.
References MetaStack::parseq, PrefetchJob::scene, PrefetchJob::scene_eval, SEQ_editing_get(), SEQ_meta_stack_active_get(), seq_prefetch_get_original_sequence(), SEQ_seqbase_active_set(), Editing::seqbase, and Sequence::seqbase.
Referenced by seq_prefetch_start_ex().
|
static |
Definition at line 215 of file prefetch.cc.
References PrefetchJob::cfra, RenderData::cfra, PrefetchJob::num_frames_prefetched, Scene::r, and PrefetchJob::scene.
Referenced by seq_prefetch_do_suspend(), and seq_prefetch_frames().
|
static |
Definition at line 263 of file prefetch.cc.
References PrefetchJob::bmain, PrefetchJob::bmain_eval, PrefetchJob::context, PrefetchJob::context_cpy, PrefetchJob::depsgraph, SeqRenderData::is_prefetch_render, PrefetchJob::scene, PrefetchJob::scene_eval, seq_prefetch_job_get(), SEQ_render_new_render_data(), SEQ_TASK_PREFETCH_RENDER, and SeqRenderData::task_id.
Referenced by seq_prefetch_start_ex().
|
static |
Definition at line 191 of file prefetch.cc.
References DEG_evaluate_on_framechange(), PrefetchJob::depsgraph, and seq_prefetch_cfra().
Referenced by seq_prefetch_frames(), and seq_prefetch_init_depsgraph().
|
static |
Definition at line 296 of file prefetch.cc.
References PrefetchJob::scene, scene, seq_prefetch_free_depsgraph(), seq_prefetch_init_depsgraph(), and seq_prefetch_job_get().
Referenced by seq_prefetch_start_ex().
|
static |
Definition at line 123 of file prefetch.cc.
References LISTBASE_FOREACH, Sequence::name, SEQ_TYPE_META, Sequence::seqbase, sequencer_prefetch_get_original_sequence(), and STREQ.
Referenced by seq_prefetch_get_original_sequence(), and sequencer_prefetch_get_original_sequence().