diff --git a/src/coreimage.cs b/src/coreimage.cs index 80fe239e3d7d..8b18d2c306a8 100644 --- a/src/coreimage.cs +++ b/src/coreimage.cs @@ -370,6 +370,10 @@ interface CIContext { [Field ("kCIContextName")] NSString Name { get; } + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Field ("kCIContextMemoryLimit")] + NSString MemoryLimit { get; } + [NoiOS] [NoMacCatalyst] [NoWatch] @@ -419,6 +423,15 @@ interface CIContext { [Static] [Export ("contextWithMTLCommandQueue:options:")] CIContext Create (IMTLCommandQueue commandQueue, [NullAllowed] NSDictionary options); + + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Export ("writeOpenEXRRepresentationOfImage:toURL:options:error:")] + bool WriteOpenExrRepresentation (CIImage image, NSUrl url, NSDictionary options, [NullAllowed] out NSError errorPtr); + + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Export ("OpenEXRRepresentationOfImage:options:error:")] + [return: NullAllowed] + NSData GetOpenEXRRepresentation (CIImage image, NSDictionary options, [NullAllowed] out NSError errorPtr); } [Category] @@ -733,6 +746,26 @@ string Name { [Static] [Wrap ("CreateRawFilter (pixelBuffer, properties, options.GetDictionary ()!)")] CIFilter CreateRawFilter (CVPixelBuffer pixelBuffer, NSDictionary properties, CIRawFilterOptions options); + + [iOS (17, 0), Mac (14, 0), MacCatalyst (17, 0), TV (17, 0)] + [Static] + [Export ("blurredRectangleGeneratorFilter")] + CIBlurredRectangleGenerator BlurredRectangleGeneratorFilter { get; } + + [iOS (17, 0), Mac (14, 0), MacCatalyst (17, 0), TV (17, 0)] + [Static] + [Export ("cannyEdgeDetectorFilter")] + CICannyEdgeDetector CannyEdgeDetectorFilter { get; } + + [iOS (17, 0), Mac (14, 0), MacCatalyst (17, 0), TV (17, 0)] + [Static] + [Export ("roundedRectangleStrokeGeneratorFilter")] + CIRoundedRectangleStrokeGenerator RoundedRectangleStrokeGeneratorFilter { get; } + + [iOS (17, 0), Mac (14, 0), MacCatalyst (17, 0), TV (17, 0)] + [Static] + [Export ("sobelGradientsFilter")] + CISobelGradients SobelGradientsFilter { get; } } [iOS (15, 0), Mac (12, 0), MacCatalyst (15, 0), TV (15, 0)] @@ -1472,8 +1505,8 @@ interface CIFilterApply { NSString OptionColorSpace { get; } } - [NoiOS] - [NoMacCatalyst] + [iOS (17, 0)] + [MacCatalyst (17, 0)] [NoWatch] [NoTV] [BaseType (typeof (NSObject))] @@ -1521,12 +1554,15 @@ interface CIFilterGenerator : CIFilterConstructor, NSSecureCoding, NSCopying { [Export ("classAttributes")] NSDictionary ClassAttributes { get; set; } + [NoiOS, NoMacCatalyst] [Field ("kCIFilterGeneratorExportedKey", "+CoreImage")] NSString ExportedKey { get; } + [NoiOS, NoMacCatalyst] [Field ("kCIFilterGeneratorExportedKeyTargetObject", "+CoreImage")] NSString ExportedKeyTargetObject { get; } + [NoiOS, NoMacCatalyst] [Field ("kCIFilterGeneratorExportedKeyName", "+CoreImage")] NSString ExportedKeyName { get; } } @@ -2134,6 +2170,22 @@ interface CIImage : NSSecureCoding, NSCopying { [Field ("kCIFormatLAf")] int FormatLAf { get; } + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] + [Field ("kCIFormatRGB10")] + int FormatRgb10 { get; } + + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] + [Field ("kCIFormatRGBX16")] + int FormatRgbX16 { get; } + + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] + [Field ("kCIFormatRGBXf")] + int FormatRgbXf { get; } + + [iOS (17, 0), TV (17, 0), MacCatalyst (17, 0), Mac (14, 0)] + [Field ("kCIFormatRGBXh")] + int FormatRgbXh { get; } + // UIKit extensions [NoMac] [MacCatalyst (13, 1)] @@ -2504,6 +2556,20 @@ interface CIImageProcessorInput { [iOS (16, 0), TV (16, 0), Mac (13, 0), MacCatalyst (16, 0)] [Export ("digest")] ulong Digest { get; } + +#if XAMCORE_5_0 + [Abstract] +#endif + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Export ("roiTileCount")] + nuint RoiTileCount { get; } + +#if XAMCORE_5_0 + [Abstract] +#endif + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Export ("roiTileIndex")] + nuint RoiTileIndex { get; } } interface ICIImageProcessorOutput { } @@ -3184,6 +3250,11 @@ interface CIImageProcessorKernel { [Static] [Export ("outputIsOpaque")] bool OutputIsOpaque { get; } + + [iOS (17, 0), MacCatalyst (17, 0), TV (17, 0), Mac (14, 0)] + [Static] + [Export ("roiTileArrayForInput:arguments:outputRect:")] + CIVector [] GetRoiTileArray (int input, [NullAllowed] NSDictionary arguments, CGRect outputRect); } [CoreImageFilter] @@ -5996,6 +6067,10 @@ interface CIRenderInfo { [Export ("pixelsProcessed")] nint PixelsProcessed { get; } + + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Export ("kernelCompileTime")] + double KernelCompileTime { get; } } [MacCatalyst (13, 1)] @@ -6090,6 +6165,18 @@ partial interface CIImageRepresentationKeys { [MacCatalyst (14, 3)] [Field ("kCIImageRepresentationSemanticSegmentationSkyMatteImage")] NSString SemanticSegmentationSkyMatteImage { get; } + + [iOS (14, 1), TV (14, 1), Mac (11, 0), MacCatalyst (14, 1)] + [Field ("kCIImageAuxiliaryHDRGainMap")] + NSString AuxiliaryHdrGainMap { get; } + + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Field ("kCIImageCacheImmediately")] + NSString CacheImmediately { get; } + + [iOS (17, 0), TV (17, 0), Mac (14, 0), MacCatalyst (17, 0)] + [Field ("kCIImageExpandToHDR")] + NSString ExpandToHdr { get; } } [MacCatalyst (13, 1)] diff --git a/tests/introspection/ApiProtocolTest.cs b/tests/introspection/ApiProtocolTest.cs index 71b10b6944bc..bec2f3cf5e11 100644 --- a/tests/introspection/ApiProtocolTest.cs +++ b/tests/introspection/ApiProtocolTest.cs @@ -68,6 +68,9 @@ protected virtual bool Skip (Type type) // was removed by apple and is a compat class. case "HMMatterRequestHandler": return true; + case "CIFilterGenerator": + // only present on device :/ + return TestRuntime.IsSimulatorOrDesktop; default: return SkipDueToAttribute (type); } diff --git a/tests/introspection/ApiSelectorTest.cs b/tests/introspection/ApiSelectorTest.cs index 3c2f18bf23e3..51b7438f402c 100644 --- a/tests/introspection/ApiSelectorTest.cs +++ b/tests/introspection/ApiSelectorTest.cs @@ -231,6 +231,15 @@ protected virtual bool Skip (Type type, string selectorName) return true; } break; + case "CIFilterGenerator": + switch (selectorName) { + case "filterGenerator": + case "filterGeneratorWithContentsOfURL:": + if (TestRuntime.IsSimulatorOrDesktop) + return true; + break; + } + break; } // This ctors needs to be manually bound switch (type.Name) { diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreImage.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreImage.ignore index ccfc4002f26f..606c7b7ff26e 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreImage.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreImage.ignore @@ -253,4 +253,9 @@ ## xcode 14 !missing-selector! +CIFilter::areaLogarithmicHistogramFilter not bound !missing-selector! +CIFilter::convertLabToRGBFilter not bound -!missing-selector! +CIFilter::convertRGBtoLabFilter not bound \ No newline at end of file +!missing-selector! +CIFilter::convertRGBtoLabFilter not bound +# xcode 15 +!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract +!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract +!incorrect-protocol-member! CIImageProcessorInput::roiTileCount is REQUIRED and should be abstract +!incorrect-protocol-member! CIImageProcessorInput::roiTileIndex is REQUIRED and should be abstract diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreImage.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreImage.todo deleted file mode 100644 index 5fd4f131050e..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreImage.todo +++ /dev/null @@ -1,35 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIFilterGenerator::filterGenerator not bound -!missing-selector! +CIFilterGenerator::filterGeneratorWithContentsOfURL: not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIFilterGenerator::classAttributes not bound -!missing-selector! CIFilterGenerator::connectObject:withKey:toObject:withKey: not bound -!missing-selector! CIFilterGenerator::disconnectObject:withKey:toObject:withKey: not bound -!missing-selector! CIFilterGenerator::exportedKeys not bound -!missing-selector! CIFilterGenerator::exportKey:fromObject:withName: not bound -!missing-selector! CIFilterGenerator::filter not bound -!missing-selector! CIFilterGenerator::initWithContentsOfURL: not bound -!missing-selector! CIFilterGenerator::registerFilterName: not bound -!missing-selector! CIFilterGenerator::removeExportedKey: not bound -!missing-selector! CIFilterGenerator::setAttributes:forExportedKey: not bound -!missing-selector! CIFilterGenerator::setClassAttributes: not bound -!missing-selector! CIFilterGenerator::writeToURL:atomically: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound -!missing-type! CIFilterGenerator not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreImage.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreImage.todo deleted file mode 100644 index 0dbdfefaf0f5..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-CoreImage.todo +++ /dev/null @@ -1,20 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreImage.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreImage.todo deleted file mode 100644 index 0dbdfefaf0f5..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreImage.todo +++ /dev/null @@ -1,20 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound diff --git a/tests/xtro-sharpie/common-CoreImage.ignore b/tests/xtro-sharpie/common-CoreImage.ignore index f8e233e59658..593b6f2299bc 100644 --- a/tests/xtro-sharpie/common-CoreImage.ignore +++ b/tests/xtro-sharpie/common-CoreImage.ignore @@ -255,4 +255,9 @@ ## xcode 14 !missing-selector! +CIFilter::areaLogarithmicHistogramFilter not bound !missing-selector! +CIFilter::convertLabToRGBFilter not bound -!missing-selector! +CIFilter::convertRGBtoLabFilter not bound \ No newline at end of file +!missing-selector! +CIFilter::convertRGBtoLabFilter not bound +# xcode1 5 +!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract +!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract +!incorrect-protocol-member! CIImageProcessorInput::roiTileCount is REQUIRED and should be abstract +!incorrect-protocol-member! CIImageProcessorInput::roiTileIndex is REQUIRED and should be abstract diff --git a/tests/xtro-sharpie/iOS-CoreImage.todo b/tests/xtro-sharpie/iOS-CoreImage.todo deleted file mode 100644 index 5fd4f131050e..000000000000 --- a/tests/xtro-sharpie/iOS-CoreImage.todo +++ /dev/null @@ -1,35 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIFilterGenerator::filterGenerator not bound -!missing-selector! +CIFilterGenerator::filterGeneratorWithContentsOfURL: not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIFilterGenerator::classAttributes not bound -!missing-selector! CIFilterGenerator::connectObject:withKey:toObject:withKey: not bound -!missing-selector! CIFilterGenerator::disconnectObject:withKey:toObject:withKey: not bound -!missing-selector! CIFilterGenerator::exportedKeys not bound -!missing-selector! CIFilterGenerator::exportKey:fromObject:withName: not bound -!missing-selector! CIFilterGenerator::filter not bound -!missing-selector! CIFilterGenerator::initWithContentsOfURL: not bound -!missing-selector! CIFilterGenerator::registerFilterName: not bound -!missing-selector! CIFilterGenerator::removeExportedKey: not bound -!missing-selector! CIFilterGenerator::setAttributes:forExportedKey: not bound -!missing-selector! CIFilterGenerator::setClassAttributes: not bound -!missing-selector! CIFilterGenerator::writeToURL:atomically: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound -!missing-type! CIFilterGenerator not bound diff --git a/tests/xtro-sharpie/macOS-CoreImage.todo b/tests/xtro-sharpie/macOS-CoreImage.todo deleted file mode 100644 index 0dbdfefaf0f5..000000000000 --- a/tests/xtro-sharpie/macOS-CoreImage.todo +++ /dev/null @@ -1,20 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound diff --git a/tests/xtro-sharpie/tvOS-CoreImage.todo b/tests/xtro-sharpie/tvOS-CoreImage.todo deleted file mode 100644 index 0dbdfefaf0f5..000000000000 --- a/tests/xtro-sharpie/tvOS-CoreImage.todo +++ /dev/null @@ -1,20 +0,0 @@ -!incorrect-protocol-member! CIPhotoEffect::extrapolate is REQUIRED and should be abstract -!incorrect-protocol-member! CIPhotoEffect::setExtrapolate: is REQUIRED and should be abstract -!missing-field! kCIContextMemoryLimit not bound -!missing-field! kCIFormatRGB10 not bound -!missing-field! kCIFormatRGBX16 not bound -!missing-field! kCIFormatRGBXf not bound -!missing-field! kCIFormatRGBXh not bound -!missing-field! kCIImageAuxiliaryHDRGainMap not bound -!missing-field! kCIImageCacheImmediately not bound -!missing-field! kCIImageExpandToHDR not bound -!missing-protocol-member! CIImageProcessorInput::roiTileCount not found -!missing-protocol-member! CIImageProcessorInput::roiTileIndex not found -!missing-selector! +CIFilter::blurredRectangleGeneratorFilter not bound -!missing-selector! +CIFilter::cannyEdgeDetectorFilter not bound -!missing-selector! +CIFilter::roundedRectangleStrokeGeneratorFilter not bound -!missing-selector! +CIFilter::sobelGradientsFilter not bound -!missing-selector! +CIImageProcessorKernel::roiTileArrayForInput:arguments:outputRect: not bound -!missing-selector! CIContext::OpenEXRRepresentationOfImage:options:error: not bound -!missing-selector! CIContext::writeOpenEXRRepresentationOfImage:toURL:options:error: not bound -!missing-selector! CIRenderInfo::kernelCompileTime not bound