12 #ifndef hifi_TextureBaker_h
13 #define hifi_TextureBaker_h
15 #include <QtCore/QObject>
16 #include <QtCore/QUrl>
17 #include <QtCore/QRunnable>
19 #include <QImageReader>
21 #include <image/TextureProcessing.h>
25 #include <graphics/Material.h>
27 extern const QString BAKED_TEXTURE_KTX_EXT;
28 extern const QString BAKED_META_TEXTURE_SUFFIX;
30 class TextureBaker :
public Baker {
34 TextureBaker(
const QUrl& textureURL, image::TextureUsage::Type textureType,
35 const QDir& outputDirectory,
const QString& baseFilename = QString(),
36 const QByteArray& textureContent = QByteArray());
38 const QByteArray& getOriginalTexture()
const {
return _originalTexture; }
40 QUrl getTextureURL()
const {
return _textureURL; }
42 QString getBaseFilename()
const {
return _baseFilename; }
44 QString getMetaTextureFileName()
const {
return _metaTextureFileName; }
46 virtual void setWasAborted(
bool wasAborted)
override;
48 static void setCompressionEnabled(
bool enabled) { _compressionEnabled = enabled; }
50 void setMapChannel(graphics::Material::MapChannel mapChannel) { _mapChannel = mapChannel; }
51 graphics::Material::MapChannel getMapChannel()
const {
return _mapChannel; }
52 image::TextureUsage::Type getTextureType()
const {
return _textureType; }
55 virtual void bake()
override;
56 virtual void abort()
override;
59 void originalTextureLoaded();
62 void processTexture();
66 void handleTextureNetworkReply();
69 QByteArray _originalTexture;
70 image::TextureUsage::Type _textureType;
71 graphics::Material::MapChannel _mapChannel;
72 bool _mapChannelSet {
false };
74 QString _baseFilename;
75 QDir _outputDirectory;
76 QString _metaTextureFileName;
77 QUrl _originalCopyFilePath;
79 std::atomic<bool> _abortProcessing {
false };
81 static bool _compressionEnabled;