blob: b4304e3ae89883ffff8caa1f928c8b31d7a4502d [file] [log] [blame]
/*
* Copyright 2022 Google LLC.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
#define skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
#include "include/gpu/graphite/vk/VulkanGraphiteTypes.h"
namespace skgpu::graphite {
struct VulkanTextureSpec {
VulkanTextureSpec()
: fFlags(0)
, fFormat(VK_FORMAT_UNDEFINED)
, fImageTiling(VK_IMAGE_TILING_OPTIMAL)
, fImageUsageFlags(0)
, fSharingMode(VK_SHARING_MODE_EXCLUSIVE)
, fAspectMask(VK_IMAGE_ASPECT_COLOR_BIT) {}
VulkanTextureSpec(const VulkanTextureInfo& info)
: fFlags(info.fFlags)
, fFormat(info.fFormat)
, fImageTiling(info.fImageTiling)
, fImageUsageFlags(info.fImageUsageFlags)
, fSharingMode(info.fSharingMode)
, fAspectMask(info.fAspectMask) {}
bool operator==(const VulkanTextureSpec& that) const {
return fFlags == that.fFlags &&
fFormat == that.fFormat &&
fImageTiling == that.fImageTiling &&
fImageUsageFlags == that.fImageUsageFlags &&
fSharingMode == that.fSharingMode &&
fAspectMask == that.fAspectMask;
}
VkImageCreateFlags fFlags;
VkFormat fFormat;
VkImageTiling fImageTiling;
VkImageUsageFlags fImageUsageFlags;
VkSharingMode fSharingMode;
VkImageAspectFlags fAspectMask;
// GrVkYcbcrConversionInfo fYcbcrConversionInfo;
};
VulkanTextureInfo VulkanTextureSpecToTextureInfo(const VulkanTextureSpec& vkSpec,
uint32_t sampleCount,
Mipmapped mipmapped);
} // namespace skgpu::graphite
#endif // skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED