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