-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpreviousframeoverlayeffect.h
50 lines (37 loc) · 1014 Bytes
/
previousframeoverlayeffect.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef PREVIOUSFRAMEOVERLAYEFFECT_H
#define PREVIOUSFRAMEOVERLAYEFFECT_H
#include <QGraphicsEffect>
#include <QPixmap>
#include <QException>
class PreviousFrameOverlayEffect : public QGraphicsEffect
{
Q_OBJECT
public:
PreviousFrameOverlayEffect();
enum class Mode {
PREVIOUS,
BLEND
};
void setPreviousFrame (const QString &filename);
void setMode (Mode newMode);
Mode getMode () const;
protected:
virtual void draw(QPainter *painter);
private:
QString _previousFrameFile;
bool _frameNeedsUpdate;
QPixmap _previousFrame;
Mode _mode;
public:
class LoadFailedException : public QException
{
public:
LoadFailedException(QString m = "") {_message = m;}
void raise() const { throw *this; }
LoadFailedException *clone() const {return new LoadFailedException(*this); }
QString message() const {return _message;}
private:
QString _message;
};
};
#endif // PREVIOUSFRAMEOVERLAYEFFECT_H