#ifndef GrVkBackendSurface_DEFINED
#define GrVkBackendSurface_DEFINED
#include "include/private/base/SkAPI.h"
#include "include/private/gpu/vk/SkiaVulkan.h"
#include <string_view>
class GrBackendFormat;
class GrBackendTexture;
class GrBackendRenderTarget;
struct GrVkImageInfo;
namespace skgpu {
struct VulkanYcbcrConversionInfo;
}
namespace GrBackendFormats {
SK_API GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers = false);
SK_API GrBackendFormat MakeVk(const skgpu::VulkanYcbcrConversionInfo& ycbcrInfo,
bool willUseDRMFormatModifiers = false);
SK_API bool AsVkFormat(const GrBackendFormat&, VkFormat*);
SK_API const skgpu::VulkanYcbcrConversionInfo* GetVkYcbcrConversionInfo(const GrBackendFormat&);
}
namespace GrBackendTextures {
SK_API GrBackendTexture MakeVk(int width,
int height,
const GrVkImageInfo&,
std::string_view label = { … };
SK_API bool GetVkImageInfo(const GrBackendTexture&, GrVkImageInfo*);
SK_API void SetVkImageLayout(GrBackendTexture*, VkImageLayout);
}
namespace GrBackendRenderTargets {
SK_API GrBackendRenderTarget MakeVk(int width, int height, const GrVkImageInfo&);
SK_API bool GetVkImageInfo(const GrBackendRenderTarget&, GrVkImageInfo*);
SK_API void SetVkImageLayout(GrBackendRenderTarget*, VkImageLayout);
}
#endif