Blender  V3.3
Classes | Typedefs | Functions
prefetch.c File Reference
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "DNA_windowmanager_types.h"
#include "BLI_listbase.h"
#include "BLI_threads.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_scene.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "DEG_depsgraph_debug.h"
#include "DEG_depsgraph_query.h"
#include "SEQ_channels.h"
#include "SEQ_iterator.h"
#include "SEQ_prefetch.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "SEQ_sequencer.h"
#include "image_cache.h"
#include "prefetch.h"
#include "render.h"

Go to the source code of this file.

Classes

struct  PrefetchJob
 

Typedefs

typedef struct PrefetchJob PrefetchJob
 

Functions

static bool seq_prefetch_is_playing (const Main *bmain)
 
static bool seq_prefetch_is_scrubbing (const Main *bmain)
 
static PrefetchJobseq_prefetch_job_get (Scene *scene)
 
bool seq_prefetch_job_is_running (Scene *scene)
 
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 *start, int *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)
 
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, SeqCollection *scene_strips, bool is_recursive_check)
 
static SeqCollectionquery_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 voidseq_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 (Main *bmain, Scene *scene)
 

Typedef Documentation

◆ PrefetchJob

typedef struct PrefetchJob PrefetchJob

Function Documentation

◆ query_scene_strips()

static SeqCollection* query_scene_strips ( ListBase seqbase)
static

◆ seq_prefetch_anim_eval_context()

static AnimationEvalContext seq_prefetch_anim_eval_context ( PrefetchJob pfjob)
static

◆ seq_prefetch_cfra()

static float seq_prefetch_cfra ( PrefetchJob pfjob)
static

◆ seq_prefetch_do_suspend()

static void seq_prefetch_do_suspend ( PrefetchJob pfjob)
static

◆ seq_prefetch_frames()

static void* seq_prefetch_frames ( void job)
static

◆ seq_prefetch_free()

void seq_prefetch_free ( Scene scene)

◆ 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)

◆ seq_prefetch_get_original_sequence()

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

◆ seq_prefetch_get_time_range()

void seq_prefetch_get_time_range ( Scene scene,
int *  start,
int *  end 
)

Definition at line 183 of file prefetch.c.

References PrefetchJob::cfra, scene, seq_prefetch_cfra(), and seq_prefetch_job_get().

Referenced by seq_cache_choose_key().

◆ seq_prefetch_init_depsgraph()

static void seq_prefetch_init_depsgraph ( PrefetchJob pfjob)
static

◆ seq_prefetch_is_cache_full()

static bool seq_prefetch_is_cache_full ( Scene scene)
static

◆ seq_prefetch_is_playing()

static bool seq_prefetch_is_playing ( const Main bmain)
static

Definition at line 81 of file prefetch.c.

References ListBase::first, and Main::screens.

Referenced by SEQ_prefetch_need_redraw(), and seq_prefetch_start().

◆ seq_prefetch_is_scrubbing()

static bool seq_prefetch_is_scrubbing ( const Main bmain)
static

◆ seq_prefetch_job_get()

static PrefetchJob* seq_prefetch_job_get ( Scene scene)
static

◆ 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 121 of file prefetch.c.

References scene, seq_prefetch_job_get(), and PrefetchJob::waiting.

Referenced by SEQ_prefetch_need_redraw().

◆ seq_prefetch_must_skip_frame()

static bool seq_prefetch_must_skip_frame ( PrefetchJob pfjob,
ListBase channels,
ListBase seqbase 
)
static

◆ SEQ_prefetch_need_redraw()

bool SEQ_prefetch_need_redraw ( Main bmain,
Scene scene 
)

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

static bool seq_prefetch_scene_strip_is_rendered ( PrefetchJob pfjob,
ListBase channels,
ListBase seqbase,
SeqCollection scene_strips,
bool  is_recursive_check 
)
static

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

static PrefetchJob* seq_prefetch_start_ex ( const SeqRenderData context,
float  cfra 
)
static

◆ SEQ_prefetch_stop()

void SEQ_prefetch_stop ( struct Scene scene)

◆ SEQ_prefetch_stop_all()

void SEQ_prefetch_stop_all ( void  )

Definition at line 246 of file prefetch.c.

References G, Scene::id, ID::next, scene, and SEQ_prefetch_stop().

Referenced by WM_jobs_kill_all().

◆ seq_prefetch_update_active_seqbase()

static void seq_prefetch_update_active_seqbase ( PrefetchJob pfjob)
static

◆ seq_prefetch_update_area()

static void seq_prefetch_update_area ( PrefetchJob pfjob)
static

◆ seq_prefetch_update_context()

static void seq_prefetch_update_context ( const SeqRenderData context)
static

◆ 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