public static VkResult vkWaitForFences(VkDevice device, ReadOnlySpan <VkFence> fences, VkBool32 waitAll, ulong timeout) { fixed(VkFence *fencesPtr = fences) { return(vkWaitForFences(device, (uint)fences.Length, fencesPtr, waitAll, timeout)); } }
private void ConvertMinFilter(TextureFilter filter, out VkFilter minFilter, out VkFilter magFilter, out VkSamplerMipmapMode mipmapMode, out Vortice.Vulkan.VkBool32 enableComparison, out Vortice.Vulkan.VkBool32 enableAnisotropy) { minFilter = magFilter = VkFilter.Nearest; mipmapMode = VkSamplerMipmapMode.Nearest; enableComparison = Vortice.Vulkan.VkBool32.False; enableAnisotropy = Vortice.Vulkan.VkBool32.False; switch (filter) { // Mip point case TextureFilter.Point: break; case TextureFilter.MinLinearMagMipPoint: minFilter = VkFilter.Linear; break; case TextureFilter.MinPointMagLinearMipPoint: magFilter = VkFilter.Linear; break; case TextureFilter.MinMagLinearMipPoint: minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; // Mip linear case TextureFilter.MinMagPointMipLinear: mipmapMode = VkSamplerMipmapMode.Linear; break; case TextureFilter.MinLinearMagPointMipLinear: mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; break; case TextureFilter.MinPointMagMipLinear: mipmapMode = VkSamplerMipmapMode.Linear; magFilter = VkFilter.Linear; break; case TextureFilter.Linear: mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; case TextureFilter.Anisotropic: enableAnisotropy = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; // Comparison mip point case TextureFilter.ComparisonPoint: enableComparison = Vortice.Vulkan.VkBool32.True; break; case TextureFilter.ComparisonMinLinearMagMipPoint: enableComparison = Vortice.Vulkan.VkBool32.True; minFilter = VkFilter.Linear; break; case TextureFilter.ComparisonMinPointMagLinearMipPoint: enableComparison = Vortice.Vulkan.VkBool32.True; magFilter = VkFilter.Linear; break; case TextureFilter.ComparisonMinMagLinearMipPoint: enableComparison = Vortice.Vulkan.VkBool32.True; minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; // Comparison mip linear case TextureFilter.ComparisonMinMagPointMipLinear: enableComparison = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; break; case TextureFilter.ComparisonMinLinearMagPointMipLinear: enableComparison = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; break; case TextureFilter.ComparisonMinPointMagMipLinear: enableComparison = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; magFilter = VkFilter.Linear; break; case TextureFilter.ComparisonLinear: enableComparison = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; case TextureFilter.ComparisonAnisotropic: enableComparison = Vortice.Vulkan.VkBool32.True; enableAnisotropy = Vortice.Vulkan.VkBool32.True; mipmapMode = VkSamplerMipmapMode.Linear; minFilter = VkFilter.Linear; magFilter = VkFilter.Linear; break; default: throw new ArgumentOutOfRangeException(); } }
public static VkResult vkWaitForFences(VkDevice device, VkFence fence, VkBool32 waitAll, ulong timeout) { return(vkWaitForFences(device, 1, &fence, waitAll, timeout)); }