1 #include "apisurface.h"
6 ApiSurface::ApiSurface()
10 QSize ApiSurface::size() const
15 void ApiSurface::setSize(const QSize &size)
21 rgba8_to_argb(quint8 r, quint8 g, quint8 b, quint8 a)
23 return (a << 24 | r << 16 | g << 8 | b);
27 rgbaf2argb(float r, float g, float b, float a)
34 return (ab << 24 | rb << 16 | gb << 8 | bb);
37 void ApiSurface::contentsFromBase64(const QByteArray &base64)
39 QByteArray dataArray = QByteArray::fromBase64(base64);
40 const quint8 *data = (const quint8*)dataArray.data();
41 int width = m_size.width();
42 int height = m_size.height();
44 if (width <= 0 || height <= 0)
47 int *pixelData = (int*)malloc(sizeof(int) * width * height);
49 //XXX not sure if this will work when
50 // QSysInfo::ByteOrder == QSysInfo::BigEndian
52 for (int y = 0; y < height; ++y) {
53 for (int x = 0; x < width; ++x) {
54 int pixel = rgba8_to_argb(data[(y * width + x) * 4 + 0],
55 data[(y * width + x) * 4 + 1],
56 data[(y * width + x) * 4 + 2],
57 data[(y * width + x) * 4 + 3]);
58 pixelData[y * width + x] = pixel;
62 m_image = QImage((uchar*)pixelData,
64 QImage::Format_ARGB32).mirrored();
65 m_thumb = m_image.scaled(64, 64, Qt::KeepAspectRatio);
66 //m_image.save("testoutput.png");
71 QImage ApiSurface::image() const
76 QImage ApiSurface::thumb() const
81 ApiTexture::ApiTexture()
88 int ApiTexture::unit() const
93 void ApiTexture::setUnit(int un)
98 QString ApiTexture::target() const
103 void ApiTexture::setTarget(const QString &str)
108 int ApiTexture::level() const
113 void ApiTexture::setLevel(int l)
118 ApiFramebuffer::ApiFramebuffer()
123 QString ApiFramebuffer::type() const
128 void ApiFramebuffer::setType(const QString &str)