27#ifdef SK_BUILD_FOR_ANDROID
33 externalFormat.
pNext =
nullptr;
36 ycbcrCreateInfo.
pNext = &externalFormat;
47 VkSamplerYcbcrConversion conversion;
51 CreateSamplerYcbcrConversion(
52 context->
device(), &ycbcrCreateInfo,
nullptr, &conversion));
67 static const int num32DataCnt = useExternalFormat ? 3 : 2;
72 if (useExternalFormat) {
73 builder[i++] = (uint32_t)(
info.fExternalFormat << 32);
74 builder[i++] = (uint32_t)
info.fExternalFormat;
76 builder[i++] =
info.fFormat;
78 builder[i++] =
info.nonFormatInfoAsUInt32();
85VulkanSamplerYcbcrConversion::VulkanSamplerYcbcrConversion(
91 "VulkanSamplerYcbcrConversion")
92 , fYcbcrConversion (ycbcrConversion) {}
98 DestroySamplerYcbcrConversion(
sharedContext->device(), fYcbcrConversion,
nullptr));
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
#define VULKAN_CALL(IFACE, X)
#define VULKAN_CALL_RESULT(SHARED_CONTEXT, RESULT, X)
static ResourceType GenerateResourceType()
const GraphiteResourceKey & key() const
const SharedContext * sharedContext() const
bool supportsYcbcrConversion() const
static GraphiteResourceKey MakeYcbcrConversionKey(const VulkanSharedContext *, const VulkanYcbcrConversionInfo &)
static sk_sp< VulkanSamplerYcbcrConversion > Make(const VulkanSharedContext *, const VulkanYcbcrConversionInfo &)
void freeGpuData() override
const VulkanCaps & vulkanCaps() const
void SetupSamplerYcbcrConversionInfo(VkSamplerYcbcrConversionCreateInfo *outInfo, const VulkanYcbcrConversionInfo &conversionInfo)
@ VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID