8 #include <QOpenGLFunctions> 9 #include <QOpenGLShaderProgram> 10 #include <QOpenGLTexture> 21 class QXmlStreamReader;
22 class QXmlStreamWriter;
37 extern QVector<EffectMeta> effects;
39 double log_volume(
double linear);
41 const EffectMeta* get_internal_meta(
int internal_id,
int type);
48 EFFECT_TYPE_TRANSITION
51 enum EffectKeyframeType {
52 EFFECT_KEYFRAME_LINEAR,
53 EFFECT_KEYFRAME_BEZIER,
58 EFFECT_INTERNAL_TRANSFORM,
60 EFFECT_INTERNAL_SOLID,
61 EFFECT_INTERNAL_NOISE,
62 EFFECT_INTERNAL_VOLUME,
65 EFFECT_INTERNAL_SHAKE,
66 EFFECT_INTERNAL_TIMECODE,
68 EFFECT_INTERNAL_FILLLEFTRIGHT,
70 EFFECT_INTERNAL_CORNERPIN,
71 EFFECT_INTERNAL_FREI0R,
75 enum EffectBlendMode {
79 BLEND_MODE_COLORDODGE,
81 BLEND_MODE_DIFFERENCE,
87 BLEND_MODE_LINEARBURN,
88 BLEND_MODE_LINEARDODGE,
89 BLEND_MODE_LINEARLIGHT,
101 BLEND_MODE_VIVIDLIGHT,
114 int vertexBottomLeftX;
115 int vertexBottomLeftY;
116 int vertexBottomLeftZ;
117 int vertexBottomRightX;
118 int vertexBottomRightY;
119 int vertexBottomRightZ;
121 float textureTopLeftX;
122 float textureTopLeftY;
123 float textureTopLeftQ;
124 float textureTopRightX;
125 float textureTopRightY;
126 float textureTopRightQ;
127 float textureBottomRightX;
128 float textureBottomRightY;
129 float textureBottomRightQ;
130 float textureBottomLeftX;
131 float textureBottomLeftY;
132 float textureBottomLeftQ;
138 const EffectMeta* get_meta_from_name(
const QString& input);
140 qint16 mix_audio_sample(qint16 a, qint16 b);
142 #include "effectfield.h" 143 #include "effectrow.h" 144 #include "effectgizmo.h" 157 EffectRow* add_row(
const QString &name,
bool savable =
true,
bool keyframable =
true);
166 void set_enabled(
bool b);
168 virtual void refresh();
171 void copy_field_keyframes(
Effect *e);
173 virtual void load(QXmlStreamReader& stream);
174 virtual void custom_load(QXmlStreamReader& stream);
175 virtual void save(QXmlStreamWriter& stream);
177 void load_from_string(
const QByteArray &s);
178 QByteArray save_to_string();
184 bool is_glsl_linked();
185 virtual void startEffect();
186 virtual void endEffect();
190 bool enable_superimpose;
194 void setIterations(
int i);
196 const char* ffmpeg_filter;
198 virtual void process_image(
double timecode, uint8_t* input, uint8_t* output,
int size);
199 virtual void process_shader(
double timecode,
GLTextureCoords&,
int iteration);
200 virtual void process_coords(
double timecode,
GLTextureCoords& coords,
int data);
201 virtual GLuint process_superimpose(
double timecode);
202 virtual void process_audio(
double timecode_start,
double timecode_end, quint8* samples,
int nb_bytes,
int channel_count);
205 void gizmo_move(
EffectGizmo* sender,
int x_movement,
int y_movement,
double timecode,
bool done);
206 void gizmo_world_to_screen();
207 bool are_gizmos_enabled();
209 void field_changed();
211 void show_context_menu(
const QPoint&);
216 void load_from_file();
219 QOpenGLShaderProgram* glslProgram;
225 QOpenGLTexture* texture;
228 bool enable_always_update;
234 QVector<EffectRow*> rows;
235 QVector<EffectGizmo*> gizmos;
236 QGridLayout* ui_layout;
242 virtual void redraw(
double timecode);
243 bool valueHasChanged(
double timecode);
244 QVector<QVariant> cachedValues;
245 void delete_texture();
246 int get_index_in_clip();
247 void validate_meta_path();
Definition: checkboxex.h:6
Definition: effectrow.h:17
Definition: effectgizmo.h:21