.. _program_listing_file_Source_Azura_RenderSystem_Src_Vulkan_VkScopedSampler.cpp: Program Listing for File VkScopedSampler.cpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``Source\Azura\RenderSystem\Src\Vulkan\VkScopedSampler.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "Vulkan/VkScopedSampler.h" #include "Vulkan/VkMacros.h" namespace Azura { namespace Vulkan { VkScopedSampler::VkScopedSampler(VkDevice device, Log logger) : m_device(device), log_VulkanRenderSystem(std::move(logger)) { // TODO(vasumahesh1):[SAMPLER]: Generalize this! VkSamplerCreateInfo samplerInfo = {}; samplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; samplerInfo.magFilter = VK_FILTER_NEAREST; samplerInfo.minFilter = VK_FILTER_NEAREST; samplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; samplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; samplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; samplerInfo.anisotropyEnable = VK_FALSE; samplerInfo.maxAnisotropy = 1; samplerInfo.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK; samplerInfo.unnormalizedCoordinates = VK_FALSE; // [0,1) addressing samplerInfo.compareEnable = VK_FALSE; samplerInfo.compareOp = VK_COMPARE_OP_ALWAYS; samplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; samplerInfo.mipLodBias = 0.0f; samplerInfo.minLod = 0.0f; samplerInfo.maxLod = 0.0f; // Force use 0th Mip Map for Rendering. VERIFY_VK_OP(log_VulkanRenderSystem, vkCreateSampler(m_device, &samplerInfo, nullptr, &m_sampler), "Failed to create texture sampler"); } VkSampler VkScopedSampler::Real() const { return m_sampler; } void VkScopedSampler::CleanUp() const { vkDestroySampler(m_device, m_sampler, nullptr); } } // namespace Vulkan } // namespace Azura