Program Listing for File Tex2D.hpp
↰ Return to documentation for file (engine/include/Cacao/Tex2D.hpp
)
#pragma once
#include "DllHelper.hpp"
#include "Asset.hpp"
#include "libcacaoimage.hpp"
#include <memory>
namespace Cacao {
class CACAO_API Tex2D final : public Asset {
public:
static std::shared_ptr<Tex2D> Create(libcacaoimage::Image&& imageBuffer, const std::string& addr) {
return std::shared_ptr<Tex2D>(new Tex2D(std::move(imageBuffer), addr));
}
Tex2D(const Tex2D&) = delete;
Tex2D(Tex2D&&);
Tex2D& operator=(const Tex2D&) = delete;
Tex2D& operator=(Tex2D&&);
void Realize();
std::shared_future<void> RealizeAsync();
void DropRealized();
class Impl;
~Tex2D();
private:
Tex2D(libcacaoimage::Image&& imageBuffer, const std::string& addr);
friend class PAL;
friend class ResourceManager;
std::unique_ptr<Impl> impl;
friend class ImplAccessor;
};
}