mirror of
https://github.com/lubosz/overte.git
synced 2025-08-06 10:14:41 +02:00
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
//
|
|
// BakeAssetTask.h
|
|
// assignment-client/src/assets
|
|
//
|
|
// Created by Stephen Birarda on 9/18/17.
|
|
// Copyright 2017 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#ifndef hifi_BakeAssetTask_h
|
|
#define hifi_BakeAssetTask_h
|
|
|
|
#include <memory>
|
|
|
|
#include <QtCore/QDebug>
|
|
#include <QtCore/QObject>
|
|
#include <QtCore/QRunnable>
|
|
#include <QDir>
|
|
#include <QProcess>
|
|
|
|
#include <AssetUtils.h>
|
|
|
|
class BakeAssetTask : public QObject, public QRunnable {
|
|
Q_OBJECT
|
|
public:
|
|
BakeAssetTask(const AssetUtils::AssetHash& assetHash, const AssetUtils::AssetPath& assetPath, const QString& filePath);
|
|
|
|
// Thread-safe inspection methods
|
|
bool isBaking() { return _isBaking.load(); }
|
|
bool wasAborted() const { return _wasAborted.load(); }
|
|
|
|
void run() override;
|
|
|
|
public slots:
|
|
void abort();
|
|
|
|
signals:
|
|
void bakeComplete(QString assetHash, QString assetPath, QString tempOutputDir);
|
|
void bakeFailed(QString assetHash, QString assetPath, QString errors);
|
|
void bakeAborted(QString assetHash, QString assetPath);
|
|
|
|
private:
|
|
std::atomic<bool> _isBaking { false };
|
|
AssetUtils::AssetHash _assetHash;
|
|
AssetUtils::AssetPath _assetPath;
|
|
QString _filePath;
|
|
std::unique_ptr<QProcess> _ovenProcess { nullptr };
|
|
std::atomic<bool> _wasAborted { false };
|
|
};
|
|
|
|
#endif // hifi_BakeAssetTask_h
|