31 explicit operator bool()
const {
return index != 0; }
33 return index ==
other.index && generation ==
other.generation;
38 static constexpr Handle null_handle{0, 0};
75 std::vector<std::pair<std::string, std::string>> recreate_all_pipelines();
82 vk::UniquePipeline* pipeline);
Creates and owns graphics pipelines. Handles cleanup on destruction.
Definition PipelineFactory.hpp:23
PipelineFactory & operator=(const PipelineFactory &)=delete
vk::UniquePipelineCache m_pipeline_cache
Definition PipelineFactory.hpp:94
std::vector< uint32_t > m_free_slots
Definition PipelineFactory.hpp:97
std::vector< PipelineEntry > m_tracked_pipelines
Definition PipelineFactory.hpp:96
std::vector< vk::UniquePipelineLayout > m_created_layouts
Definition PipelineFactory.hpp:98
vk::Device m_device
Definition PipelineFactory.hpp:92
PipelineFactory(const PipelineFactory &)=delete
ShaderLibrary & m_shaders
Definition PipelineFactory.hpp:93
Compiles HLSL → SPIR-V and caches VkShaderModules.
Definition ShaderLibrary.hpp:24
Definition Application.hpp:28
Definition PipelineFactory.hpp:27
bool operator!=(const Handle &other) const
Definition PipelineFactory.hpp:35
bool operator==(const Handle &other) const
Definition PipelineFactory.hpp:32
Definition PipelineFactory.hpp:43
auto operator<=>(const PipelineDesc &) const =default
std::string frag_path
Definition PipelineFactory.hpp:44
Definition PipelineFactory.hpp:84
vk::UniquePipeline pipeline
Definition PipelineFactory.hpp:85
PipelineDesc desc
Definition PipelineFactory.hpp:86
vk::PipelineLayout layout
Definition PipelineFactory.hpp:87
std::uint32_t u32
Definition types.hpp:15
constexpr T g_type_max
Definition types.hpp:21