51 lines
951 B
C++
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
|