From bd5575200fa7187cda98603f9767a5f7b1900e1f Mon Sep 17 00:00:00 2001 From: msiglreith Date: Mon, 23 Apr 2018 15:04:17 +0200 Subject: [PATCH] Fill out more sampler properties --- libportability-gfx/src/impls.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index ff3c4f9..fdc8f21 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -1845,7 +1845,6 @@ pub extern "C" fn gfxCreateSampler( pSampler: *mut VkSampler, ) -> VkResult { let info = unsafe { &*pCreateInfo }; - //TODO: fill all the sampler properties let gfx_info = hal::image::SamplerInfo { min_filter: conv::map_filter(info.minFilter), mag_filter: conv::map_filter(info.magFilter), @@ -1855,11 +1854,19 @@ pub extern "C" fn gfxCreateSampler( conv::map_wrap_mode(info.addressModeV), conv::map_wrap_mode(info.addressModeW), ), - lod_bias: 0.0.into(), - lod_range: 0.0.into() .. 1.0.into(), - comparison: None, - border: [0.0; 4].into(), - anisotropic: hal::image::Anisotropic::Off, + lod_bias: info.mipLodBias.into(), + lod_range: info.minLod.into() .. info.maxLod.into(), + comparison: if info.compareEnable == VK_TRUE { + Some(conv::map_compare_op(info.compareOp)) + } else { + None + }, + border: [0.0; 4].into(), // TODO + anisotropic: if info.anisotropyEnable == VK_TRUE { + hal::image::Anisotropic::On(info.maxAnisotropy as _) + } else { + hal::image::Anisotropic::Off + }, }; let sampler = gpu.device.create_sampler(gfx_info); unsafe { *pSampler = Handle::new(sampler); }