Blender  V3.3
SEQ_effects.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2004 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 struct ImBuf;
15 struct SeqRenderData;
16 struct Sequence;
17 struct TextVars;
18 
19 /* Wipe effect */
20 enum {
23  /* DO_BOX_WIPE, */ /* UNUSED */
24  /* DO_CROSS_WIPE, */ /* UNUSED */
27 };
28 
32 
33  /* constructors & destructor */
34  /* init is _only_ called on first creation */
35  void (*init)(struct Sequence *seq);
36 
37  /* number of input strips needed
38  * (called directly after construction) */
39  int (*num_inputs)(void);
40 
41  /* load is called first time after readblenfile in
42  * get_sequence_effect automatically */
43  void (*load)(struct Sequence *seqconst);
44 
45  /* duplicate */
46  void (*copy)(struct Sequence *dst, struct Sequence *src, int flag);
47 
48  /* destruct */
49  void (*free)(struct Sequence *seq, bool do_id_user);
50 
51  /* returns: -1: no input needed,
52  * 0: no early out,
53  * 1: out = ibuf1,
54  * 2: out = ibuf2 */
55  int (*early_out)(struct Sequence *seq, float fac);
56 
57  /* sets the default `fac` value */
58  void (*get_default_fac)(const struct Scene *scene,
59  struct Sequence *seq,
60  float timeline_frame,
61  float *fac);
62 
63  /* execute the effect
64  * sequence effects are only required to either support
65  * float-rects or byte-rects
66  * (mixed cases are handled one layer up...) */
67 
68  struct ImBuf *(*execute)(const struct SeqRenderData *context,
69  struct Sequence *seq,
70  float timeline_frame,
71  float fac,
72  struct ImBuf *ibuf1,
73  struct ImBuf *ibuf2,
74  struct ImBuf *ibuf3);
75 
76  struct ImBuf *(*init_execution)(const struct SeqRenderData *context,
77  struct ImBuf *ibuf1,
78  struct ImBuf *ibuf2,
79  struct ImBuf *ibuf3);
80 
82  struct Sequence *seq,
83  float timeline_frame,
84  float fac,
85  struct ImBuf *ibuf1,
86  struct ImBuf *ibuf2,
87  struct ImBuf *ibuf3,
88  int start_line,
89  int total_lines,
90  struct ImBuf *out);
91 };
92 
94 int SEQ_effect_get_num_inputs(int seq_type);
95 void SEQ_effect_text_font_unload(struct TextVars *data, bool do_id_user);
96 void SEQ_effect_text_font_load(struct TextVars *data, bool do_id_user);
97 
98 #ifdef __cplusplus
99 }
100 #endif
void SEQ_effect_text_font_unload(struct TextVars *data, bool do_id_user)
Definition: effects.c:3227
@ DO_IRIS_WIPE
Definition: SEQ_effects.h:25
@ DO_CLOCK_WIPE
Definition: SEQ_effects.h:26
@ DO_DOUBLE_WIPE
Definition: SEQ_effects.h:22
@ DO_SINGLE_WIPE
Definition: SEQ_effects.h:21
int SEQ_effect_get_num_inputs(int seq_type)
Definition: effects.c:3741
void SEQ_effect_text_font_load(struct TextVars *data, bool do_id_user)
Definition: effects.c:3245
struct SeqEffectHandle SEQ_effect_handle_get(struct Sequence *seq)
Definition: effects.c:3704
Scene scene
SyclQueue void void * src
SyclQueue void void size_t num_bytes void
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
void(* get_default_fac)(const struct Scene *scene, struct Sequence *seq, float timeline_frame, float *fac)
Definition: SEQ_effects.h:58
void(* free)(struct Sequence *seq, bool do_id_user)
Definition: SEQ_effects.h:49
int(* num_inputs)(void)
Definition: SEQ_effects.h:39
void(* init)(struct Sequence *seq)
Definition: SEQ_effects.h:35
void(* load)(struct Sequence *seqconst)
Definition: SEQ_effects.h:43
void(* execute_slice)(const struct SeqRenderData *context, struct Sequence *seq, float timeline_frame, float fac, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, int start_line, int total_lines, struct ImBuf *out)
Definition: SEQ_effects.h:81
void(* copy)(struct Sequence *dst, struct Sequence *src, int flag)
Definition: SEQ_effects.h:46
int(* early_out)(struct Sequence *seq, float fac)
Definition: SEQ_effects.h:55