Files
oak-editor/ui/viewerwidget.h
T

67 lines
1.7 KiB
C++

#ifndef VIEWERWIDGET_H
#define VIEWERWIDGET_H
#include <QOpenGLWidget>
#include <QMatrix4x4>
#include <QOpenGLTexture>
#include <QTimer>
#include <QThread>
#include <QMutex>
#include <QWaitCondition>
#include <QOpenGLFunctions>
class Viewer;
struct Clip;
struct MediaStream;
class QOpenGLFramebufferObject;
class Effect;
class EffectGizmo;
struct GLTextureCoords;
class ViewerWidget : public QOpenGLWidget, QOpenGLFunctions
{
Q_OBJECT
public:
ViewerWidget(QWidget *parent = 0);
void paintGL();
void initializeGL();
Viewer* viewer;
QOpenGLFramebufferObject* default_fbo;
bool waveform;
Clip* waveform_clip;
MediaStream* waveform_ms;
public slots:
void delete_function();
protected:
void paintEvent(QPaintEvent *e);
// void resizeGL(int w, int h);
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
QTimer retry_timer;
void drawTitleSafeArea();
bool dragging;
void seek_from_click(int x);
GLuint compose_sequence(QVector<Clip *> &nests, bool render_audio);
GLuint draw_clip(QOpenGLFramebufferObject *clip, GLuint texture, bool clear);
void process_effect(Clip* c, Effect* e, double timecode, GLTextureCoords& coords, GLuint& composite_texture, bool& fbo_switcher, int data);
Effect* gizmos;
int drag_start_x;
int drag_start_y;
int gizmo_x_mvmt;
int gizmo_y_mvmt;
EffectGizmo* selected_gizmo;
EffectGizmo* get_gizmo_from_mouse(int x, int y);
bool drawn_gizmos;
private slots:
void retry();
void show_context_menu();
void save_frame();
};
#endif // VIEWERWIDGET_H