Jose Fonseca | 9653f95 | 2015-05-19 16:32:43 +0100 | [diff] [blame] | 1 | #pragma once |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 2 | |
3 | #include <QImage> | ||||
4 | #include <QSize> | ||||
5 | #include <QString> | ||||
6 | |||||
Zack Rusin | a69f0de | 2013-09-12 17:21:51 -0400 | [diff] [blame] | 7 | namespace image { |
8 | class Image; | ||||
9 | } | ||||
10 | |||||
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 11 | class ApiSurface |
12 | { | ||||
13 | public: | ||||
14 | ApiSurface(); | ||||
15 | |||||
16 | QSize size() const; | ||||
17 | void setSize(const QSize &size); | ||||
18 | |||||
Zack Rusin | b25c4b9 | 2011-11-16 22:43:34 -0500 | [diff] [blame] | 19 | int depth() const; |
20 | void setDepth(int depth); | ||||
21 | |||||
Zack Rusin | e181b99 | 2011-11-17 16:00:41 -0500 | [diff] [blame] | 22 | QString formatName() const; |
23 | void setFormatName(const QString &str); | ||||
24 | |||||
Jose Fonseca | 93a7c0c | 2015-05-27 20:52:51 +0100 | [diff] [blame] | 25 | void setData(const QByteArray &data); |
Martin Schulze | b44232b | 2016-04-16 19:06:16 +0200 | [diff] [blame^] | 26 | QImage calculateThumbnail(bool opaque, bool alpha) const; |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 27 | |
Jose Fonseca | 93a7c0c | 2015-05-27 20:52:51 +0100 | [diff] [blame] | 28 | QByteArray data() const; |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 29 | |
Jose Fonseca | 93a7c0c | 2015-05-27 20:52:51 +0100 | [diff] [blame] | 30 | static image::Image *imageFromData(const QByteArray &data); |
José Fonseca | 36509be | 2013-09-17 15:22:50 +0100 | [diff] [blame] | 31 | 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 Rusin | a69f0de | 2013-09-12 17:21:51 -0400 | [diff] [blame] | 36 | |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 37 | private: |
Martin Schulze | b44232b | 2016-04-16 19:06:16 +0200 | [diff] [blame^] | 38 | |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 39 | QSize m_size; |
Jose Fonseca | 93a7c0c | 2015-05-27 20:52:51 +0100 | [diff] [blame] | 40 | QByteArray m_data; |
Zack Rusin | b25c4b9 | 2011-11-16 22:43:34 -0500 | [diff] [blame] | 41 | int m_depth; |
Zack Rusin | e181b99 | 2011-11-17 16:00:41 -0500 | [diff] [blame] | 42 | QString m_formatName; |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 43 | |
Martin Schulze | b44232b | 2016-04-16 19:06:16 +0200 | [diff] [blame^] | 44 | QImage calculateThumbnail(const QByteArray &data, bool opaque, |
45 | bool alpha) const; | ||||
46 | }; | ||||
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 47 | |
48 | class ApiTexture : public ApiSurface | ||||
49 | { | ||||
50 | public: | ||||
51 | ApiTexture(); | ||||
52 | |||||
José Fonseca | 18081d5 | 2011-05-07 00:10:25 +0100 | [diff] [blame] | 53 | QString label() const; |
54 | void setLabel(const QString &str); | ||||
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 55 | |
56 | private: | ||||
José Fonseca | 18081d5 | 2011-05-07 00:10:25 +0100 | [diff] [blame] | 57 | QString m_label; |
Zack Rusin | 952e9d4 | 2011-04-09 23:37:21 -0400 | [diff] [blame] | 58 | }; |
59 | |||||
Zack Rusin | a684641 | 2011-04-10 19:51:44 -0400 | [diff] [blame] | 60 | class ApiFramebuffer : public ApiSurface |
61 | { | ||||
62 | public: | ||||
63 | ApiFramebuffer(); | ||||
64 | |||||
65 | QString type() const; | ||||
66 | void setType(const QString &str); | ||||
67 | |||||
68 | private: | ||||
69 | QString m_type; | ||||
70 | |||||
71 | }; |