public VkSampler(VkDevice device, ref SamplerDescription description) { _device = device; VkFormats.GetFilterParams(description.Filter, out VkFilter minFilter, out VkFilter magFilter, out VkSamplerMipmapMode mipmapMode); VkSamplerCreateInfo samplerCI = new VkSamplerCreateInfo { sType = VkStructureType.SamplerCreateInfo, addressModeU = VkFormats.VdToVkSamplerAddressMode(description.AddressModeU), addressModeV = VkFormats.VdToVkSamplerAddressMode(description.AddressModeV), addressModeW = VkFormats.VdToVkSamplerAddressMode(description.AddressModeW), minFilter = minFilter, magFilter = magFilter, mipmapMode = mipmapMode, compareEnable = description.ComparisonKind != null, compareOp = description.ComparisonKind != null ? VkFormats.VdToVkCompareOp(description.ComparisonKind.Value) : VkCompareOp.Never, anisotropyEnable = description.Filter == SamplerFilter.Anisotropic, maxAnisotropy = description.MaximumAnisotropy, minLod = description.MinimumLod, maxLod = description.MaximumLod, mipLodBias = description.LodBias, borderColor = VkFormats.VdToVkSamplerBorderColor(description.BorderColor) }; vkCreateSampler(device, ref samplerCI, null, out _sampler); }