#pragma once #include "vk.hpp" #include #include #include namespace cruft::vk::icd { struct icd_t { std::string file_format_version; struct { std::experimental::filesystem::path library_path; std::string api_version; } icd; }; std::vector enumerate (void); class vendor { public: vendor (icd_t const&); vendor (::cruft::library &&); struct vtable_t { VkResult (*CreateInstance) (const VkInstanceCreateInfo*, const VkAllocationCallbacks*, VkInstance*) noexcept; } vtable; private: using get_proc_t = void* (*)(VkInstance, char const*); ::cruft::library m_library; get_proc_t const m_get_proc; }; }