blob: de5f531db7f3fa2bbc4e896c39d7bbfe21514bfb [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);
Zack Rusin952e9d42011-04-09 23:37:21 -040026
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010027 QByteArray data() const;
Zack Rusin952e9d42011-04-09 23:37:21 -040028 QImage thumb() const;
29
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:
38 QSize m_size;
Jose Fonseca93a7c0c2015-05-27 20:52:51 +010039 QByteArray m_data;
Zack Rusin952e9d42011-04-09 23:37:21 -040040 QImage m_thumb;
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};
44
45
46class ApiTexture : public ApiSurface
47{
48public:
49 ApiTexture();
50
José Fonseca18081d52011-05-07 00:10:25 +010051 QString label() const;
52 void setLabel(const QString &str);
Zack Rusin952e9d42011-04-09 23:37:21 -040053
54private:
José Fonseca18081d52011-05-07 00:10:25 +010055 QString m_label;
Zack Rusin952e9d42011-04-09 23:37:21 -040056};
57
Zack Rusina6846412011-04-10 19:51:44 -040058class ApiFramebuffer : public ApiSurface
59{
60public:
61 ApiFramebuffer();
62
63 QString type() const;
64 void setType(const QString &str);
65
66private:
67 QString m_type;
68
69};