84 if (screen->animtimer) {
95 if (screen->scrubbing) {
187 *start = pfjob->
cfra;
229 if (cfra > pfjob->
cfra) {
230 int delta = cfra - pfjob->
cfra;
240 if (cfra < pfjob->cfra) {
321 if (ms_orig !=
NULL) {
360 bool can_have_final_image)
377 if (!can_have_final_image) {
394 bool is_recursive_check)
401 for (
int i = 0; i <
count; i++) {
531 context->scene->ed->prefetch_job = pfjob;
struct AnimData * BKE_animdata_from_id(const struct ID *id)
AnimationEvalContext BKE_animsys_eval_context_construct(struct Depsgraph *depsgraph, float eval_time)
void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, const struct AnimationEvalContext *anim_eval_context, eAnimData_Recalc recalc, bool flush_to_original)
struct ViewLayer * BKE_view_layer_default_render(const struct Scene *scene)
struct Main * BKE_main_new(void)
void BKE_main_free(struct Main *mainvar)
#define LISTBASE_FOREACH(type, var, list)
void BLI_mutex_end(ThreadMutex *mutex)
void BLI_threadpool_remove(struct ListBase *threadbase, void *callerdata)
void BLI_condition_wait(ThreadCondition *cond, ThreadMutex *mutex)
void BLI_threadpool_init(struct ListBase *threadbase, void *(*do_thread)(void *), int tot)
void BLI_mutex_init(ThreadMutex *mutex)
pthread_cond_t ThreadCondition
void BLI_condition_end(ThreadCondition *cond)
void BLI_threadpool_end(struct ListBase *threadbase)
void BLI_condition_notify_one(ThreadCondition *cond)
void BLI_condition_init(ThreadCondition *cond)
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
void BLI_threadpool_insert(struct ListBase *threadbase, void *callerdata)
pthread_mutex_t ThreadMutex
Depsgraph * DEG_graph_new(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, eEvaluationMode mode)
struct Depsgraph Depsgraph
void DEG_graph_free(Depsgraph *graph)
void DEG_evaluate_on_framechange(Depsgraph *graph, float frame)
void DEG_graph_build_for_render_pipeline(struct Depsgraph *graph)
void DEG_debug_name_set(struct Depsgraph *depsgraph, const char *name)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ SEQ_CACHE_STORE_PREPROCESSED
@ SEQ_CACHE_STORE_FINAL_OUT
@ SEQ_CACHE_PREFETCH_ENABLE
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
#define SEQ_ITERATOR_FOREACH(var, collection)
@ SEQ_TASK_PREFETCH_RENDER
ListBase * SEQ_channels_displayed_get(Editing *ed)
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
bool seq_cache_is_full(void)
void seq_cache_free_temp_cache(Scene *scene, short id, int timeline_frame)
struct ImBuf * seq_cache_get(const SeqRenderData *context, Sequence *seq, float timeline_frame, int type)
bool seq_cache_recycle_item(Scene *scene)
SeqCollection * SEQ_query_all_strips_recursive(ListBase *seqbase)
bool SEQ_collection_remove_strip(Sequence *seq, SeqCollection *collection)
void SEQ_collection_free(SeqCollection *collection)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void seq_prefetch_get_time_range(Scene *scene, int *start, int *end)
static bool seq_prefetch_scene_strip_is_rendered(PrefetchJob *pfjob, ListBase *channels, ListBase *seqbase, SeqCollection *scene_strips, bool is_recursive_check)
void seq_prefetch_free(Scene *scene)
bool seq_prefetch_job_is_running(Scene *scene)
static bool seq_prefetch_must_skip_frame(PrefetchJob *pfjob, ListBase *channels, ListBase *seqbase)
static void * seq_prefetch_frames(void *job)
static void seq_prefetch_update_area(PrefetchJob *pfjob)
bool SEQ_prefetch_need_redraw(Main *bmain, Scene *scene)
void SEQ_prefetch_stop(Scene *scene)
static PrefetchJob * seq_prefetch_job_get(Scene *scene)
static bool seq_prefetch_job_is_waiting(Scene *scene)
static void seq_prefetch_update_depsgraph(PrefetchJob *pfjob)
static float seq_prefetch_cfra(PrefetchJob *pfjob)
void SEQ_prefetch_stop_all(void)
static void seq_prefetch_do_suspend(PrefetchJob *pfjob)
void seq_prefetch_start(const SeqRenderData *context, float timeline_frame)
static void seq_prefetch_update_context(const SeqRenderData *context)
static SeqCollection * query_scene_strips(ListBase *seqbase)
static bool seq_prefetch_seq_has_disk_cache(PrefetchJob *pfjob, Sequence *seq, bool can_have_final_image)
static PrefetchJob * seq_prefetch_start_ex(const SeqRenderData *context, float cfra)
Sequence * seq_prefetch_get_original_sequence(Sequence *seq, Scene *scene)
static void seq_prefetch_update_active_seqbase(PrefetchJob *pfjob)
static AnimationEvalContext seq_prefetch_anim_eval_context(PrefetchJob *pfjob)
static void seq_prefetch_update_scene(Scene *scene)
static bool seq_prefetch_is_playing(const Main *bmain)
static void seq_prefetch_init_depsgraph(PrefetchJob *pfjob)
static void seq_prefetch_resume(Scene *scene)
static bool seq_prefetch_is_cache_full(Scene *scene)
struct PrefetchJob PrefetchJob
static bool seq_prefetch_need_suspend(PrefetchJob *pfjob)
static void seq_prefetch_free_depsgraph(PrefetchJob *pfjob)
static Sequence * sequencer_prefetch_get_original_sequence(Sequence *seq, ListBase *seqbase)
static bool seq_prefetch_is_scrubbing(const Main *bmain)
SeqRenderData * seq_prefetch_get_original_context(const SeqRenderData *context)
ImBuf * SEQ_render_give_ibuf(const SeqRenderData *context, float timeline_frame, int chanshown)
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)
int seq_get_shown_sequences(const Scene *scene, ListBase *channels, ListBase *seqbase, const int timeline_frame, const int chanshown, Sequence **r_seq_arr)
ListBase * SEQ_active_seqbase_get(const Editing *ed)
MetaStack * SEQ_meta_stack_active_get(const Editing *ed)
void SEQ_seqbase_active_set(Editing *ed, ListBase *seqbase)
Editing * SEQ_editing_get(const Scene *scene)
bool SEQ_relations_render_loop_check(Sequence *seq_main, Sequence *seq)
struct PrefetchJob * prefetch_job
struct PrefetchJob * next
ThreadCondition prefetch_suspend_cond
int num_frames_prefetched
struct ListBase * seqbasep_cpy
struct PrefetchJob * prev
struct Scene * scene_eval
struct Depsgraph * depsgraph
struct ListBase * seqbasep
struct SeqRenderData context_cpy
struct SeqRenderData context
ThreadMutex prefetch_suspend_mutex