Vulkan Schnee 0.0.1 (22840dc8)
High-performance rendering engine
Loading...
Searching...
No Matches
RuntimeTextureDescriptorLease.h
1#pragma once
2
3#include <cstdint>
4#include <limits>
5
6namespace Engine::Core
7{
8 class AssetManager;
9}
10
11namespace Engine::Assets
12{
17 {
18 public:
21
24
27
28 [[nodiscard]] uint32_t index() const { return descriptorIndex_; }
29 [[nodiscard]] bool isValid() const { return owner_ != nullptr; }
30 explicit operator bool() const { return isValid(); }
31
32 void reset();
33
34 private:
35 friend class Core::AssetManager;
36
37 RuntimeTextureDescriptorLease( Core::AssetManager * owner, uint32_t descriptorIndex )
38 : owner_( owner ), descriptorIndex_( descriptorIndex )
39 {
40 }
41
43 uint32_t descriptorIndex_ = std::numeric_limits<uint32_t>::max();
44 };
45} // namespace Engine::Assets
RuntimeTextureDescriptorLease & operator=(RuntimeTextureDescriptorLease &&other) noexcept
RuntimeTextureDescriptorLease(Core::AssetManager *owner, uint32_t descriptorIndex)
RuntimeTextureDescriptorLease(const RuntimeTextureDescriptorLease &)=delete
RuntimeTextureDescriptorLease & operator=(const RuntimeTextureDescriptorLease &)=delete
RuntimeTextureDescriptorLease(RuntimeTextureDescriptorLease &&other) noexcept
Coordinates engine asset loading pipelines and runtime texture descriptor ownership.