khr_sampler_ycbcr_conversion

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ExtensionName is "VK_KHR_sampler_ycbcr_conversion"
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_ycbcr_conversion.html
	ExtensionName string = C.VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME

	// ChromaLocationCositedEven specifies that downsampled chroma samples are aligned
	// with luma samples with even coordinates
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html
	ChromaLocationCositedEven ChromaLocation = C.VK_CHROMA_LOCATION_COSITED_EVEN_KHR
	// ChromaLocationMidpoint specifies that downsampled chroma samples are located halfway
	// between each even luma sample and the nearest higher odd luma sample
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html
	ChromaLocationMidpoint ChromaLocation = C.VK_CHROMA_LOCATION_MIDPOINT_KHR

	// ObjectTypeSamplerYcbcrConversion specifies a SamplerYcbcrConversion handle
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkObjectType.html
	ObjectTypeSamplerYcbcrConversion core1_0.ObjectType = C.VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR

	// FormatB10X6G10X6R10X6G10X6HorizontalChromaComponentPacked specifies a four-component, 64-bit
	// format containing a pair of G components, an R component, and a B component, collectiely
	// encoding a 2x1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB10X6G10X6R10X6G10X6HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR
	// FormatB12X4G12X4R12X4G12X4HorizontalChromaComponentPacked specifies a four-component,
	// 64-bit format containing a pair of G components, an R component, and a B component,
	// collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB12X4G12X4R12X4G12X4HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR
	// FormatB16G16R16G16HorizontalChroma specifies a four-component, 64-bit format containing a
	// pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB16G16R16G16HorizontalChroma core1_0.Format = C.VK_FORMAT_B16G16R16G16_422_UNORM_KHR
	// FormatB8G8R8G8HorizontalChroma specifies a four-component, 32-bit format containing a pair
	// of G components, an R component, and a B component, collectively encoding a 2×1 rectangle
	// of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatB8G8R8G8HorizontalChroma core1_0.Format = C.VK_FORMAT_B8G8R8G8_422_UNORM_KHR
	// FormatG10X6B10X6G10X6R10X6HorizontalChromaComponentPacked specifies a four-component, 64-bit
	// format containing a pair of G components, an R component, and a B component, collectively
	// encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6B10X6G10X6R10X6HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR
	// FormatG10X6_B10X6R10X6_2PlaneDualChromaComponentPacked  specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of
	// plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B component in the
	// top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top 10 bits of the
	// word in bytes 2..3, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6R10X6_2PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR
	// FormatG10X6_B10X6R10X6_2PlaneHorizontalChromaComponentPacked   specifies an unsigned
	// normalized multi-planar format that has a 10-bit G component in the top 10 bits of each
	// 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 10-bit B
	// component in the top 10 bits of the word in bytes 0..1, and a 10-bit R component in the top
	// 10 bits of the word in bytes 2..3, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6R10X6_2PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR
	// FormatG10X6_B10X6_R10X6_3PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word of
	// plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a
	// 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6 bits
	// of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR
	// FormatG10X6_B10X6_R10X6_3PlaneHorizontalChromaComponentPacked specifies an unsigned
	// normalized multi-planar format that has a 10-bit G component in the top 10 bits of each
	// 16-bit word of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane
	// 1, and a 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the
	// bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR
	// FormatG10X6_B10X6_R10X6_3PlaneNoChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 10-bit G component in the top 10 bits of each 16-bit word
	// of plane 0, a 10-bit B component in the top 10 bits of each 16-bit word of plane 1, and a
	// 10-bit R component in the top 10 bits of each 16-bit word of plane 2, with the bottom 6
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG10X6_B10X6_R10X6_3PlaneNoChromaComponentPacked core1_0.Format = C.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR
	// FormatG12X4B12X4G12X4R12X4_HorizontalChromaComponentPacked specifies a four-component,
	// 64-bit format containing a pair of G components, an R component, and a B component,
	// collectively encoding a 2×1 rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4B12X4G12X4R12X4_HorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR
	// FormatG12X4_B12X4R12X4_2PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word
	// of plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in
	// the top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of
	// the word in bytes 2..3, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4R12X4_2PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR
	// FormatG12X4_B12X4R12X4_2PlaneHorizontalChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of
	// plane 0, and a two-component, 32-bit BR plane 1 consisting of a 12-bit B component in the
	// top 12 bits of the word in bytes 0..1, and a 12-bit R component in the top 12 bits of the
	// word in bytes 2..3, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4R12X4_2PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR
	// FormatG12X4_B12X4_R12X4_3PlaneDualChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word
	// of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a
	// 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneDualChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR
	// FormatG12X4_B12X4_R12X4_3PlaneHorizontalChromaComponentPacked specifies an unsigned
	// normalized multi-planar format that has a 12-bit G component in the top 12 bits of each
	// 16-bit word of plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of
	// plane 1, and a 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with
	// the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneHorizontalChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR
	// FormatG12X4_B12X4_R12X4_3PlaneNoChromaComponentPacked specifies an unsigned normalized
	// multi-planar format that has a 12-bit G component in the top 12 bits of each 16-bit word of
	// plane 0, a 12-bit B component in the top 12 bits of each 16-bit word of plane 1, and a
	// 12-bit R component in the top 12 bits of each 16-bit word of plane 2, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG12X4_B12X4_R12X4_3PlaneNoChromaComponentPacked core1_0.Format = C.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR
	// FormatG16B16G16R16_HorizontalChroma specifies a four-component, 64-bit format containing a
	// pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16B16G16R16_HorizontalChroma core1_0.Format = C.VK_FORMAT_G16B16G16R16_422_UNORM_KHR
	// FormatG16_B16R16_2PlaneDualChroma specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, and a two-component, 32-bit
	// BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a 16-bit R
	// component in the word in bytes 2..3
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16R16_2PlaneDualChroma core1_0.Format = C.VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR
	// FormatG16_B16R16_2PlaneHorizontalChroma  specifies an unsigned normalized multi-planar
	// format that has a 16-bit G component in each 16-bit word of plane 0, and a two-component,
	// 32-bit BR plane 1 consisting of a 16-bit B component in the word in bytes 0..1, and a
	// 16-bit R component in the word in bytes 2..3
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16R16_2PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR
	// FormatG16_B16_R16_3PlaneDualChroma  specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in
	// each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneDualChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR
	// FormatG16_B16_R16_3PlaneHorizontalChroma  specifies an unsigned normalized multi-planar
	// format that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in
	// each 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR
	// FormatG16_B16_R16_3PlaneNoChroma  specifies an unsigned normalized multi-planar format
	// that has a 16-bit G component in each 16-bit word of plane 0, a 16-bit B component in each
	// 16-bit word of plane 1, and a 16-bit R component in each 16-bit word of plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG16_B16_R16_3PlaneNoChroma core1_0.Format = C.VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR
	// FormatG8B8G8R8_HorizontalChroma specifies a four-component, 32-bit format containing a
	//pair of G components, an R component, and a B component, collectively encoding a 2×1
	// rectangle of unsigned normalized RGB texel data
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8B8G8R8_HorizontalChroma core1_0.Format = C.VK_FORMAT_G8B8G8R8_422_UNORM_KHR
	// FormatG8_B8R8_2PlaneDualChroma specifies an unsigned normalized multi-planar format that
	// has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting of
	// an 8-bit B component in byte 0 and an 8-bit R component in byte 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8R8_2PlaneDualChroma core1_0.Format = C.VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR
	// FormatG8_B8R8_2PlaneHorizontalChroma specifies an unsigned normalized multi-planar format
	// that has an 8-bit G component in plane 0, and a two-component, 16-bit BR plane 1 consisting
	// of an 8-bit B component in byte 0 and an 8-bit R component in byte 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8R8_2PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR
	// FormatG8_B8_R8_3PlaneDualChroma specifies an unsigned normalized multi-planar format that
	// has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R
	// component in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneDualChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR
	// FormatG8_B8_R8_3PlaneHorizontalChroma specifies an unsigned normalized multi-planar format
	// that has an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R
	// component in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneHorizontalChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR
	// FormatG8_B8_R8_3PlaneNoChroma specifies an unsigned normalized multi-planar format that has
	// an 8-bit G component in plane 0, an 8-bit B component in plane 1, and an 8-bit R component
	// in plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatG8_B8_R8_3PlaneNoChroma core1_0.Format = C.VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR
	// FormatR10X6G10X6B10X6A10X6UnsignedNormalizedComponentPacked specifies a four-component,
	// 64-bit unsigned normalized format that has a 10-bit R component in the top 10 bits of the
	// word in bytes 0..1, a 10-bit G component in the top 10 bits of the word in bytes 2..3, a
	// 10-bit B component in the top 10 bits of the word in bytes 4..5, and a 10-bit A component
	// in the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6G10X6B10X6A10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR
	// FormatR10X6G10X6UnsignedNormalizedComponentPacked specifies a two-component, 32-bit
	// unsigned normalized format that has a 10-bit R component in the top 10 bits of the word in
	// bytes 0..1, and a 10-bit G component in the top 10 bits of the word in bytes 2..3, with the
	// bottom 6 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6G10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR
	// FormatR10X6UnsignedNormalizedComponentPacked specifies a one-component, 16-bit unsigned
	// normalized format that has a single 10-bit R component in the top 10 bits of a 16-bit word,
	// with the bottom 6 bits unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR10X6UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R10X6_UNORM_PACK16_KHR
	// FormatR12X4G12X4B12X4A12X4UnsignedNormalizedComponentPacked specifies a four-component,
	// 64-bit unsigned normalized format that has a 12-bit R component in the top 12 bits of the
	// word in bytes 0..1, a 12-bit G component in the top 12 bits of the word in bytes 2..3, a
	// 12-bit B component in the top 12 bits of the word in bytes 4..5, and a 12-bit A component
	// in the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4G12X4B12X4A12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR
	// FormatR12X4G12X4UnsignedNormalizedComponentPacked specifies a two-component, 32-bit unsigned
	// normalized format that has a 12-bit R component in the top 12 bits of the word in bytes 0..1,
	// and a 12-bit G component in the top 12 bits of the word in bytes 2..3, with the bottom 4
	// bits of each word unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4G12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR
	// FormatR12X4UnsignedNormalizedComponentPacked specifies a one-component, 16-bit unsigned
	// normalized format that has a single 12-bit R component in the top 12 bits of a 16-bit word,
	// with the bottom 4 bits unused
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormat.html
	FormatR12X4UnsignedNormalizedComponentPacked core1_0.Format = C.VK_FORMAT_R12X4_UNORM_PACK16_KHR

	// FormatFeatureCositedChromaSamples specifies that an application can define a
	// SamplerYcbcrConversion using this format as a source, and that an Image of this format
	// can be used with a SamplerYcbcrConversionCreateInfo.XChromaOffset and/or a
	// SamplerYcbcrConversionCreateInfo.YChromaOffset of ChromaLocationCositedEven
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureCositedChromaSamples core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR
	// FormatFeatureDisjoint specifies that a multi-planar Image can have ImageCreateDisjoint
	// set during Image creation
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureDisjoint core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_DISJOINT_BIT_KHR
	// FormatFeatureMidpointChromaSamples specifies that an application can define a
	// SamplerYcbcrConversion using this format as a source, and that an Image of this format
	// can be used with a SamplerYcbcrConversionCreateInfo.XChromaOffset and/or a
	// SamplerYcbcrConversionCreateInfo.YChromaOffset of ChromaLocationMidpoint
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureMidpointChromaSamples core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR
	// FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicit specifies that
	// reconstruction is explicit
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicit core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR
	// FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceable specifies
	// that reconstruction can be forcibly made explicit by setting
	// SamplerYcbcrConversionCreateInfo.ForceExplicitReconstruction to true
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionChromaReconstructionExplicitForceable core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR
	// FormatFeatureSampledImageYcbcrConversionLinearFilter specifies that an application can
	// define a SamplerYcbcrConversion using this format as a source with ChromaFilter set
	// to core1_0.FilterLinear
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionLinearFilter core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR
	// FormatFeatureSampledImageYcbcrConversionSeparateReconstructionFilter specifies that
	// the format can have different chroma, min, and mag filters
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html
	FormatFeatureSampledImageYcbcrConversionSeparateReconstructionFilter core1_0.FormatFeatureFlags = C.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR

	// ImageAspectPlane0 specifies memory plane 0
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane0 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_0_BIT_KHR
	// ImageAspectPlane1 specifies memory plane 1
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane1 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_1_BIT_KHR
	// ImageAspectPlane2 specifies memory plane 2
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html
	ImageAspectPlane2 core1_0.ImageAspectFlags = C.VK_IMAGE_ASPECT_PLANE_2_BIT_KHR

	// ImageCreateDisjoint specifies that an Image with a multi-planar format must have each plane
	// separately bound to memory, rather than having a single memory binding for the whole Image
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html
	ImageCreateDisjoint core1_0.ImageCreateFlags = C.VK_IMAGE_CREATE_DISJOINT_BIT_KHR

	// SamplerYcbcrModelConversionRGBIdentity specifies that the input values to the conversion
	// are unmodified
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionRGBIdentity SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR
	// SamplerYcbcrModelConversionYcbcr2020 specifies the color model conversion from
	// Y'CbCr to R'G'B' defined in BT.2020
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr2020 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR
	// SamplerYcbcrModelConversionYcbcr601 specifies the color model conversion from Y'CbCr to
	// R'G'B' defined in BT.601
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr601 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR
	// SamplerYcbcrModelConversionYcbcr709 specifies the color model conversion from Y'CbCr to
	// R'G'B' defined in BT.709
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcr709 SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR
	// SamplerYcbcrModelConversionYcbcrIdentity specifies no model conversion but the inputs
	// are range expanded as for Y'CbCr
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html
	SamplerYcbcrModelConversionYcbcrIdentity SamplerYcbcrModelConversion = C.VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR

	// SamplerYcbcrRangeITUFull specifies that the full range of the encoded values are valid and
	// interpreted according to the ITU "full range" quantization rules
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html
	SamplerYcbcrRangeITUFull SamplerYcbcrRange = C.VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR
	// SamplerYcbcrRangeITUNarrow specifies that headroom and foot room are reserved in the
	// numerical range of encoded values, and the remaining values are expanded according to
	// the ITU "narrow range" quantization rules
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html
	SamplerYcbcrRangeITUNarrow SamplerYcbcrRange = C.VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BindImagePlaneMemoryInfo

type BindImagePlaneMemoryInfo struct {
	// PlaneAspect specifies the aspect of the disjoint Image plane to bind
	PlaneAspect core1_0.ImageAspectFlags

	common.NextOptions
}

BindImagePlaneMemoryInfo specifies how to bind an Image plane to DeviceMemory

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBindImagePlaneMemoryInfo.html

func (BindImagePlaneMemoryInfo) PopulateCPointer

func (o BindImagePlaneMemoryInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type ChromaLocation

type ChromaLocation int32

ChromaLocation is the position of downsampled chroma samples

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html

func (ChromaLocation) Register

func (e ChromaLocation) Register(str string)

func (ChromaLocation) String

func (e ChromaLocation) String() string

type Extension

type Extension interface {
	// CreateSamplerYcbcrConversion creates a new Y'CbCr conversion
	//
	// device - The Device which will own the new SamplerYcbcrConversion object
	//
	// o - Specifies the requested sampler Y'CbCr conversion
	//
	// allocator - Controls host allocation behavior
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateSamplerYcbcrConversion.html
	CreateSamplerYcbcrConversion(device core1_0.Device, o SamplerYcbcrConversionCreateInfo, allocator *driver.AllocationCallbacks) (SamplerYcbcrConversion, common.VkResult, error)
}

Extension contains all commands for the khr_sampler_ycbcr_conversion extension

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_ycbcr_conversion.html

type ImagePlaneMemoryRequirementsInfo

type ImagePlaneMemoryRequirementsInfo struct {
	// PlaneAspect specifies the aspect corresponding to the Image plane
	// to query
	PlaneAspect core1_0.ImageAspectFlags

	common.NextOptions
}

ImagePlaneMemoryRequirementsInfo specifies Image plane for memory requirements

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImagePlaneMemoryRequirementsInfo.html

func (ImagePlaneMemoryRequirementsInfo) PopulateCPointer

func (o ImagePlaneMemoryRequirementsInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceSamplerYcbcrConversionFeatures

type PhysicalDeviceSamplerYcbcrConversionFeatures struct {
	// SamplerYcbcrConversion specifies whether the implementation support sampler Y'CbCr conversion.
	SamplerYcbcrConversion bool

	common.NextOptions
	common.NextOutData
}

PhysicalDeviceSamplerYcbcrConversionFeatures describes Y'CbCr conversion features that can be supported by an implementation

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html

func (PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateCPointer

func (o PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateHeader

func (o *PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateOutData

func (o *PhysicalDeviceSamplerYcbcrConversionFeatures) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type SamplerYcbcrConversion

type SamplerYcbcrConversion interface {
	// Handle is the internal Vulkan object handle for this SamplerYcbcrConversion
	Handle() khr_sampler_ycbcr_conversion_driver.VkSamplerYcbcrConversionKHR
	// Destroy destroys the SamplerYcbcrConversion object and the underlying structures. **Warning** after
	// destruction, this object will continue to exist, but the Vulkan object handle that backs it will
	// be invalid. Do not call further methods on this object.
	//
	// callbacks - Controls host memory deallocation
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkDestroySamplerYcbcrConversion.html
	Destroy(allocator *driver.AllocationCallbacks)
}

SamplerYcbcrConversion is an opaque representation of a device-specific sampler YCbCr conversion description.

https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversion.html

type SamplerYcbcrConversionCreateInfo

type SamplerYcbcrConversionCreateInfo struct {
	// Format is the format of the Image from which color information will be retrieved
	Format core1_0.Format
	// YcbcrModel describes the color matrix for conversion between color models
	YcbcrModel SamplerYcbcrModelConversion
	// YcbcrRange describes whether the encoded values have headroom and foot room, or whether
	// the encoding uses the full numerical range
	YcbcrRange SamplerYcbcrRange
	// Components applies a swizzle based on core1_0.ComponentSwizzle enums prior to range
	// expansion and color model conversion
	Components core1_0.ComponentMapping
	// XChromaOffset describes the sample location associated with downsampled chroma components
	// in the x dimension
	XChromaOffset ChromaLocation
	// YChromaOffset describes the sample location associated with downsampled chroma components
	// in the y dimension
	YChromaOffset ChromaLocation
	// ChromaFilter is the filter for chroma reconstruction
	ChromaFilter core1_0.Filter
	// ForceExplicitReconstruction can be used to ensure that reconstruction is done explicitly,
	// if supported
	ForceExplicitReconstruction bool

	common.NextOptions
}

SamplerYcbcrConversionCreateInfo specifies the parameters of the newly-created conversion

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionCreateInfo.html

func (SamplerYcbcrConversionCreateInfo) PopulateCPointer

func (o SamplerYcbcrConversionCreateInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type SamplerYcbcrConversionImageFormatProperties

type SamplerYcbcrConversionImageFormatProperties struct {
	// CombinedImageSamplerDescriptorCount is the number of combined Image sampler descriptors that
	// the implementation uses to access the format
	CombinedImageSamplerDescriptorCount int

	common.NextOutData
}

SamplerYcbcrConversionImageFormatProperties specifies combined Image sampler descriptor count for multi-planar images

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionImageFormatProperties.html

func (*SamplerYcbcrConversionImageFormatProperties) PopulateHeader

func (o *SamplerYcbcrConversionImageFormatProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*SamplerYcbcrConversionImageFormatProperties) PopulateOutData

func (o *SamplerYcbcrConversionImageFormatProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type SamplerYcbcrConversionInfo

type SamplerYcbcrConversionInfo struct {
	// Conversion is a SamplerYcbcrConversion object created from the Device
	Conversion SamplerYcbcrConversion

	common.NextOptions
}

SamplerYcbcrConversionInfo specifies a Y'CbCr conversion to a Sampler or ImageView

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrConversionInfo.html

func (SamplerYcbcrConversionInfo) PopulateCPointer

func (o SamplerYcbcrConversionInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type SamplerYcbcrModelConversion

type SamplerYcbcrModelConversion int32

SamplerYcbcrModelConversion is the color model component of a color space

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html

func (SamplerYcbcrModelConversion) Register

func (e SamplerYcbcrModelConversion) Register(str string)

func (SamplerYcbcrModelConversion) String

type SamplerYcbcrRange

type SamplerYcbcrRange int32

SamplerYcbcrRange is a range of encoded values in a color space

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html

func (SamplerYcbcrRange) Register

func (e SamplerYcbcrRange) Register(str string)

func (SamplerYcbcrRange) String

func (e SamplerYcbcrRange) String() string

type VulkanExtension

type VulkanExtension struct {
	// contains filtered or unexported fields
}

VulkanExtension is an implementation of the Extension interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func CreateExtensionFromDevice

func CreateExtensionFromDevice(device core1_0.Device) *VulkanExtension

CreateExtensionFromDevice produces an Extension object from a Device with khr_sampler_ycbcr_conversion loaded

func CreateExtensionFromDriver

func CreateExtensionFromDriver(driver khr_sampler_ycbcr_conversion_driver.Driver) *VulkanExtension

CreateExtensionFromDriver generates an Extension from a driver.Driver object- this is usually used in tests to build an Extension from mock drivers

type VulkanSamplerYcbcrConversion added in v0.2.0

type VulkanSamplerYcbcrConversion struct {
	// contains filtered or unexported fields
}

VulkanSamplerYcbcrConversion is an implementation of the SamplerYcbcrConversion interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func (*VulkanSamplerYcbcrConversion) Destroy added in v0.2.0

func (*VulkanSamplerYcbcrConversion) Handle added in v0.2.0

Directories

Path Synopsis
Package mock_sampler_ycbcr_conversion is a generated GoMock package.
Package mock_sampler_ycbcr_conversion is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL