diff --git a/src/CoreVideo/CVPixelFormatDescription.cs b/src/CoreVideo/CVPixelFormatDescription.cs index 29547de4fce5..ae3b58290b2a 100644 --- a/src/CoreVideo/CVPixelFormatDescription.cs +++ b/src/CoreVideo/CVPixelFormatDescription.cs @@ -26,94 +26,136 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // using System; +using System.ComponentModel; using System.Runtime.InteropServices; using CoreFoundation; using ObjCRuntime; using Foundation; +#if XAMCORE_5_0 +using CVFillExtendedPixelsCallBackDataStruct = CoreVideo.CVFillExtendedPixelsCallBackData; +#endif + #nullable enable namespace CoreVideo { - -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("tvos")] -#endif - public static class CVPixelFormatDescription { + public partial class CVPixelFormatDescription { #if !COREBUILD +#if !XAMCORE_5_0 + [Obsolete ("Use 'CVPixelFormatKeys.Name' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString NameKey; + + [Obsolete ("Use 'CVPixelFormatKeys.Constant' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ConstantKey; + + [Obsolete ("Use 'CVPixelFormatKeys.CodecType' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString CodecTypeKey; + + [Obsolete ("Use 'CVPixelFormatKeys.FourCCKey' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString FourCCKey; + + [Obsolete ("Use 'CVPixelFormatKeys.Planes' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString PlanesKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BlockWidth' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BlockWidthKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BlockHeight' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BlockHeightKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BitsPerBlock' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BitsPerBlockKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BlockHorizontalAlignment' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BlockHorizontalAlignmentKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BlockVerticalAlignment' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BlockVerticalAlignmentKey; + + [Obsolete ("Use 'CVPixelFormatKeys.BlackBlock' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString BlackBlockKey; + + [Obsolete ("Use 'CVPixelFormatKeys.HorizontalSubsampling' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString HorizontalSubsamplingKey; + + [Obsolete ("Use 'CVPixelFormatKeys.VerticalSubsampling' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString VerticalSubsamplingKey; + [Obsolete ("Use 'CVPixelFormatKeys.OpenGLFormat' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString OpenGLFormatKey; + + [Obsolete ("Use 'CVPixelFormatKeys.OpenGLType' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString OpenGLTypeKey; + + [Obsolete ("Use 'CVPixelFormatKeys.OpenGLInternalFormat' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString OpenGLInternalFormatKey; + [Obsolete ("Use 'CVPixelFormatKeys.CGBitmapInfo' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString CGBitmapInfoKey; + [Obsolete ("Use 'CVPixelFormatKeys.QDCompatibility' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString QDCompatibilityKey; + + [Obsolete ("Use 'CVPixelFormatKeys.CGBitmapContextCompatibility' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString CGBitmapContextCompatibilityKey; + + [Obsolete ("Use 'CVPixelFormatKeys.CGImageCompatibility' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString CGImageCompatibilityKey; + + [Obsolete ("Use 'CVPixelFormatKeys.OpenGLCompatibility' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString OpenGLCompatibilityKey; + [Obsolete ("Use 'CVPixelFormatKeys.FillExtendedPixelsCallback' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString FillExtendedPixelsCallbackKey; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + [Obsolete ("Use 'CVPixelFormatKeys.ContainsRgb' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ContainsRgb; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + + [Obsolete ("Use 'CVPixelFormatKeys.ContainsYCbCr' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ContainsYCbCr; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + [Obsolete ("Use 'CVPixelFormatKeys.ComponentRange' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ComponentRangeKey; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + + [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.FullRange' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ComponentRangeFullRangeKey; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + + [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.VideoRange' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ComponentRangeVideoRangeKey; -#if NET - [SupportedOSPlatform ("ios")] - [SupportedOSPlatform ("macos")] - [SupportedOSPlatform ("maccatalyst")] - [SupportedOSPlatform ("tvos")] -#endif + + [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.WideRange' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] public static readonly NSString ComponentRangeWideRangeKey; + [Obsolete ("Use 'CVPixelFormatKeys.ContainsGrayscale' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] #if NET [SupportedOSPlatform ("ios12.0")] [SupportedOSPlatform ("tvos12.0")] @@ -126,6 +168,8 @@ public static class CVPixelFormatDescription { #endif public static readonly NSString ContainsGrayscaleKey; + [Obsolete ("Use 'CVPixelFormatKeys.ContainsSenselArray' instead.")] + [EditorBrowsable (EditorBrowsableState.Never)] #if NET [SupportedOSPlatform ("ios16.0")] [SupportedOSPlatform ("maccatalyst16.0")] @@ -135,61 +179,75 @@ public static class CVPixelFormatDescription { [Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)] #endif public static readonly NSString ContainsSenselArray; +#endif // !XAMCORE_5_0 +#if !XAMCORE_5_0 static CVPixelFormatDescription () { - var handle = Libraries.CoreVideo.Handle; - NameKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatName")!; - ConstantKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatConstant")!; - CodecTypeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCodecType")!; - FourCCKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatFourCC")!; - PlanesKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatPlanes")!; - BlockWidthKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockWidth")!; - BlockHeightKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockHeight")!; - BitsPerBlockKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBitsPerBlock")!; - BlockHorizontalAlignmentKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockHorizontalAlignment")!; - BlockVerticalAlignmentKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockVerticalAlignment")!; - BlackBlockKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlackBlock")!; - HorizontalSubsamplingKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatHorizontalSubsampling")!; - VerticalSubsamplingKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatVerticalSubsampling")!; - OpenGLFormatKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLFormat")!; - OpenGLTypeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLType")!; - OpenGLInternalFormatKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLInternalFormat")!; - CGBitmapInfoKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGBitmapInfo")!; - QDCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatQDCompatibility")!; - CGBitmapContextCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGBitmapContextCompatibility")!; - CGImageCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGImageCompatibility")!; - OpenGLCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLCompatibility")!; - FillExtendedPixelsCallbackKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatFillExtendedPixelsCallback")!; + NameKey = CVPixelFormatKeys.Name; + ConstantKey = CVPixelFormatKeys.Constant; + CodecTypeKey = CVPixelFormatKeys.CodecType; + FourCCKey = CVPixelFormatKeys.FourCC; + PlanesKey = CVPixelFormatKeys.Planes; + BlockWidthKey = CVPixelFormatKeys.BlockWidth; + BlockHeightKey = CVPixelFormatKeys.BlockHeight; + BitsPerBlockKey = CVPixelFormatKeys.BitsPerBlock; + BlockHorizontalAlignmentKey = CVPixelFormatKeys.BlockHorizontalAlignment; + BlockVerticalAlignmentKey = CVPixelFormatKeys.BlockVerticalAlignment; + BlackBlockKey = CVPixelFormatKeys.BlackBlock; + HorizontalSubsamplingKey = CVPixelFormatKeys.HorizontalSubsampling; + VerticalSubsamplingKey = CVPixelFormatKeys.VerticalSubsampling; + OpenGLFormatKey = CVPixelFormatKeys.OpenGLFormat; + OpenGLTypeKey = CVPixelFormatKeys.OpenGLType; + OpenGLInternalFormatKey = CVPixelFormatKeys.OpenGLInternalFormat; + CGBitmapInfoKey = CVPixelFormatKeys.CGBitmapInfo; + QDCompatibilityKey = CVPixelFormatKeys.QDCompatibility; + CGBitmapContextCompatibilityKey = CVPixelFormatKeys.CGBitmapContextCompatibility; + CGImageCompatibilityKey = CVPixelFormatKeys.CGImageCompatibility; + OpenGLCompatibilityKey = CVPixelFormatKeys.OpenGLCompatibility; + FillExtendedPixelsCallbackKey = CVPixelFormatKeys.FillExtendedPixelsCallback; //iOS8 only - ContainsRgb = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsRGB")!; - ContainsYCbCr = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsYCbCr")!; + ContainsRgb = CVPixelFormatKeys.ContainsRgb; + ContainsYCbCr = CVPixelFormatKeys.ContainsYCbCr; //iOS9 only - ComponentRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange")!; - ComponentRangeFullRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_FullRange")!; - ComponentRangeVideoRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_VideoRange")!; - ComponentRangeWideRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_WideRange")!; + ComponentRangeKey = CVPixelFormatKeys.ComponentRange; + ComponentRangeFullRangeKey = CVPixelFormatComponentRangeKeys.FullRange; + ComponentRangeVideoRangeKey = CVPixelFormatComponentRangeKeys.VideoRange; + ComponentRangeWideRangeKey = CVPixelFormatComponentRangeKeys.WideRange; // Xcode 10 - ContainsGrayscaleKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsGrayscale")!; + ContainsGrayscaleKey = CVPixelFormatKeys.ContainsGrayscale; // Xcode 14 - ContainsSenselArray = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsSenselArray")!; + ContainsSenselArray = CVPixelFormatKeys.ContainsSenselArray; } +#endif // note: bad documentation, ref: https://bugzilla.xamarin.com/show_bug.cgi?id=13917 [DllImport (Constants.CoreVideoLibrary)] extern static/* CFArrayRef __nullable */ IntPtr CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes ( /* CFAllocatorRef __nullable */ IntPtr allocator); + /// Get all the known pixel format types. public static NSNumber [] AllTypes { get { return NSArray.ArrayFromHandle (CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes (IntPtr.Zero)); } } + /// Get all the known pixel format types. + public static CVPixelFormatType [] AllPixelFormatTypes { + get { + var all = AllTypes; + var rv = new CVPixelFormatType [all.Length]; + for (var i = 0; i < rv.Length; i++) + rv [i] = (CVPixelFormatType) all [i].Int32Value; + return rv; + } + } + [DllImport (Constants.CoreVideoLibrary)] extern static /* CFDictionaryRef __nullable */ IntPtr CVPixelFormatDescriptionCreateWithPixelFormatType ( /* CFAllocatorRef __nullable */ IntPtr allocator, int /* OSType = int32_t */ pixelFormat); @@ -201,11 +259,23 @@ public static NSNumber [] AllTypes { } #endif + /// Create a description of the specified pixel format. + /// The pixel format to create a description of. public static NSDictionary? Create (CVPixelFormatType pixelFormat) { return Runtime.GetNSObject (CVPixelFormatDescriptionCreateWithPixelFormatType (IntPtr.Zero, (int) pixelFormat)); } + /// Create a description of the specified pixel format. + /// The pixel format to create a description of. + public static CVPixelFormatDescription? CreatePixelFormat (CVPixelFormatType pixelFormat) + { + var dict = Create (pixelFormat); + if (dict is null) + return null; + return new CVPixelFormatDescription (dict); + } + [DllImport (Constants.CoreVideoLibrary)] extern static void CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType ( /* CFDictionaryRef __nonnull */ IntPtr description, int /* OSType = int32_t */ pixelFormat); @@ -220,6 +290,9 @@ public static void Register (NSDictionary description, int pixelFormat) } #endif + /// Register a new pixel format with CoreVideo. + /// The pixel format description for the pixel format to register. + /// The pixel format to register. public static void Register (NSDictionary description, CVPixelFormatType pixelFormat) { if (description is null) @@ -227,6 +300,74 @@ public static void Register (NSDictionary description, CVPixelFormatType pixelFo CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType (description.Handle, (int) pixelFormat); } + + /// Register a new pixel format with CoreVideo. + /// The pixel format description for the pixel format to register. + /// The pixel format to register. + public static void Register (CVPixelFormatDescription description, CVPixelFormatType pixelFormat) + { + Register (description?.Dictionary!, pixelFormat); + } + +#if NET + [SupportedOSPlatform ("macos12.0")] + [SupportedOSPlatform ("tvos15.0")] + [SupportedOSPlatform ("ios15.0")] + [SupportedOSPlatform ("maccatalyst15.0")] +#else + [iOS (15, 0), MacCatalyst (15, 0), TV (15, 0), Mac (12, 0), Watch (8, 0)] +#endif + [DllImport (Constants.CoreVideoLibrary)] + extern static byte CVIsCompressedPixelFormatAvailable (int /* OSType = int32_t */ pixelFormat); + + /// Check if the specified pixel format is supported on this platform. + /// The pixel format to check. + /// Whether the specified pixel format is supported or not. +#if NET + [SupportedOSPlatform ("macos12.0")] + [SupportedOSPlatform ("tvos15.0")] + [SupportedOSPlatform ("ios15.0")] + [SupportedOSPlatform ("maccatalyst15.0")] +#else + [iOS (15, 0), MacCatalyst (15, 0), TV (15, 0), Mac (12, 0), Watch (8, 0)] +#endif + public static bool IsPixelFormatAvailable (CVPixelFormatType pixelFormat) + { + return CVIsCompressedPixelFormatAvailable ((int) pixelFormat) != 0; + } + +#if NET + [SupportedOSPlatform ("ios")] + [SupportedOSPlatform ("maccatalyst")] + [SupportedOSPlatform ("macos")] + [SupportedOSPlatform ("tvos")] + public CVFillExtendedPixelsCallBackDataStruct? FillExtendedPixelsCallbackStruct { + get { + var data = FillExtendedPixelsCallback; + if (data is null) + return null; + var bytes = data.ToArray (); + unsafe { + if (bytes.Length < sizeof (CVFillExtendedPixelsCallBackDataStruct)) + throw new InvalidOperationException ($"The size of the callback data structure is smaller than expected (got {bytes.Length} bytes, expected at least {sizeof (CVFillExtendedPixelsCallBackDataStruct)} bytes)"); + fixed (byte *ptr = bytes) + return Marshal.PtrToStructure ((IntPtr) ptr); + } + } + set { + if (value is null) { + FillExtendedPixelsCallback = null; + return; + } + NSData data; + CVFillExtendedPixelsCallBackDataStruct v = value.Value; + unsafe { + data = NSData.FromBytes ((IntPtr) (&v), (nuint) sizeof (CVFillExtendedPixelsCallBackDataStruct)); + } + FillExtendedPixelsCallback = data; + } + } +#endif #endif // !COREBUILD } } diff --git a/src/CoreVideo/CoreVideo.cs b/src/CoreVideo/CoreVideo.cs index 9080389ab975..d3e34b6d80e1 100644 --- a/src/CoreVideo/CoreVideo.cs +++ b/src/CoreVideo/CoreVideo.cs @@ -118,6 +118,7 @@ public struct CVSMPTETime { public Int16 Frames; } +#if !XAMCORE_5_0 #if NET [SupportedOSPlatform ("ios")] [SupportedOSPlatform ("maccatalyst")] @@ -131,4 +132,32 @@ public struct CVFillExtendedPixelsCallBackData { } public delegate bool CVFillExtendedPixelsCallBack (IntPtr pixelBuffer, IntPtr refCon); +#endif // !XAMCORE_5_0 + +#if NET + [SupportedOSPlatform ("ios")] + [SupportedOSPlatform ("maccatalyst")] + [SupportedOSPlatform ("macos")] + [SupportedOSPlatform ("tvos")] +#if XAMCORE_5_0 + public unsafe struct CVFillExtendedPixelsCallBackData { +#else + [NativeName ("CVFillExtendedPixelsCallBackData")] + public unsafe struct CVFillExtendedPixelsCallBackDataStruct { +#endif + public nint /* CFIndex */ Version; + public delegate* unmanaged FillCallBack; + public IntPtr UserInfo; +#if !COREBUILD + public unsafe bool CallFillCallback (CVPixelBuffer buffer) + { + if (FillCallBack is null) + throw new InvalidOperationException ($"The callback is null."); + var rv = FillCallBack (buffer.GetCheckedHandle (), UserInfo); + return rv != 0; + } +#endif + } +#endif + } diff --git a/src/corevideo.cs b/src/corevideo.cs index a2d1037fb570..46b5f699b921 100644 --- a/src/corevideo.cs +++ b/src/corevideo.cs @@ -6,6 +6,8 @@ // using System; + +using CoreGraphics; using Foundation; using ObjCRuntime; #if !WATCH @@ -568,4 +570,202 @@ public enum CVVersatileBayerPattern : uint { Gbrg = 2, Bggr = 3, } + + [Partial] + interface CVPixelFormatKeys { + [Field ("kCVPixelFormatName")] + NSString Name { get; } + + [Field ("kCVPixelFormatConstant")] + NSString Constant { get; } + + [Field ("kCVPixelFormatCodecType")] + NSString CodecType { get; } + + [Field ("kCVPixelFormatFourCC")] + NSString FourCC { get; } + + [Field ("kCVPixelFormatContainsAlpha")] + NSString ContainsAlpha { get; } + + [Field ("kCVPixelFormatContainsYCbCr")] + NSString ContainsYCbCr { get; } + + [Field ("kCVPixelFormatContainsRGB")] + NSString ContainsRgb { get; } + + [Field ("kCVPixelFormatContainsGrayscale")] + NSString ContainsGrayscale { get; } + + [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), TV (16, 0), Watch (9, 0)] + [Field ("kCVPixelFormatContainsSenselArray")] + NSString ContainsSenselArray { get; } + + [Field ("kCVPixelFormatComponentRange")] + NSString ComponentRange { get; } + + [Field ("kCVPixelFormatPlanes")] + NSString Planes { get; } + + [Field ("kCVPixelFormatBlockWidth")] + NSString BlockWidth { get; } + + [Field ("kCVPixelFormatBlockHeight")] + NSString BlockHeight { get; } + + [Field ("kCVPixelFormatBitsPerBlock")] + NSString BitsPerBlock { get; } + + [Field ("kCVPixelFormatBlockHorizontalAlignment")] + NSString BlockHorizontalAlignment { get; } + + [Field ("kCVPixelFormatBlockVerticalAlignment")] + NSString BlockVerticalAlignment { get; } + + [Field ("kCVPixelFormatBlackBlock")] + NSString BlackBlock { get; } + + [Field ("kCVPixelFormatHorizontalSubsampling")] + NSString HorizontalSubsampling { get; } + + [Field ("kCVPixelFormatVerticalSubsampling")] + NSString VerticalSubsampling { get; } + + [Field ("kCVPixelFormatOpenGLFormat")] + NSString OpenGLFormat { get; } + + [Field ("kCVPixelFormatOpenGLType")] + NSString OpenGLType { get; } + + [Field ("kCVPixelFormatOpenGLInternalFormat")] + NSString OpenGLInternalFormat { get; } + + [Field ("kCVPixelFormatCGBitmapInfo")] + NSString CGBitmapInfo { get; } + + [Field ("kCVPixelFormatQDCompatibility")] + NSString QDCompatibility { get; } + + [Field ("kCVPixelFormatCGBitmapContextCompatibility")] + NSString CGBitmapContextCompatibility { get; } + + [Field ("kCVPixelFormatCGImageCompatibility")] + NSString CGImageCompatibility { get; } + + [Field ("kCVPixelFormatOpenGLCompatibility")] + NSString OpenGLCompatibility { get; } + + [NoWatch, NoMacCatalyst, NoMac] + [Field ("kCVPixelFormatOpenGLESCompatibility")] + NSString OpenGlesCompatibility { get; } + + [Field ("kCVPixelFormatFillExtendedPixelsCallback")] + NSString FillExtendedPixelsCallback { get; } + } + + [Partial] + interface CVPixelFormatComponentRangeKeys { + [Field ("kCVPixelFormatComponentRange_VideoRange")] + NSString VideoRange { get; } + + [Field ("kCVPixelFormatComponentRange_FullRange")] + NSString FullRange { get; } + + [Field ("kCVPixelFormatComponentRange_WideRange")] + NSString WideRange { get; } + } + + + [StrongDictionary ("CVPixelFormatComponentRangeKeys", Suffix = "")] + interface CVPixelFormatComponentRange { + // there's no documentation about the type, so binding as NSObject + NSObject VideoRange { get; set; } + + // there's no documentation about the type, so binding as NSObject + NSObject FullRange { get; set; } + + // there's no documentation about the type, so binding as NSObject + NSObject WideRange { get; set; } + } + + [StrongDictionary ("CVPixelFormatKeys", Suffix = "")] + interface CVPixelFormatDescription { + string Name { get; set; } + + CVPixelFormatType Constant { get; set; } + + // Documentation says 'CFString', but it also says 'CFString' about another property which clearly isn't, so I don't trust the documentation. + // Headers don't say, and tests don't show anything useful, there are no hits on Google for the underlying field, so leaving this typed as 'NSObject'. + NSObject CodecType { get; set; } + + int FourCC { get; set; } + + bool ContainsAlpha { get; set; } + +#if XAMCORE_5_0 + bool ContainsYCbCr { get; set; } +#else + [Export ("ContainsYCbCr")] + bool FormatContainsYCbCr { get; set; } +#endif + +#if XAMCORE_5_0 + bool ContainsRgb { get; set; } +#else + [Export ("ContainsRgb")] + bool FormatContainsRgb { get; set; } +#endif + + bool ContainsGrayscale { get; set; } + + [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), TV (16, 0), Watch (9, 0)] +#if XAMCORE_5_0 + bool ContainsSenselArray { get; set; } +#else + [Export ("ContainsSenselArray")] + bool FormatContainsSenselArray { get; set; } +#endif + + CVPixelFormatComponentRange ComponentRange { get; set; } + + // This can be an array of dictionaries, or a single dictionary when there's only one plane, so we have to type as 'NSObject'. + NSObject Planes { get; set; } + + int BlockWidth { get; set; } + + int BlockHeight { get; set; } + + int BitsPerBlock { get; set; } + + int BlockHorizontalAlignment { get; set; } + + int BlockVerticalAlignment { get; set; } + + NSData BlackBlock { get; set; } + + int HorizontalSubsampling { get; set; } + + int VerticalSubsampling { get; set; } + + int OpenGLFormat { get; set; } + + int OpenGLType { get; set; } + + int OpenGLInternalFormat { get; set; } + + CGBitmapFlags CGBitmapInfo { get; set; } + + bool QDCompatibility { get; set; } + + bool CGBitmapContextCompatibility { get; set; } + + bool CGImageCompatibility { get; set; } + + bool OpenGLCompatibility { get; set; } + + [NoWatch, NoMacCatalyst, NoMac] + bool OpenGlesCompatibility { get; set; } + + NSData FillExtendedPixelsCallback { get; set; } + } } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 7f9c0e6b7599..c7e34f1a707f 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -8396,6 +8396,9 @@ F:CoreVideo.CVAttachmentMode.ShouldPropagate F:CoreVideo.CVFillExtendedPixelsCallBackData.FillCallBack F:CoreVideo.CVFillExtendedPixelsCallBackData.UserInfo F:CoreVideo.CVFillExtendedPixelsCallBackData.Version +F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.FillCallBack +F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.UserInfo +F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.Version F:CoreVideo.CVImageBufferAlphaChannelMode.Premultiplied F:CoreVideo.CVImageBufferAlphaChannelMode.Straight F:CoreVideo.CVImageBufferColorPrimaries.DciP3 @@ -8427,36 +8430,6 @@ F:CoreVideo.CVOptionFlags.None F:CoreVideo.CVPixelBufferLock.None F:CoreVideo.CVPixelBufferLock.ReadOnly F:CoreVideo.CVPixelBufferPoolFlushFlags.FlushExcessBuffers -F:CoreVideo.CVPixelFormatDescription.BitsPerBlockKey -F:CoreVideo.CVPixelFormatDescription.BlackBlockKey -F:CoreVideo.CVPixelFormatDescription.BlockHeightKey -F:CoreVideo.CVPixelFormatDescription.BlockHorizontalAlignmentKey -F:CoreVideo.CVPixelFormatDescription.BlockVerticalAlignmentKey -F:CoreVideo.CVPixelFormatDescription.BlockWidthKey -F:CoreVideo.CVPixelFormatDescription.CGBitmapContextCompatibilityKey -F:CoreVideo.CVPixelFormatDescription.CGBitmapInfoKey -F:CoreVideo.CVPixelFormatDescription.CGImageCompatibilityKey -F:CoreVideo.CVPixelFormatDescription.CodecTypeKey -F:CoreVideo.CVPixelFormatDescription.ComponentRangeFullRangeKey -F:CoreVideo.CVPixelFormatDescription.ComponentRangeKey -F:CoreVideo.CVPixelFormatDescription.ComponentRangeVideoRangeKey -F:CoreVideo.CVPixelFormatDescription.ComponentRangeWideRangeKey -F:CoreVideo.CVPixelFormatDescription.ConstantKey -F:CoreVideo.CVPixelFormatDescription.ContainsGrayscaleKey -F:CoreVideo.CVPixelFormatDescription.ContainsRgb -F:CoreVideo.CVPixelFormatDescription.ContainsSenselArray -F:CoreVideo.CVPixelFormatDescription.ContainsYCbCr -F:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallbackKey -F:CoreVideo.CVPixelFormatDescription.FourCCKey -F:CoreVideo.CVPixelFormatDescription.HorizontalSubsamplingKey -F:CoreVideo.CVPixelFormatDescription.NameKey -F:CoreVideo.CVPixelFormatDescription.OpenGLCompatibilityKey -F:CoreVideo.CVPixelFormatDescription.OpenGLFormatKey -F:CoreVideo.CVPixelFormatDescription.OpenGLInternalFormatKey -F:CoreVideo.CVPixelFormatDescription.OpenGLTypeKey -F:CoreVideo.CVPixelFormatDescription.PlanesKey -F:CoreVideo.CVPixelFormatDescription.QDCompatibilityKey -F:CoreVideo.CVPixelFormatDescription.VerticalSubsamplingKey F:CoreVideo.CVPixelFormatType.Argb2101010LEPacked F:CoreVideo.CVPixelFormatType.CV128RGBAFloat F:CoreVideo.CVPixelFormatType.CV14BayerBggr @@ -33176,6 +33149,7 @@ M:CoreVideo.CVDisplayLink.SetOutputCallback(CoreVideo.CVDisplayLink.DisplayLinkO M:CoreVideo.CVDisplayLink.Start M:CoreVideo.CVDisplayLink.Stop M:CoreVideo.CVDisplayLink.TryTranslateTime(CoreVideo.CVTimeStamp,CoreVideo.CVTimeStamp@) +M:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.CallFillCallback(CoreVideo.CVPixelBuffer) M:CoreVideo.CVImageBuffer.CreateFrom(Foundation.NSDictionary) M:CoreVideo.CVImageBuffer.GetCodePoint(CoreVideo.CVImageBufferColorPrimaries) M:CoreVideo.CVImageBuffer.GetCodePoint(CoreVideo.CVImageBufferTransferFunction) @@ -33227,8 +33201,12 @@ M:CoreVideo.CVPixelBufferPoolAllocationSettings.#ctor M:CoreVideo.CVPixelBufferPoolAllocationSettings.#ctor(Foundation.NSDictionary) M:CoreVideo.CVPixelBufferPoolSettings.#ctor M:CoreVideo.CVPixelBufferPoolSettings.#ctor(Foundation.NSDictionary) -M:CoreVideo.CVPixelFormatDescription.Create(CoreVideo.CVPixelFormatType) -M:CoreVideo.CVPixelFormatDescription.Register(Foundation.NSDictionary,CoreVideo.CVPixelFormatType) +M:CoreVideo.CVPixelFormatComponentRange.#ctor +M:CoreVideo.CVPixelFormatComponentRange.#ctor(Foundation.NSDictionary) +M:CoreVideo.CVPixelFormatComponentRangeKeys.#ctor +M:CoreVideo.CVPixelFormatDescription.#ctor +M:CoreVideo.CVPixelFormatDescription.#ctor(Foundation.NSDictionary) +M:CoreVideo.CVPixelFormatKeys.#ctor M:CoreVideo.CVPixelFormatTypeExtensions.IsCompressedPixelFormatAvailable(CoreVideo.CVPixelFormatType) M:CoreVideo.CVTime.Equals(System.Object) M:CoreVideo.CVTime.GetCurrentHostTime @@ -63502,7 +63480,71 @@ P:CoreVideo.CVPixelBufferPool.TypeID P:CoreVideo.CVPixelBufferPoolAllocationSettings.Threshold P:CoreVideo.CVPixelBufferPoolSettings.MaximumBufferAgeInSeconds P:CoreVideo.CVPixelBufferPoolSettings.MinimumBufferCount -P:CoreVideo.CVPixelFormatDescription.AllTypes +P:CoreVideo.CVPixelFormatComponentRange.FullRange +P:CoreVideo.CVPixelFormatComponentRange.VideoRange +P:CoreVideo.CVPixelFormatComponentRange.WideRange +P:CoreVideo.CVPixelFormatComponentRangeKeys.FullRange +P:CoreVideo.CVPixelFormatComponentRangeKeys.VideoRange +P:CoreVideo.CVPixelFormatComponentRangeKeys.WideRange +P:CoreVideo.CVPixelFormatDescription.BitsPerBlock +P:CoreVideo.CVPixelFormatDescription.BlackBlock +P:CoreVideo.CVPixelFormatDescription.BlockHeight +P:CoreVideo.CVPixelFormatDescription.BlockHorizontalAlignment +P:CoreVideo.CVPixelFormatDescription.BlockVerticalAlignment +P:CoreVideo.CVPixelFormatDescription.BlockWidth +P:CoreVideo.CVPixelFormatDescription.CGBitmapContextCompatibility +P:CoreVideo.CVPixelFormatDescription.CGBitmapInfo +P:CoreVideo.CVPixelFormatDescription.CGImageCompatibility +P:CoreVideo.CVPixelFormatDescription.CodecType +P:CoreVideo.CVPixelFormatDescription.ComponentRange +P:CoreVideo.CVPixelFormatDescription.Constant +P:CoreVideo.CVPixelFormatDescription.ContainsAlpha +P:CoreVideo.CVPixelFormatDescription.ContainsGrayscale +P:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallback +P:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallbackStruct +P:CoreVideo.CVPixelFormatDescription.FormatContainsRgb +P:CoreVideo.CVPixelFormatDescription.FormatContainsSenselArray +P:CoreVideo.CVPixelFormatDescription.FormatContainsYCbCr +P:CoreVideo.CVPixelFormatDescription.FourCC +P:CoreVideo.CVPixelFormatDescription.HorizontalSubsampling +P:CoreVideo.CVPixelFormatDescription.Name +P:CoreVideo.CVPixelFormatDescription.OpenGLCompatibility +P:CoreVideo.CVPixelFormatDescription.OpenGlesCompatibility +P:CoreVideo.CVPixelFormatDescription.OpenGLFormat +P:CoreVideo.CVPixelFormatDescription.OpenGLInternalFormat +P:CoreVideo.CVPixelFormatDescription.OpenGLType +P:CoreVideo.CVPixelFormatDescription.Planes +P:CoreVideo.CVPixelFormatDescription.QDCompatibility +P:CoreVideo.CVPixelFormatDescription.VerticalSubsampling +P:CoreVideo.CVPixelFormatKeys.BitsPerBlock +P:CoreVideo.CVPixelFormatKeys.BlackBlock +P:CoreVideo.CVPixelFormatKeys.BlockHeight +P:CoreVideo.CVPixelFormatKeys.BlockHorizontalAlignment +P:CoreVideo.CVPixelFormatKeys.BlockVerticalAlignment +P:CoreVideo.CVPixelFormatKeys.BlockWidth +P:CoreVideo.CVPixelFormatKeys.CGBitmapContextCompatibility +P:CoreVideo.CVPixelFormatKeys.CGBitmapInfo +P:CoreVideo.CVPixelFormatKeys.CGImageCompatibility +P:CoreVideo.CVPixelFormatKeys.CodecType +P:CoreVideo.CVPixelFormatKeys.ComponentRange +P:CoreVideo.CVPixelFormatKeys.Constant +P:CoreVideo.CVPixelFormatKeys.ContainsAlpha +P:CoreVideo.CVPixelFormatKeys.ContainsGrayscale +P:CoreVideo.CVPixelFormatKeys.ContainsRgb +P:CoreVideo.CVPixelFormatKeys.ContainsSenselArray +P:CoreVideo.CVPixelFormatKeys.ContainsYCbCr +P:CoreVideo.CVPixelFormatKeys.FillExtendedPixelsCallback +P:CoreVideo.CVPixelFormatKeys.FourCC +P:CoreVideo.CVPixelFormatKeys.HorizontalSubsampling +P:CoreVideo.CVPixelFormatKeys.Name +P:CoreVideo.CVPixelFormatKeys.OpenGLCompatibility +P:CoreVideo.CVPixelFormatKeys.OpenGlesCompatibility +P:CoreVideo.CVPixelFormatKeys.OpenGLFormat +P:CoreVideo.CVPixelFormatKeys.OpenGLInternalFormat +P:CoreVideo.CVPixelFormatKeys.OpenGLType +P:CoreVideo.CVPixelFormatKeys.Planes +P:CoreVideo.CVPixelFormatKeys.QDCompatibility +P:CoreVideo.CVPixelFormatKeys.VerticalSubsampling P:CoreVideo.CVTime.Flags P:CoreVideo.CVTime.IndefiniteTime P:CoreVideo.CVTime.ZeroTime @@ -78853,6 +78895,7 @@ T:CoreVideo.CVDisplayLink T:CoreVideo.CVDisplayLink.DisplayLinkOutputCallback T:CoreVideo.CVFillExtendedPixelsCallBack T:CoreVideo.CVFillExtendedPixelsCallBackData +T:CoreVideo.CVFillExtendedPixelsCallBackDataStruct T:CoreVideo.CVImageBufferAlphaChannelMode T:CoreVideo.CVImageBufferColorPrimaries T:CoreVideo.CVImageBufferTransferFunction @@ -78861,7 +78904,10 @@ T:CoreVideo.CVMetalTexture T:CoreVideo.CVMetalTextureAttributes T:CoreVideo.CVPixelBufferAttributes T:CoreVideo.CVPixelBufferPoolSettings +T:CoreVideo.CVPixelFormatComponentRange +T:CoreVideo.CVPixelFormatComponentRangeKeys T:CoreVideo.CVPixelFormatDescription +T:CoreVideo.CVPixelFormatKeys T:CoreVideo.CVPixelFormatType T:CoreVideo.CVPixelFormatTypeExtensions T:CoreVideo.CVPlanarComponentInfo diff --git a/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs b/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs index 448baf25fb85..1426de2be924 100644 --- a/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs +++ b/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs @@ -10,7 +10,11 @@ #if !__WATCHOS__ using System; +using System.IO; +using System.Text; + using Foundation; +using CoreGraphics; using CoreVideo; using ObjCRuntime; using NUnit.Framework; @@ -60,6 +64,54 @@ public void Register () Assert.NotNull (CVPixelFormatDescription.Create ((CVPixelFormatType) 3), "3b"); } + +#if NET + [Test] + public void CV32ARGB () + { + Assert.Multiple (() => { + var pf = CVPixelFormatType.CV32ARGB; + var desc = CVPixelFormatDescription.CreatePixelFormat (pf); + Assert.IsNull (desc.Name, "Name"); + Assert.AreEqual (pf, desc.Constant ?? ((CVPixelFormatType) 0xFFFFFFFF), "Constant"); + Assert.IsNull (desc.CodecType, "CodecType"); + Assert.IsNull (desc.FourCC, "FourCC"); + Assert.AreEqual (true, desc.ContainsAlpha, "ContainsAlpha"); + Assert.AreEqual (false, desc.FormatContainsYCbCr, "FormatContainsYCbCr"); + Assert.AreEqual (true, desc.FormatContainsRgb, "FormatContainsRgb"); + Assert.AreEqual (false, desc.ContainsGrayscale, "ContainsGrayscale"); + if (TestRuntime.CheckXcodeVersion (14, 0)) + Assert.IsNull (desc.FormatContainsSenselArray, "FormatContainsSenselArray"); + Assert.IsNull (desc.ComponentRange, "ComponentRange"); + Assert.IsNull (desc.Planes, "Planes"); + Assert.IsNull (desc.BlockWidth, "BlockWidth"); + Assert.IsNull (desc.BlockHeight, "BlockHeight"); + Assert.AreEqual (32, desc.BitsPerBlock, "BitsPerBlock"); + Assert.IsNull (desc.BlockHorizontalAlignment, "BlockHorizontalAlignment"); + Assert.IsNull (desc.BlockVerticalAlignment, "BlockVerticalAlignment"); + Assert.IsNotNull (desc.BlackBlock, "BlackBlock"); + Assert.IsNull (desc.HorizontalSubsampling, "HorizontalSubsampling"); + Assert.IsNull (desc.VerticalSubsampling, "VerticalSubsampling"); +#if (__IOS__ && !__MACCATALYST__) || __TVOS__ + Assert.IsNull (desc.OpenGLFormat, "OpenGLFormat"); + Assert.IsNull (desc.OpenGLType, "OpenGLType"); + Assert.IsNull (desc.OpenGLInternalFormat, "OpenGLInternalFormat"); + Assert.IsNull (desc.OpenGLCompatibility, "OpenGLCompatibility"); +#else + Assert.AreEqual (32993, desc.OpenGLFormat, "OpenGLFormat"); + Assert.AreEqual (32821, desc.OpenGLType, "OpenGLType"); + Assert.AreEqual (32856, desc.OpenGLInternalFormat, "OpenGLInternalFormat"); + Assert.AreEqual (true, desc.OpenGLCompatibility, "OpenGLCompatibility"); +#endif + Assert.AreEqual (CGBitmapFlags.ByteOrder32Big | CGBitmapFlags.First, desc.CGBitmapInfo, "CGBitmapInfo"); + Assert.AreEqual (true, desc.QDCompatibility, "QDCompatibility"); + Assert.AreEqual (true, desc.CGBitmapContextCompatibility, "CGBitmapContextCompatibility"); + Assert.AreEqual (true, desc.CGImageCompatibility, "CGImageCompatibility"); + Assert.IsNotNull (desc.FillExtendedPixelsCallback, "FillExtendedPixelsCallback"); + Assert.IsNotNull (desc.FillExtendedPixelsCallbackStruct, "FillExtendedPixelsCallbackStruct"); + }); + } +#endif // NET } } diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore index c896fa3cbdc0..6ed54ca923b9 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore @@ -3,39 +3,6 @@ !missing-field! kCVIndefiniteTime not bound !missing-field! kCVPixelBufferPoolFreeBufferNotification not bound -## the following fields are manually bound in CVPixelFormatDescription.cs -!missing-field! kCVPixelFormatBitsPerBlock not bound -!missing-field! kCVPixelFormatBlackBlock not bound -!missing-field! kCVPixelFormatBlockHeight not bound -!missing-field! kCVPixelFormatBlockHorizontalAlignment not bound -!missing-field! kCVPixelFormatBlockVerticalAlignment not bound -!missing-field! kCVPixelFormatBlockWidth not bound -!missing-field! kCVPixelFormatCGBitmapContextCompatibility not bound -!missing-field! kCVPixelFormatCGBitmapInfo not bound -!missing-field! kCVPixelFormatCGImageCompatibility not bound -!missing-field! kCVPixelFormatCodecType not bound -!missing-field! kCVPixelFormatComponentRange not bound -!missing-field! kCVPixelFormatComponentRange_FullRange not bound -!missing-field! kCVPixelFormatComponentRange_VideoRange not bound -!missing-field! kCVPixelFormatComponentRange_WideRange not bound -!missing-field! kCVPixelFormatConstant not bound -!missing-field! kCVPixelFormatContainsAlpha not bound -!missing-field! kCVPixelFormatContainsGrayscale not bound -!missing-field! kCVPixelFormatContainsRGB not bound -!missing-field! kCVPixelFormatContainsYCbCr not bound -!missing-field! kCVPixelFormatFillExtendedPixelsCallback not bound -!missing-field! kCVPixelFormatFourCC not bound -!missing-field! kCVPixelFormatHorizontalSubsampling not bound -!missing-field! kCVPixelFormatName not bound -!missing-field! kCVPixelFormatOpenGLCompatibility not bound -!missing-field! kCVPixelFormatOpenGLFormat not bound -!missing-field! kCVPixelFormatOpenGLInternalFormat not bound -!missing-field! kCVPixelFormatOpenGLType not bound -!missing-field! kCVPixelFormatPlanes not bound -!missing-field! kCVPixelFormatQDCompatibility not bound -!missing-field! kCVPixelFormatVerticalSubsampling not bound -!missing-field! kCVPixelFormatContainsSenselArray not bound - !missing-field! kCVZeroTime not bound !missing-pinvoke! CVPixelBufferRelease is not bound !missing-pinvoke! CVPixelBufferRetain is not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore index e9418f1287a8..a3fd156ac4a0 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore @@ -1,4 +1,3 @@ !missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound -!missing-field! kCVPixelFormatOpenGLESCompatibility not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore index e9418f1287a8..a3fd156ac4a0 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore @@ -1,4 +1,3 @@ !missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound -!missing-field! kCVPixelFormatOpenGLESCompatibility not bound diff --git a/tests/xtro-sharpie/common-CoreVideo.ignore b/tests/xtro-sharpie/common-CoreVideo.ignore index 918354e32440..0417b951f1dd 100644 --- a/tests/xtro-sharpie/common-CoreVideo.ignore +++ b/tests/xtro-sharpie/common-CoreVideo.ignore @@ -3,39 +3,6 @@ !missing-field! kCVIndefiniteTime not bound !missing-field! kCVPixelBufferPoolFreeBufferNotification not bound -## the following fields are manually bound in CVPixelFormatDescription.cs -!missing-field! kCVPixelFormatBitsPerBlock not bound -!missing-field! kCVPixelFormatBlackBlock not bound -!missing-field! kCVPixelFormatBlockHeight not bound -!missing-field! kCVPixelFormatBlockHorizontalAlignment not bound -!missing-field! kCVPixelFormatBlockVerticalAlignment not bound -!missing-field! kCVPixelFormatBlockWidth not bound -!missing-field! kCVPixelFormatCGBitmapContextCompatibility not bound -!missing-field! kCVPixelFormatCGBitmapInfo not bound -!missing-field! kCVPixelFormatCGImageCompatibility not bound -!missing-field! kCVPixelFormatCodecType not bound -!missing-field! kCVPixelFormatComponentRange not bound -!missing-field! kCVPixelFormatComponentRange_FullRange not bound -!missing-field! kCVPixelFormatComponentRange_VideoRange not bound -!missing-field! kCVPixelFormatComponentRange_WideRange not bound -!missing-field! kCVPixelFormatConstant not bound -!missing-field! kCVPixelFormatContainsAlpha not bound -!missing-field! kCVPixelFormatContainsGrayscale not bound -!missing-field! kCVPixelFormatContainsRGB not bound -!missing-field! kCVPixelFormatContainsYCbCr not bound -!missing-field! kCVPixelFormatFillExtendedPixelsCallback not bound -!missing-field! kCVPixelFormatFourCC not bound -!missing-field! kCVPixelFormatHorizontalSubsampling not bound -!missing-field! kCVPixelFormatName not bound -!missing-field! kCVPixelFormatOpenGLCompatibility not bound -!missing-field! kCVPixelFormatOpenGLFormat not bound -!missing-field! kCVPixelFormatOpenGLInternalFormat not bound -!missing-field! kCVPixelFormatOpenGLType not bound -!missing-field! kCVPixelFormatPlanes not bound -!missing-field! kCVPixelFormatQDCompatibility not bound -!missing-field! kCVPixelFormatVerticalSubsampling not bound -!missing-field! kCVPixelFormatContainsSenselArray not bound - !missing-field! kCVZeroTime not bound !missing-pinvoke! CVPixelBufferRelease is not bound !missing-pinvoke! CVPixelBufferRetain is not bound diff --git a/tests/xtro-sharpie/iOS-CoreVideo.ignore b/tests/xtro-sharpie/iOS-CoreVideo.ignore index 1d0f65ee8b95..1285849da476 100644 --- a/tests/xtro-sharpie/iOS-CoreVideo.ignore +++ b/tests/xtro-sharpie/iOS-CoreVideo.ignore @@ -1,6 +1,5 @@ !missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound -!missing-field! kCVPixelFormatOpenGLESCompatibility not bound !missing-pinvoke! CVMetalTextureCacheGetTypeID is not bound !missing-pinvoke! CVMetalTextureGetTypeID is not bound diff --git a/tests/xtro-sharpie/tvOS-CoreVideo.ignore b/tests/xtro-sharpie/tvOS-CoreVideo.ignore index 1d0f65ee8b95..1285849da476 100644 --- a/tests/xtro-sharpie/tvOS-CoreVideo.ignore +++ b/tests/xtro-sharpie/tvOS-CoreVideo.ignore @@ -1,6 +1,5 @@ !missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound !missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound -!missing-field! kCVPixelFormatOpenGLESCompatibility not bound !missing-pinvoke! CVMetalTextureCacheGetTypeID is not bound !missing-pinvoke! CVMetalTextureGetTypeID is not bound