blob: aa5eec159a2d147a3ede627cbab732e9048a9dc8 [file] [log] [blame]
Jose Fonseca9653f952015-05-19 16:32:43 +01001#pragma once
Zack Rusin952e9d42011-04-09 23:37:21 -04002
3#include <QImage>
4#include <QSize>
5#include <QString>
6
Zack Rusina69f0de2013-09-12 17:21:51 -04007namespace image {
8 class Image;
9}
10
Zack Rusin952e9d42011-04-09 23:37:21 -040011class ApiSurface
12{
13public:
14 ApiSurface();
15
16 QSize size() const;
17 void setSize(const QSize &size);
18
Zack Rusinb25c4b92011-11-16 22:43:34 -050019 int depth() const;
20 void setDepth(int depth);
21
Zack Rusine181b992011-11-17 16:00:41 -050022 QString formatName() const;
23 void setFormatName(const QString &str);
24
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010025 void setData(const QByteArray &data);
Martin Schulzeb44232b2016-04-16 19:06:16 +020026 QImage calculateThumbnail(bool opaque, bool alpha) const;
Zack Rusin952e9d42011-04-09 23:37:21 -040027
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010028 QByteArray data() const;
Zack Rusin952e9d42011-04-09 23:37:21 -040029
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010030 static image::Image *imageFromData(const QByteArray &data);
José Fonseca36509be2013-09-17 15:22:50 +010031 static QImage qimageFromRawImage(const image::Image *img,
32 float lowerValue = 0.0f,
33 float upperValue = 1.0f,
34 bool opaque = false,
35 bool alpha = false);
Zack Rusina69f0de2013-09-12 17:21:51 -040036
Zack Rusin952e9d42011-04-09 23:37:21 -040037private:
Martin Schulzeb44232b2016-04-16 19:06:16 +020038
Zack Rusin952e9d42011-04-09 23:37:21 -040039 QSize m_size;
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010040 QByteArray m_data;
Zack Rusinb25c4b92011-11-16 22:43:34 -050041 int m_depth;
Zack Rusine181b992011-11-17 16:00:41 -050042 QString m_formatName;
Zack Rusin952e9d42011-04-09 23:37:21 -040043
Martin Schulzeb44232b2016-04-16 19:06:16 +020044 QImage calculateThumbnail(const QByteArray &data, bool opaque,
45 bool alpha) const;
46};
Zack Rusin952e9d42011-04-09 23:37:21 -040047
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};