blob: ed6debe6ec2e662be64ddaee6d3098f961d0c6c8 [file] [log] [blame]
Zack Rusin952e9d42011-04-09 23:37:21 -04001#ifndef APISURFACE_H
2#define APISURFACE_H
3
4#include <QImage>
5#include <QSize>
6#include <QString>
7
Zack Rusina69f0de2013-09-12 17:21:51 -04008namespace image {
9 class Image;
10}
11
Zack Rusin952e9d42011-04-09 23:37:21 -040012class ApiSurface
13{
14public:
15 ApiSurface();
16
17 QSize size() const;
18 void setSize(const QSize &size);
19
Zack Rusinb25c4b92011-11-16 22:43:34 -050020 int depth() const;
21 void setDepth(int depth);
22
Zack Rusine181b992011-11-17 16:00:41 -050023 QString formatName() const;
24 void setFormatName(const QString &str);
25
Zack Rusin952e9d42011-04-09 23:37:21 -040026 void contentsFromBase64(const QByteArray &base64);
27
Zack Rusina69f0de2013-09-12 17:21:51 -040028 QByteArray base64Data() const;
Zack Rusin952e9d42011-04-09 23:37:21 -040029 QImage thumb() const;
30
Zack Rusina69f0de2013-09-12 17:21:51 -040031 static image::Image *imageFromBase64(const QByteArray &data);
José Fonseca36509be2013-09-17 15:22:50 +010032 static QImage qimageFromRawImage(const image::Image *img,
33 float lowerValue = 0.0f,
34 float upperValue = 1.0f,
35 bool opaque = false,
36 bool alpha = false);
Zack Rusina69f0de2013-09-12 17:21:51 -040037
Zack Rusin952e9d42011-04-09 23:37:21 -040038private:
39 QSize m_size;
José Fonsecab794df12011-04-12 08:28:45 +010040 int m_numChannels;
Zack Rusina69f0de2013-09-12 17:21:51 -040041 QByteArray m_base64Data;
Zack Rusin952e9d42011-04-09 23:37:21 -040042 QImage m_thumb;
Zack Rusinb25c4b92011-11-16 22:43:34 -050043 int m_depth;
Zack Rusine181b992011-11-17 16:00:41 -050044 QString m_formatName;
Zack Rusin952e9d42011-04-09 23:37:21 -040045};
46
47
48class ApiTexture : public ApiSurface
49{
50public:
51 ApiTexture();
52
José Fonseca18081d52011-05-07 00:10:25 +010053 QString label() const;
54 void setLabel(const QString &str);
Zack Rusin952e9d42011-04-09 23:37:21 -040055
56private:
José Fonseca18081d52011-05-07 00:10:25 +010057 QString m_label;
Zack Rusin952e9d42011-04-09 23:37:21 -040058};
59
Zack Rusina6846412011-04-10 19:51:44 -040060class ApiFramebuffer : public ApiSurface
61{
62public:
63 ApiFramebuffer();
64
65 QString type() const;
66 void setType(const QString &str);
67
68private:
69 QString m_type;
70
71};
72
Zack Rusin952e9d42011-04-09 23:37:21 -040073#endif