40 {
41 static VkFilter vkMinFilterModes[] = {
45 };
46 static VkFilter vkMagFilterModes[] = {
50 };
51
55 createInfo.
pNext =
nullptr;
57 createInfo.
magFilter = vkMagFilterModes[
static_cast<int>(samplerState.
filter())];
58 createInfo.
minFilter = vkMinFilterModes[
static_cast<int>(samplerState.
filter())];
69
70
71
72
73
75 bool useMipMaps = samplerState.
mipmapped() == skgpu::Mipmapped::kYes;
76 createInfo.
maxLod = !useMipMaps ? 0.0f : 10000.0f;
79
84
85 ycbcrConversion =
87 if (!ycbcrConversion) {
88 return nullptr;
89 }
90
92 conversionInfo.
pNext =
nullptr;
94
95 createInfo.
pNext = &conversionInfo;
96
101 } else if (
106 }
107
108
114 }
115
120 ycbcrConversion->
unref();
121 return nullptr;
122 }
123
125}
static VkSamplerMipmapMode mipmap_mode_to_vk_sampler_mipmap_mode(GrSamplerState::MipmapMode mm)
static VkSamplerAddressMode wrap_mode_to_vk_sampler_address(GrSamplerState::WrapMode wrapMode)
#define GR_VK_CALL_RESULT(GPU, RESULT, X)
static constexpr bool SkToBool(const T &x)
constexpr skgpu::Mipmapped mipmapped() const
constexpr WrapMode wrapModeX() const
constexpr Filter filter() const
constexpr MipmapMode mipmapMode() const
constexpr WrapMode wrapModeY() const
bool supportsYcbcrConversion() const
float maxSamplerAnisotropy() const
const GrVkCaps & vkCaps() const
GrVkResourceProvider & resourceProvider()
GrVkSamplerYcbcrConversion * findOrCreateCompatibleSamplerYcbcrConversion(const GrVkYcbcrConversionInfo &ycbcrInfo)
VkSamplerYcbcrConversion ycbcrConversion() const
static SK_END_REQUIRE_DENSE Key GenerateKey(GrSamplerState, const GrVkYcbcrConversionInfo &)
VkSampler sampler() const
FlutterSemanticsFlag flags
VkBool32 unnormalizedCoordinates
VkSamplerAddressMode addressModeU
VkBool32 anisotropyEnable
VkBorderColor borderColor
VkSamplerMipmapMode mipmapMode
VkSamplerAddressMode addressModeW
VkSamplerCreateFlags flags
VkSamplerAddressMode addressModeV
VkSamplerYcbcrConversion conversion
VkFormatFeatureFlags fFormatFeatures
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
@ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
VkFlags VkFormatFeatureFlags
@ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
@ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
@ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO