61 {
63 static const int kRangeShift = 3;
65 static const int kXChromaOffsetShift = kRangeShift + 1;
67 static const int kYChromaOffsetShift = kXChromaOffsetShift + 1;
69 static const int kChromaFilterShift = kYChromaOffsetShift + 1;
71 static const int kReconShift = kChromaFilterShift + 1;
73 static const int kCompRShift = kReconShift + 1;
74 static const int kCompGShift = kCompRShift + 3;
75 static const int kCompBShift = kCompGShift + 3;
76 static const int kCompAShift = kCompBShift + 3;
81 static_assert(kCompAShift <= 17);
82
83 uint32_t ycbcrKey =
static_cast<uint32_t
>(ycbcrInfo.
fYcbcrModel);
84 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fYcbcrRange) << kRangeShift);
85 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fXChromaOffset) << kXChromaOffsetShift);
86 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fYChromaOffset) << kYChromaOffsetShift);
87 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fChromaFilter) << kChromaFilterShift);
89 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fComponents.
r) << kCompRShift);
90 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fComponents.
g) << kCompGShift);
91 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fComponents.
b) << kCompBShift);
92 ycbcrKey |= (
static_cast<uint32_t
>(ycbcrInfo.
fComponents.
a) << kCompAShift);
93
95}
VkSamplerYcbcrRange fYcbcrRange
VkSamplerYcbcrModelConversion fYcbcrModel
VkComponentMapping fComponents
VkBool32 fForceExplicitReconstruction
VkChromaLocation fYChromaOffset
VkChromaLocation fXChromaOffset