#pragma once #include "vk/core/device.hpp" #include #include namespace VK::Core { /// /// C++ wrapper class for a Vulkan sampler. /// /// This class manages the lifetime of a Vulkan sampler. /// class Sampler { public: /// /// Create the sampler. /// /// @param device Vulkan device /// @param mode Address mode for the sampler. /// @param compare Compare operation for the sampler. /// @param isWhite Whether the border color is white. /// /// @throws VK::vulkan_error if object creation fails. /// Sampler(const Device& device, VkSamplerAddressMode mode, VkCompareOp compare, bool isWhite); /// Get the Vulkan handle. [[nodiscard]] auto handle() const { return *this->sampler; } private: std::shared_ptr sampler; }; }