QtPBFImagePlugin/src/sprites.h

47 lines
854 B
C
Raw Normal View History

2018-11-22 21:57:21 +01:00
#ifndef SPRITES_H
#define SPRITES_H
#include <QRect>
#include <QMap>
#include <QImage>
2018-12-07 00:50:11 +01:00
#include <QString>
#include <QMutex>
2018-12-07 00:50:11 +01:00
class QJsonObject;
2018-11-22 21:57:21 +01:00
class Sprites
{
public:
Sprites() : _init(0) {}
2018-11-22 21:57:21 +01:00
bool load(const QString &jsonFile, const QString &imageFile);
2018-12-05 00:03:41 +01:00
bool isNull() const {return _imageFile.isNull();}
QImage icon(const QString &name, const QColor &color = Qt::black,
qreal size = 1.0);
2018-11-22 21:57:21 +01:00
private:
class Sprite {
public:
Sprite(const QJsonObject &json);
2018-12-05 00:03:41 +01:00
2018-11-22 21:57:21 +01:00
const QRect &rect() const {return _rect;}
2018-12-05 00:03:41 +01:00
qreal pixelRatio() const {return _pixelRatio;}
bool sdf() const {return _sdf;}
2018-11-22 21:57:21 +01:00
private:
QRect _rect;
2018-12-05 00:03:41 +01:00
qreal _pixelRatio;
bool _sdf;
2018-11-22 21:57:21 +01:00
};
QImage sprite(const Sprite &sprite, const QColor &color, qreal scale);
2018-12-05 00:03:41 +01:00
QMap<QString, Sprite> _sprites;
QImage _img;
QMutex _lock;
2018-12-05 00:03:41 +01:00
QString _imageFile;
int _init;
2018-11-22 21:57:21 +01:00
};
#endif // SPRITES_H