28 #include <QOpenGLFunctions> 29 #include <QOpenGLShaderProgram> 30 #include <QOpenGLTexture> 41 class QXmlStreamReader;
42 class QXmlStreamWriter;
57 extern QVector<EffectMeta> effects;
59 double log_volume(
double linear);
61 const EffectMeta* get_internal_meta(
int internal_id,
int type);
68 EFFECT_TYPE_TRANSITION
71 enum EffectKeyframeType {
72 EFFECT_KEYFRAME_LINEAR,
73 EFFECT_KEYFRAME_BEZIER,
78 EFFECT_INTERNAL_TRANSFORM,
80 EFFECT_INTERNAL_SOLID,
81 EFFECT_INTERNAL_NOISE,
82 EFFECT_INTERNAL_VOLUME,
85 EFFECT_INTERNAL_SHAKE,
86 EFFECT_INTERNAL_TIMECODE,
88 EFFECT_INTERNAL_FILLLEFTRIGHT,
90 EFFECT_INTERNAL_CORNERPIN,
91 EFFECT_INTERNAL_FREI0R,
95 enum EffectBlendMode {
99 BLEND_MODE_COLORDODGE,
101 BLEND_MODE_DIFFERENCE,
102 BLEND_MODE_EXCLUSION,
104 BLEND_MODE_HARDLIGHT,
107 BLEND_MODE_LINEARBURN,
108 BLEND_MODE_LINEARDODGE,
109 BLEND_MODE_LINEARLIGHT,
118 BLEND_MODE_SOFTLIGHT,
119 BLEND_MODE_SUBSTRACT,
121 BLEND_MODE_VIVIDLIGHT,
134 int vertexBottomLeftX;
135 int vertexBottomLeftY;
136 int vertexBottomLeftZ;
137 int vertexBottomRightX;
138 int vertexBottomRightY;
139 int vertexBottomRightZ;
141 float textureTopLeftX;
142 float textureTopLeftY;
143 float textureTopLeftQ;
144 float textureTopRightX;
145 float textureTopRightY;
146 float textureTopRightQ;
147 float textureBottomRightX;
148 float textureBottomRightY;
149 float textureBottomRightQ;
150 float textureBottomLeftX;
151 float textureBottomLeftY;
152 float textureBottomLeftQ;
158 const EffectMeta* get_meta_from_name(
const QString& input);
160 qint16 mix_audio_sample(qint16 a, qint16 b);
162 #include "effectfield.h" 163 #include "effectrow.h" 164 #include "effectgizmo.h" 177 EffectRow* add_row(
const QString &name,
bool savable =
true,
bool keyframable =
true);
186 void set_enabled(
bool b);
188 virtual void refresh();
191 void copy_field_keyframes(
Effect *e);
193 virtual void load(QXmlStreamReader& stream);
194 virtual void custom_load(QXmlStreamReader& stream);
195 virtual void save(QXmlStreamWriter& stream);
197 void load_from_string(
const QByteArray &s);
198 QByteArray save_to_string();
204 bool is_glsl_linked();
205 virtual void startEffect();
206 virtual void endEffect();
210 bool enable_superimpose;
214 void setIterations(
int i);
216 const char* ffmpeg_filter;
218 virtual void process_image(
double timecode, uint8_t* input, uint8_t* output,
int size);
219 virtual void process_shader(
double timecode,
GLTextureCoords&,
int iteration);
220 virtual void process_coords(
double timecode,
GLTextureCoords& coords,
int data);
221 virtual GLuint process_superimpose(
double timecode);
222 virtual void process_audio(
double timecode_start,
double timecode_end, quint8* samples,
int nb_bytes,
int channel_count);
225 void gizmo_move(
EffectGizmo* sender,
int x_movement,
int y_movement,
double timecode,
bool done);
226 void gizmo_world_to_screen();
227 bool are_gizmos_enabled();
229 void field_changed();
231 void show_context_menu(
const QPoint&);
236 void load_from_file();
239 QOpenGLShaderProgram* glslProgram;
245 QOpenGLTexture* texture;
248 bool enable_always_update;
254 QVector<EffectRow*> rows;
255 QVector<EffectGizmo*> gizmos;
256 QGridLayout* ui_layout;
262 virtual void redraw(
double timecode);
263 bool valueHasChanged(
double timecode);
264 QVector<QVariant> cachedValues;
265 void delete_texture();
266 int get_index_in_clip();
267 void validate_meta_path();
Definition: checkboxex.h:26
Definition: effectrow.h:37
Definition: effectgizmo.h:41