Blender V4.3
prefetch.cc File Reference
#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
 

Functions

static PrefetchJobseq_prefetch_job_get (Scene *scene)
 
bool seq_prefetch_job_is_running (Scene *scene)
 
static void seq_prefetch_job_scrubbing_set (Scene *scene, bool is_scrubbing)
 
static bool seq_prefetch_job_is_waiting (Scene *scene)
 
static Sequencesequencer_prefetch_get_original_sequence (Sequence *seq, ListBase *seqbase)
 
Sequenceseq_prefetch_get_original_sequence (Sequence *seq, Scene *scene)
 
SeqRenderDataseq_prefetch_get_original_context (const SeqRenderData *context)
 
static bool seq_prefetch_is_cache_full (Scene *scene)
 
static float seq_prefetch_cfra (PrefetchJob *pfjob)
 
static AnimationEvalContext seq_prefetch_anim_eval_context (PrefetchJob *pfjob)
 
void seq_prefetch_get_time_range (Scene *scene, int *r_start, int *r_end)
 
static void seq_prefetch_free_depsgraph (PrefetchJob *pfjob)
 
static void seq_prefetch_update_depsgraph (PrefetchJob *pfjob)
 
static void seq_prefetch_init_depsgraph (PrefetchJob *pfjob)
 
static void seq_prefetch_update_area (PrefetchJob *pfjob)
 
void SEQ_prefetch_stop_all ()
 
void SEQ_prefetch_stop (Scene *scene)
 
static void seq_prefetch_update_context (const SeqRenderData *context)
 
static void seq_prefetch_update_scene (Scene *scene)
 
static void seq_prefetch_update_active_seqbase (PrefetchJob *pfjob)
 
static void seq_prefetch_resume (Scene *scene)
 
void seq_prefetch_free (Scene *scene)
 
static bool seq_prefetch_seq_has_disk_cache (PrefetchJob *pfjob, Sequence *seq, bool can_have_final_image)
 
static bool seq_prefetch_scene_strip_is_rendered (PrefetchJob *pfjob, ListBase *channels, ListBase *seqbase, blender::Span< Sequence * > scene_strips, bool is_recursive_check)
 
static blender::VectorSet< Sequence * > query_scene_strips (ListBase *seqbase)
 
static bool seq_prefetch_must_skip_frame (PrefetchJob *pfjob, ListBase *channels, ListBase *seqbase)
 
static bool seq_prefetch_need_suspend (PrefetchJob *pfjob)
 
static void seq_prefetch_do_suspend (PrefetchJob *pfjob)
 
static void * seq_prefetch_frames (void *job)
 
static PrefetchJobseq_prefetch_start_ex (const SeqRenderData *context, float cfra)
 
void seq_prefetch_start (const SeqRenderData *context, float timeline_frame)
 
bool SEQ_prefetch_need_redraw (const bContext *C, Scene *scene)
 

Function Documentation

◆ query_scene_strips()

◆ seq_prefetch_anim_eval_context()

static AnimationEvalContext seq_prefetch_anim_eval_context ( PrefetchJob * pfjob)
static

◆ seq_prefetch_cfra()

◆ seq_prefetch_do_suspend()

◆ seq_prefetch_frames()

◆ seq_prefetch_free()

◆ seq_prefetch_free_depsgraph()

static void seq_prefetch_free_depsgraph ( PrefetchJob * pfjob)
static

◆ seq_prefetch_get_original_context()

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

◆ seq_prefetch_get_original_sequence()

Sequence * seq_prefetch_get_original_sequence ( Sequence * seq,
Scene * scene )

◆ seq_prefetch_get_time_range()

void seq_prefetch_get_time_range ( Scene * scene,
int * r_start,
int * r_end )

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

◆ seq_prefetch_init_depsgraph()

◆ seq_prefetch_is_cache_full()

static bool seq_prefetch_is_cache_full ( Scene * scene)
static

◆ seq_prefetch_job_get()

◆ seq_prefetch_job_is_running()

bool seq_prefetch_job_is_running ( Scene * scene)

◆ seq_prefetch_job_is_waiting()

static bool seq_prefetch_job_is_waiting ( Scene * scene)
static

Definition at line 112 of file prefetch.cc.

References seq_prefetch_job_get(), and PrefetchJob::waiting.

Referenced by SEQ_prefetch_need_redraw().

◆ seq_prefetch_job_scrubbing_set()

static void seq_prefetch_job_scrubbing_set ( Scene * scene,
bool is_scrubbing )
static

Definition at line 101 of file prefetch.cc.

References PrefetchJob::is_scrubbing, and seq_prefetch_job_get().

Referenced by seq_prefetch_start().

◆ seq_prefetch_must_skip_frame()

static bool seq_prefetch_must_skip_frame ( PrefetchJob * pfjob,
ListBase * channels,
ListBase * seqbase )
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().

◆ SEQ_prefetch_need_redraw()

◆ seq_prefetch_need_suspend()

static bool seq_prefetch_need_suspend ( PrefetchJob * pfjob)
static

◆ seq_prefetch_resume()

static void seq_prefetch_resume ( Scene * scene)
static

◆ seq_prefetch_scene_strip_is_rendered()

◆ seq_prefetch_seq_has_disk_cache()

static bool seq_prefetch_seq_has_disk_cache ( PrefetchJob * pfjob,
Sequence * seq,
bool can_have_final_image )
static

◆ seq_prefetch_start()

void seq_prefetch_start ( const SeqRenderData * context,
float timeline_frame )

◆ seq_prefetch_start_ex()

◆ SEQ_prefetch_stop()

◆ SEQ_prefetch_stop_all()

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

◆ seq_prefetch_update_active_seqbase()

◆ seq_prefetch_update_area()

static void seq_prefetch_update_area ( PrefetchJob * pfjob)
static

◆ seq_prefetch_update_context()

◆ seq_prefetch_update_depsgraph()

static void seq_prefetch_update_depsgraph ( PrefetchJob * pfjob)
static

◆ seq_prefetch_update_scene()

static void seq_prefetch_update_scene ( Scene * scene)
static

◆ sequencer_prefetch_get_original_sequence()

static Sequence * sequencer_prefetch_get_original_sequence ( Sequence * seq,
ListBase * seqbase )
static