1 #include "apisurface.h"
6 ApiSurface::ApiSurface()
10 QSize ApiSurface::size() const
15 void ApiSurface::setSize(const QSize &size)
21 rgbaf2argb(float r, float g, float b, float a)
28 return (ab << 24 | rb << 16 | gb << 8 | bb);
31 void ApiSurface::contentsFromBase64(const QByteArray &base64)
33 QByteArray dataArray = QByteArray::fromBase64(base64);
34 const float *data = (const float*)dataArray.data();
35 int width = m_size.width();
36 int height = m_size.height();
38 if (width <= 0 || height <= 0)
41 int *pixelData = (int*)malloc(sizeof(int) * width * height);
43 //XXX not sure if this will work when
44 // QSysInfo::ByteOrder == QSysInfo::BigEndian
46 for (int y = 0; y < height; ++y) {
47 for (int x = 0; x < width; ++x) {
48 int pixel = rgbaf2argb(data[(y * width + x) * 4 + 0],
49 data[(y * width + x) * 4 + 1],
50 data[(y * width + x) * 4 + 2],
51 data[(y * width + x) * 4 + 3]);
52 pixelData[y * width + x] = pixel;
56 m_image = QImage((uchar*)pixelData,
58 QImage::Format_ARGB32).mirrored();
59 m_thumb = m_image.scaled(64, 64, Qt::KeepAspectRatio);
60 //m_image.save("testoutput.png");
65 QImage ApiSurface::image() const
70 QImage ApiSurface::thumb() const
75 ApiTexture::ApiTexture()
82 int ApiTexture::unit() const
87 void ApiTexture::setUnit(int un)
92 QString ApiTexture::target() const
97 void ApiTexture::setTarget(const QString &str)
102 int ApiTexture::level() const
107 void ApiTexture::setLevel(int l)