Skip to content

CoreImage iOS xcode16.0 b1

Rolf Bjarne Kvinge edited this page Jul 10, 2024 · 3 revisions

#CoreImage.framework https://github.com/xamarin/xamarin-macios/pull/20774

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h	2024-04-13 21:11:05
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h	2024-05-30 10:55:37
@@ -417,6 +417,17 @@
 // The value for kCIImageRepresentationSemanticSegmentationSkyMatteImage should be a monochome CIImage object. */
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationSemanticSegmentationSkyMatteImage NS_AVAILABLE(11_1, 14_3);
 
+// The value for kCIImageRepresentationHDRImage should be a HDR CIImage object.
+// This optional image can be passed to JPEGRepresentationOfImage or HEIFRepresentationOfImage.
+//
+// When provided, Core Image will calculate a HDRGainMap image from the ratio of the HDR image to
+// the primary SDR image.
+//
+// If the the HDR CIImage has a .contentHeadroom property, then that will be used when calculating the
+// HDRGainMap image and metadata.
+//
+CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationHDRImage NS_AVAILABLE(15_0, 18_0);
+
 
 /* Render a CIImage to TIFF data. Image must have a finite non-empty extent. */
 /* The CGColorSpace must be kCGColorSpaceModelRGB or kCGColorSpaceModelMonochrome */
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h	2024-04-19 07:32:43
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h	2024-05-30 10:52:45
@@ -134,6 +134,11 @@
   @property (nonatomic) float scale;
   @property (nonatomic) float aspectRatio;
 @end
+@protocol CIMaximumScaleTransform <CIFilter>
+  @property (nonatomic, retain, nullable) CIImage *inputImage;
+  @property (nonatomic) float scale;
+  @property (nonatomic) float aspectRatio;
+@end
 @protocol CIPerspectiveCorrection <CIFourCoordinateGeometryFilter>
   @property (nonatomic) bool crop;
 @end
@@ -312,6 +317,11 @@
   @property (nonatomic) CGPoint point3;
   @property (nonatomic) CGPoint point4;
 @end
+@protocol CIToneMapHeadroom <CIFilter>
+  @property (nonatomic, retain, nullable) CIImage *inputImage;
+  @property (nonatomic) float sourceHeadroom;
+  @property (nonatomic) float targetHeadroom;
+@end
 @protocol CIVibrance <CIFilter>
   @property (nonatomic, retain, nullable) CIImage *inputImage;
   @property (nonatomic) float amount;
@@ -972,6 +982,8 @@
 @end
 @protocol CIAreaAverage <CIAreaReductionFilter>
 @end
+@protocol CIAreaBoundsRed <CIAreaReductionFilter>
+@end
 @protocol CIAreaHistogram <CIAreaReductionFilter>
   @property (nonatomic) float scale;
   @property (nonatomic) NSInteger count;
@@ -1040,6 +1052,7 @@
 + (CIFilter<CIKeystoneCorrectionHorizontal>*) keystoneCorrectionHorizontalFilter;
 + (CIFilter<CIKeystoneCorrectionVertical>*) keystoneCorrectionVerticalFilter;
 + (CIFilter<CILanczosScaleTransform>*) lanczosScaleTransformFilter;
++ (CIFilter<CIMaximumScaleTransform>*) maximumScaleTransformFilter NS_AVAILABLE(15_0, 18_0);
 + (CIFilter<CIPerspectiveCorrection>*) perspectiveCorrectionFilter;
 + (CIFilter<CIPerspectiveRotate>*) perspectiveRotateFilter;
 + (CIFilter<CIPerspectiveTransform>*) perspectiveTransformFilter;
@@ -1108,6 +1121,7 @@
 + (CIFilter<CISRGBToneCurveToLinear>*) sRGBToneCurveToLinearFilter;
 + (CIFilter<CITemperatureAndTint>*) temperatureAndTintFilter;
 + (CIFilter<CIToneCurve>*) toneCurveFilter;
++ (CIFilter<CIToneMapHeadroom>*) toneMapHeadroomFilter NS_AVAILABLE(15_0, 18_0);
 + (CIFilter<CIVibrance>*) vibranceFilter;
 + (CIFilter<CIWhitePointAdjust>*) whitePointAdjustFilter;
 
@@ -1258,7 +1272,9 @@
 + (CIFilter<CIZoomBlur>*) zoomBlurFilter;
 
 // CICategoryReduction
++ (CIFilter<CIAreaHistogram>*) areaAlphaWeightedHistogramFilter NS_AVAILABLE(15_0, 18_0);
 + (CIFilter<CIAreaAverage>*) areaAverageFilter NS_AVAILABLE(11_0, 14_0);
++ (CIFilter<CIAreaBoundsRed>*) areaBoundsRedFilter NS_AVAILABLE(15_0, 18_0);
 + (CIFilter<CIAreaHistogram>*) areaHistogramFilter NS_AVAILABLE(11_0, 14_0);
 + (CIFilter<CIAreaLogarithmicHistogram>*) areaLogarithmicHistogramFilter NS_AVAILABLE(13_0, 16_0);
 + (CIFilter<CIAreaMaximum>*) areaMaximumFilter NS_AVAILABLE(11_0, 14_0);
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h	2024-04-19 07:32:43
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h	2024-05-30 08:28:51
@@ -43,45 +43,45 @@
 
 typedef int CIFormat NS_TYPED_ENUM;
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatARGB8 NS_AVAILABLE(10_4, 6_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatBGRA8;
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBA8;
-CORE_IMAGE_EXPORT CIFormat kCIFormatABGR8 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatARGB8 NS_AVAILABLE(10_4, 6_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatBGRA8;
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBA8;
+CORE_IMAGE_EXPORT const CIFormat kCIFormatABGR8 NS_AVAILABLE(10_11, 9_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBAh NS_AVAILABLE(10_4, 6_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBA16 NS_AVAILABLE(10_4, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBAf NS_AVAILABLE(10_4, 7_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBX16 NS_AVAILABLE(11_0, 14_2);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBXh NS_AVAILABLE(14_0, 17_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGBXf NS_AVAILABLE(14_0, 17_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBAh NS_AVAILABLE(10_4, 6_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBA16 NS_AVAILABLE(10_4, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBAf NS_AVAILABLE(10_4, 7_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBX16 NS_AVAILABLE(11_0, 14_2);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBXh NS_AVAILABLE(14_0, 17_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGBXf NS_AVAILABLE(14_0, 17_0);
 
 // RGB101010 stored in little-endian 32bit int, 2 MSB are ignored, full-range (0-1024)
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGB10 NS_AVAILABLE(14_0, 17_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGB10 NS_AVAILABLE(14_0, 17_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatA8 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatA16 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatAh NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatAf NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatA8 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatA16 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatAh NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatAf NS_AVAILABLE(10_11, 9_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatR8 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatR16 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRh NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRf NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatR8 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatR16 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRh NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRf NS_AVAILABLE(10_11, 9_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatRG8 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRG16 NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGh NS_AVAILABLE(10_11, 9_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatRGf NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRG8 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRG16 NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGh NS_AVAILABLE(10_11, 9_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatRGf NS_AVAILABLE(10_11, 9_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatL8 NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatL16 NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatLh NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatLf NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatL8 NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatL16 NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLh NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLf NS_AVAILABLE(10_12, 10_0);
 
-CORE_IMAGE_EXPORT CIFormat kCIFormatLA8 NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatLA16 NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatLAh NS_AVAILABLE(10_12, 10_0);
-CORE_IMAGE_EXPORT CIFormat kCIFormatLAf NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLA8 NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLA16 NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLAh NS_AVAILABLE(10_12, 10_0);
+CORE_IMAGE_EXPORT const CIFormat kCIFormatLAf NS_AVAILABLE(10_12, 10_0);
 
 
 /* Image options dictionary keys.
@@ -119,6 +119,18 @@
  */
 CORE_IMAGE_EXPORT CIImageOption const kCIImageExpandToHDR NS_AVAILABLE(14_0, 17_0);
 
+/* A float value for overriding the image's content headroom.
+ * This option is supported by:
+ *     imageWithContentsOfURL:options:, initWithContentsOfURL:options,
+ *     imageWithData:options:,          initWithData:options:,
+ *     imageWithCGImage:options:,       initWithCGImage:options:,
+ *     imageWithCGImageSource:options:, initWithCGImageSource:options:,
+ *     imageWithIOSurface:options:,     initWithIOSurface:options:,
+ *
+ * If the value for this option is a NSNumber greater than or equal to 1.0,
+ * then it will override the automatic behavior of the 'headroom' property.
+ */
+CORE_IMAGE_EXPORT CIImageOption const kCIImageContentHeadroom NS_AVAILABLE(15_0, 18_0);
 
 /* A boolean value specifying how the image should sampled. 
  * If this option value is @YES, then the image will be sampled using nearest neighbor sampling.
@@ -176,6 +188,10 @@
  *
  * If the value of any of these keys is @YES, the auxiliary image be returned if present.
  * The returned image will be a monochrome image.
+ *
+ * The kCIImageAuxiliaryHDRGainMap option will return as a CIImage the auxiliary data returned
+ * by either kCGImageAuxiliaryDataTypeHDRGainMap or kCGImageAuxiliaryDataTypeISOGainMap.
+ * If the file contains both gain maps, then the kCGImageAuxiliaryDataTypeISOGainMap data is returned.
  */
 CORE_IMAGE_EXPORT CIImageOption const kCIImageAuxiliaryDepth NS_AVAILABLE(10_13, 11_0);
 CORE_IMAGE_EXPORT CIImageOption const kCIImageAuxiliaryDisparity NS_AVAILABLE(10_13, 11_0);
@@ -404,11 +420,11 @@
 
 
 /* Return a new image by color matching from the colorSpace to the context's working space.
- * This method will return nil if the CGColorSpace is not kCGColorSpaceModelRGB. */
+ * This method will return nil if the CGColorSpace is not kCGColorSpaceModelRGB or Monochrome. */
 - (nullable CIImage *)imageByColorMatchingColorSpaceToWorkingSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
 
 /* Return a new image by color matching from the context's working space to the colorSpace.
- * This method will return nil if the CGColorSpace is not kCGColorSpaceModelRGB. */
+ * This method will return nil if the CGColorSpace is not kCGColorSpaceModelRGB or Monochrome. */
 - (nullable CIImage *)imageByColorMatchingWorkingSpaceToColorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
 
 /* Return a new image by multiplying the receiver's RGB values by its alpha. */
@@ -440,9 +456,24 @@
  * independent of the CIContext's kCIContextCacheIntermediates option.  */
 - (CIImage *)imageByInsertingIntermediate:(BOOL)cache NS_AVAILABLE(10_14, 12_0);
 
+/* Returns a new image that applies a gain map image to the received image.
+ * The gain map image should be obtained by creating a image using either the 
+ * kCIImageAuxiliaryHDRGainMap option set to @YES. If the gain map image doesn't
+ * have the needed metadata, the received image will be returned as-is. */
+- (CIImage*) imageByApplyingGainMap:(CIImage*)gainmap NS_AVAILABLE(15_0, 18_0);
+
+/* Returns a new image that applies a gain map image to the received image
+ * and to specify how much headroom the resulting image should have.
+ * The headroom value will be limited to between 1.0 (i.e. SDR) and 
+ * the full headroom allowed by the gain map. */
+- (CIImage*) imageByApplyingGainMap:(CIImage*)gainmap headroom:(float)headroom NS_AVAILABLE(15_0, 18_0);
+
 /* Return a rect the defines the bounds of non-(0,0,0,0) pixels */
 @property (NS_NONATOMIC_IOSONLY, readonly) CGRect extent;
 
+/* Returns YES if the image is known to have alpha==1 over the entire image extent */
+@property (nonatomic, readonly, getter=isOpaque) BOOL opaque;
+
 /* Returns the metadata properties of an image. If the image is the
  * output of one or more CIFilters, then the metadata of the root inputImage
  * will be returned. See also kCIImageProperties. */
@@ -455,10 +486,45 @@
  * This method will return nil, if the URL cannot be determined. */
 @property (atomic, readonly, nullable) NSURL *url NS_AVAILABLE(10_4, 9_0);
 
-/* Returns if possible the color space of the image it was defined in.
- * This method will return nil, if the color space cannot be determined. */
+/* Returns the color space of the image.
+ * If this returns nil, the image should be assumed to be in the Core Image working colorspace.
+ *
+ * This method will return nil if image is the result of applying a CIFilter or CIKernel.
+ * There are exceptions to this.  Applying CIWarpKernels or certain CIFilters (e.g. CIGaussianBlur,
+ * CILanczosScaleTransform, CIAreaAverage and some others) to an image will result in a CIImage with
+ * the same 'colorspace' property value.
+ */
 @property (atomic, readonly, nullable) CGColorSpaceRef colorSpace NS_AVAILABLE(10_4, 9_0) CF_RETURNS_NOT_RETAINED;
 
+/* Returns the content headroom of the image.
+ *
+ * If the image headroom is unknown, then the value 0.0 will be returned.
+ *
+ * If the image headroom is known, then a value greater than or equal to 1.0 will be returned.
+ * A value of 1.0 will be returned if the image is SDR.
+ * A value greater than 1.0 will be returned if the image is EDR.
+ *
+ * The image headroom may known when a CIImage is first initialized.
+ * If the a CIImage is initialized using:
+ *   [CIImage imageWithContentsOfURL:..] or [CIImage imageWithData:..]
+ *   headroom may be determined by associated metadata or deduced from pixel format or colorSpace information.
+ *
+ *   [CIImage imageWithCGImage:..]
+ *   headroom may be determined by CGImageGetHeadroomInfo() or deduced from pixel format or colorSpace information.
+ *
+ *   [CIImage imageWithIOSurface:..] or [CIImage imageWithCVPixelBuffer:..]
+ *   headroom may be determined by kIOSurfaceContentHeadroom or deduced from pixel format or colorSpace information.
+ *
+ *   [CIImage imageWithBitmapData:..]
+ *   headroom may be deduced from pixel format or colorSpace information.
+ *
+ * If the image is the result of applying a CIFilter or CIKernel, this method will return 0.0.
+ * There are exceptions to this.  Applying CIWarpKernels or certain CIFilters (e.g. CIGaussianBlur,
+ * CILanczosScaleTransform, CIAreaAverage and some others) to an image will result in a CIImage with
+ * the same 'headroom' property value.
+ */
+@property (nonatomic, readonly) float contentHeadroom NS_AVAILABLE(15_0, 18_0);
+
 /* Returns a CVPixelBufferRef if the CIImage was created with [CIImage imageWithCVPixelBuffer] and no options.
  * Otherwise this property will be nil and calling [CIContext render:toCVPixelBuffer:] is recommended.
  * Modifying the contents of this pixelBuffer will cause the CIImage to render with undefined results. */
@@ -467,6 +533,11 @@
 /* Returns a CGImageRef if the CIImage was created with [CIImage imageWithCGImage] or [CIImage imageWithContentsOfURL] and no options.
  * Otherwise this property will be nil and calling [CIContext createCGImage:fromRect:] is recommended. */
 @property (nonatomic, readonly, nullable) CGImageRef CGImage NS_AVAILABLE(10_12,10_0);
+
+/* Returns a MTLTexture if the CIImage was created with [CIImage imageWithMTLTexture] and no options.
+ * Otherwise this property will be nil and calling [CIContext render:toMTLTexture:] is recommended.
+ * Modifying the contents of this texture will cause the CIImage to render with undefined results. */
+@property (nonatomic, readonly, nullable) id<MTLTexture> metalTexture NS_AVAILABLE(15_0, 18_0);
 
 /* Returns the rectangle of 'image' that is required to render the
  * rectangle 'rect' of the receiver.  This may return a null rect. */
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2024-04-19 07:32:43
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2024-05-30 10:55:37
@@ -169,7 +169,7 @@
     
     //MARK: - Destination
     
-    typedef struct
+    typedef struct Destination
     {
         // Returns the position, in working space coordinates, of the pixel currently being computed.
         // The destination space refers to the coordinate space of the image you are rendering.
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h	2024-04-19 08:20:11
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h	2024-05-30 15:41:18
@@ -160,7 +160,7 @@
 @property (getter=isFlipped) BOOL flipped;
 
 // Instructs the render to add pseudo-random luma noise given the depth of the destination.
-// The magnitude of the noise is approximatly ±pow(2,-(bitPerComponent+1))
+// The magnitude of the noise is approximately ±pow(2,-(bitPerComponent+1))
 @property (getter=isDithered) BOOL dithered;
 
 // If true, the render will clamp color channels
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes	2024-04-13 20:59:19
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes	2024-05-30 10:37:06
@@ -147,6 +147,10 @@
   SwiftName: auxiliarySemanticSegmentationGlassesMatte
 - Name: kCIImageAuxiliarySemanticSegmentationSkyMatte
   SwiftName: auxiliarySemanticSegmentationSkyMatte
+- Name: kCIImageAuxiliaryHDRGainMap
+  SwiftName: auxiliaryHDRGainMap
+- Name: kCIImageContentHeadroom
+  SwiftName: contentHeadroom
 
 # CIImageOptions - Private
 - Name: kCIImageFlipped
@@ -185,8 +189,6 @@
   SwiftName: AVPortraitEffectsMatte
 - Name: kCIImageTextScaleFactor
   SwiftName: textScaleFactor
-- Name: kCIImageAuxiliaryHDRGainMap
-  SwiftName: auxiliaryHDRGainMap
 
 # CIContextOption
 - Name: kCIContextOutputColorSpace
Clone this wiki locally