Blender V4.3
SEQ_effects.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2004 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11struct ImBuf;
12struct SeqRenderData;
13struct Sequence;
14struct TextVars;
15
16enum class StripEarlyOut {
17 NoInput = -1, /* No input needed. */
18 DoEffect = 0, /* No early out (do the effect). */
19 UseInput1 = 1, /* Output = input1. */
20 UseInput2 = 2, /* Output = input2. */
21};
22
23/* Wipe effect */
24enum {
27 /* DO_BOX_WIPE, */ /* UNUSED */
28 /* DO_CROSS_WIPE, */ /* UNUSED */
31};
32
36
37 /* constructors & destructor */
38 /* init is _only_ called on first creation */
39 void (*init)(Sequence *seq);
40
41 /* number of input strips needed
42 * (called directly after construction) */
44
45 /* load is called first time after readblenfile in
46 * get_sequence_effect automatically */
47 void (*load)(Sequence *seqconst);
48
49 /* duplicate */
50 void (*copy)(Sequence *dst, const Sequence *src, int flag);
51
52 /* destruct */
53 void (*free)(Sequence *seq, bool do_id_user);
54
55 StripEarlyOut (*early_out)(const Sequence *seq, float fac);
56
57 /* sets the default `fac` value */
58 void (*get_default_fac)(const Scene *scene,
59 const 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 ImBuf *(*execute)(const SeqRenderData *context,
69 Sequence *seq,
70 float timeline_frame,
71 float fac,
72 ImBuf *ibuf1,
73 ImBuf *ibuf2);
74
75 ImBuf *(*init_execution)(const SeqRenderData *context, ImBuf *ibuf1, ImBuf *ibuf2);
76
77 void (*execute_slice)(const SeqRenderData *context,
78 Sequence *seq,
79 float timeline_frame,
80 float fac,
81 const ImBuf *ibuf1,
82 const ImBuf *ibuf2,
83 int start_line,
84 int total_lines,
85 ImBuf *out);
86};
87
89int SEQ_effect_get_num_inputs(int seq_type);
90void SEQ_effect_text_font_unload(TextVars *data, bool do_id_user);
91void SEQ_effect_text_font_load(TextVars *data, bool do_id_user);
void SEQ_effect_text_font_unload(TextVars *data, bool do_id_user)
Definition effects.cc:2535
StripEarlyOut
SeqEffectHandle SEQ_effect_handle_get(Sequence *seq)
Definition effects.cc:3430
int SEQ_effect_get_num_inputs(int seq_type)
Definition effects.cc:3467
void SEQ_effect_text_font_load(TextVars *data, bool do_id_user)
Definition effects.cc:2553
@ DO_IRIS_WIPE
@ DO_CLOCK_WIPE
@ DO_DOUBLE_WIPE
@ DO_SINGLE_WIPE
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void(* free)(Sequence *seq, bool do_id_user)
void(* get_default_fac)(const Scene *scene, const Sequence *seq, float timeline_frame, float *fac)
void(* copy)(Sequence *dst, const Sequence *src, int flag)
void(* init)(Sequence *seq)
void(* load)(Sequence *seqconst)
StripEarlyOut(* early_out)(const Sequence *seq, float fac)
int(* num_inputs)()
void(* execute_slice)(const SeqRenderData *context, Sequence *seq, float timeline_frame, float fac, const ImBuf *ibuf1, const ImBuf *ibuf2, int start_line, int total_lines, ImBuf *out)
uint8_t flag
Definition wm_window.cc:138