29 #include <QOpenGLFunctions>
30 #include <QOpenGLShaderProgram>
31 #include <QOpenGLTexture>
36 #include <QGridLayout>
37 #include <QPushButton>
38 #include <QMouseEvent>
39 #include <QXmlStreamReader>
40 #include <QXmlStreamWriter>
62 extern QVector<EffectMeta>
effects;
164 virtual void load(QXmlStreamReader& stream);
165 virtual void custom_load(QXmlStreamReader& stream);
166 virtual void save(QXmlStreamWriter& stream);
193 virtual void process_image(
double timecode, uint8_t* input, uint8_t* output,
int size);
197 virtual void process_audio(
double timecode_start,
double timecode_end, quint8* samples,
int nb_bytes,
int channel_count);
204 template <
typename T>
207 static std::random_device device;
208 static std::mt19937 generator(device());
209 static std::uniform_int_distribution<> distribution(std::numeric_limits<T>::min(), std::numeric_limits<T>::max());
210 return distribution(generator);
255 virtual void redraw(
double timecode);
QOpenGLShaderProgram * glslProgram
Definition: effect.h:229
static EffectPtr Create(Clip *c, const EffectMeta *em)
Definition: effect.cpp:73
void SetExpanded(bool e)
Definition: effect.cpp:515
QVector< EffectMeta > effects
Definition: effect.cpp:71
bool are_gizmos_enabled()
Definition: effect.cpp:1026
Definition: effectgizmo.h:43
void save_to_file()
Definition: effect.cpp:445
void move_up()
Definition: effect.cpp:415
int vertexTopRightZ
Definition: effect.h:107
EffectInternal
Definition: effect.h:80
QImage img
Definition: effect.h:234
float textureTopLeftX
Definition: effect.h:115
QVector< EffectGizmo * > gizmos
Definition: effect.h:243
int vertexTopLeftZ
Definition: effect.h:104
int vertexBottomLeftY
Definition: effect.h:109
void load_from_string(const QByteArray &s)
Definition: effect.cpp:652
int Flags()
Definition: effect.cpp:814
qint16 mix_audio_sample(qint16 a, qint16 b)
Definition: effect.cpp:1128
float textureTopLeftY
Definition: effect.h:116
Clip * parent_clip
Definition: effect.h:142
double log_volume(double linear)
Definition: audio.cpp:246
bool valueHasChanged(double timecode)
Definition: effect.cpp:1074
virtual void process_image(double timecode, uint8_t *input, uint8_t *output, int size)
Definition: effect.cpp:832
float textureBottomRightQ
Definition: effect.h:123
static const EffectMeta * GetInternalMeta(int internal_id, int type)
Definition: effect.cpp:106
void delete_self()
Definition: effect.cpp:410
virtual void process_coords(double timecode, GLTextureCoords &coords, int data)
Definition: effect.cpp:889
virtual void save(QXmlStreamWriter &stream)
Definition: effect.cpp:617
bool isOpen
Definition: effect.h:241
QString name
Definition: effect.h:145
int vertexBottomRightX
Definition: effect.h:111
QVector< QVariant > cachedValues
Definition: effect.h:257
void move_down()
Definition: effect.cpp:430
bool is_open()
Definition: effect.cpp:716
void delete_texture()
Definition: effect.cpp:1105
int vertexTopLeftY
Definition: effect.h:103
QOpenGLTexture * texture
Definition: effect.h:235
const char * ffmpeg_filter
Definition: effect.h:191
float textureTopRightX
Definition: effect.h:118
int id
Definition: effect.h:144
void EnabledChanged(bool)
EffectKeyframeType
Definition: effect.h:74
T randomNumber()
Definition: effect.h:205
int vertexTopRightY
Definition: effect.h:106
virtual void refresh()
Definition: effect.cpp:404
virtual void startEffect()
Definition: effect.cpp:795
EffectRow * row(int i)
Definition: effect.cpp:382
EffectGizmo * add_gizmo(int type)
Definition: effect.cpp:390
bool expanded_
Definition: effect.h:248
virtual void redraw(double timecode)
Definition: effect.cpp:1030
bool is_glsl_linked()
Definition: effect.cpp:791
float textureBottomRightX
Definition: effect.h:121
QVector< EffectRow * > rows
Definition: effect.h:242
int vertexTopRightX
Definition: effect.h:105
bool bound
Definition: effect.h:244
void copy_field_keyframes(EffectPtr e)
Definition: effect.cpp:361
int vertexTopLeftX
Definition: effect.h:102
virtual bool AlwaysUpdate()
Definition: effect.cpp:501
float opacity
Definition: effect.h:129
float textureTopLeftQ
Definition: effect.h:117
QString vertPath
Definition: effect.h:230
const EffectMeta * get_meta_from_name(const QString &input)
Definition: effect.cpp:1110
virtual void process_audio(double timecode_start, double timecode_end, quint8 *samples, int nb_bytes, int channel_count)
Definition: effect.cpp:930
int blendmode
Definition: effect.h:128
float textureBottomLeftQ
Definition: effect.h:126
bool IsEnabled()
Definition: effect.cpp:506
int vertexBottomLeftX
Definition: effect.h:108
void SetEnabled(bool b)
Definition: effect.cpp:520
void close()
Definition: effect.cpp:779
void AddRow(EffectRow *row)
Definition: effect.cpp:355
virtual void gizmo_draw(double timecode, GLTextureCoords &coords)
Definition: effect.cpp:932
void SetFlags(int flags)
Definition: effect.cpp:819
bool enabled_
Definition: effect.h:247
void FieldChanged()
Definition: effect.cpp:406
float textureTopRightQ
Definition: effect.h:120
virtual void process_shader(double timecode, GLTextureCoords &, int iteration)
Definition: effect.cpp:841
int gizmo_count()
Definition: effect.cpp:400
void setIterations(int i)
Definition: effect.cpp:828
virtual void custom_load(QXmlStreamReader &stream)
Definition: effect.cpp:615
std::shared_ptr< Effect > EffectPtr
Definition: effect.h:50
int iterations
Definition: effect.h:245
virtual GLuint process_superimpose(double timecode)
Definition: effect.cpp:891
QByteArray save_to_string()
Definition: effect.cpp:696
float textureBottomRightY
Definition: effect.h:122
QVector< KeyframeDataChange * > gizmo_dragging_actions_
Definition: effect.h:252
int getIterations()
Definition: effect.cpp:824
void validate_meta_path()
Definition: effect.cpp:720
float textureBottomLeftY
Definition: effect.h:125
virtual void endEffect()
Definition: effect.cpp:807
~Effect()
Definition: effect.cpp:339
int vertexBottomRightY
Definition: effect.h:112
virtual EffectPtr copy(Clip *c)
Definition: effect.cpp:834
QString fragPath
Definition: effect.h:231
const EffectMeta * meta
Definition: effect.h:143
int grid_size
Definition: effect.h:100
void open()
Definition: effect.cpp:737
The EffectRow class.
Definition: effectrow.h:51
int vertexBottomRightZ
Definition: effect.h:113
EffectType
Definition: effect.h:66
float textureBottomLeftX
Definition: effect.h:124
void load_from_file()
Definition: effect.cpp:475
VideoEffectFlags
Definition: effect.h:179
float textureTopRightY
Definition: effect.h:119
int vertexBottomLeftZ
Definition: effect.h:110
void gizmo_move(EffectGizmo *sender, int x_movement, int y_movement, double timecode, bool done)
Definition: effect.cpp:934
virtual void load(QXmlStreamReader &stream)
Definition: effect.cpp:525
Effect(Clip *c, const EffectMeta *em)
Definition: effect.cpp:115
int flags_
Definition: effect.h:250
void gizmo_world_to_screen()
Definition: effect.cpp:1003
EffectGizmo * gizmo(int i)
Definition: effect.cpp:396
int row_count()
Definition: effect.cpp:386
bool IsExpanded()
Definition: effect.cpp:510