Extra2D/Extra2D/include/extra2d/asset/data_asset.h

51 lines
951 B
C++

#pragma once
#include <extra2d/asset/asset.h>
#include <vector>
namespace extra2d {
/**
* @brief 通用数据资源类
*
* 存储任意二进制数据。
*/
class DataAsset : public Asset {
public:
AssetType type() const override { return AssetType::Data; }
bool loaded() const override {
return state_.load(std::memory_order_acquire) == AssetState::Loaded;
}
size_t memSize() const override { return data_.size(); }
/**
* @brief 获取数据
* @return 数据指针
*/
const u8 *data() const { return data_.data(); }
/**
* @brief 获取数据大小
* @return 数据大小(字节)
*/
size_t size() const { return data_.size(); }
/**
* @brief 设置数据
* @param data 数据
*/
void setData(std::vector<u8> data);
/**
* @brief 释放数据
*/
void release();
private:
std::vector<u8> data_;
};
} // namespace extra2d