Skip to content

CoreImage macOS xcode26.0 b1

Alex Soto edited this page Jun 9, 2025 · 1 revision

#CoreImage.framework

diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIBarcodeDescriptor.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIBarcodeDescriptor.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIBarcodeDescriptor.h	2025-04-19 01:56:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIBarcodeDescriptor.h	2025-05-24 05:41:32
@@ -13,47 +13,39 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-/*!
- @class CIBarcodeDescriptor
- @abstract
-    CIBarcodeDescriptor is an abstract base class that defines an abstract representation of a machine readable code's symbol attributes.
- 
- @discsussion
-    Each subclass is sufficient to recreate the symbol exactly as seen or to be used with a custom parser. Subclasses of CIBarcodeDescriptor are defined for each code type to contain the formal specification of each symbology.
- 
- */
+/// An abstract base class that represents a machine-readable code's attributes.
+///
+/// Subclasses encapsulate the formal specification and fields specific to a code type. 
+/// Each subclass is sufficient to recreate the unique symbol exactly as seen or used with a custom parser.
+///
 NS_CLASS_AVAILABLE(10_13, 11_0)
 @interface CIBarcodeDescriptor : NSObject <NSSecureCoding, NSCopying>
 @end
 
-/*!
- @enum CIQRCodeErrorCorrectionLevel
- @abstract
-    Constants indicating the percentage of the symbol that is dedicated to error correction.
- 
- @constant CIQRCodeErrorCorrectionLevelL
-    Indicates that approximately 20% of the symbol data is dedicated to error correction.
- @constant CIQRCodeErrorCorrectionLevelM
-    Indicates that approximately 37% of the symbol data is dedicated to error correction.
- @constant CIQRCodeErrorCorrectionLevelQ
-    Indicates that approximately 55% of the symbol data is dedicated to error correction.
- @constant CIQRCodeErrorCorrectionLevelH
-    Indicates that approximately 65% of the symbol data is dedicated to error correction.
- */
+/// Constants indicating the percentage of the symbol that is dedicated to error correction.
 typedef CF_ENUM(NSInteger, CIQRCodeErrorCorrectionLevel)
 {
+    /// Indicates that approximately 20% of the symbol data is dedicated to error correction.
     CIQRCodeErrorCorrectionLevelL NS_SWIFT_NAME(levelL) = 'L',
+    
+    /// Indicates that approximately 37% of the symbol data is dedicated to error correction.
     CIQRCodeErrorCorrectionLevelM NS_SWIFT_NAME(levelM) = 'M',
+    
+    /// Indicates that approximately 55% of the symbol data is dedicated to error correction.
     CIQRCodeErrorCorrectionLevelQ NS_SWIFT_NAME(levelQ) = 'Q',
+    
+    /// Indicates that approximately 65% of the symbol data is dedicated to error correction.
     CIQRCodeErrorCorrectionLevelH NS_SWIFT_NAME(levelH) = 'H',
 
 } NS_SWIFT_NAME(CIQRCodeDescriptor.ErrorCorrectionLevel);
 
-/*!
- @class CIQRCodeDescriptor
- @abstract
-    CIQRCodeDescriptor is a concrete subclass of CIBarcodeDescriptor that defines an abstract representation of a QR code symbol. 
- */
+
+/// A concrete subclass of the Core Image Barcode Descriptor that represents a square QR code symbol.
+///
+/// ISO/IEC 18004 defines versions from 1 to 40, where a higher symbol version indicates a 
+/// larger data-carrying capacity.
+/// QR Codes can encode text, vCard contact information, or Uniform Resource Identifiers (URI).
+///
 NS_CLASS_AVAILABLE(10_13, 11_0)
 @interface CIQRCodeDescriptor : CIBarcodeDescriptor
 {
@@ -64,55 +56,68 @@
     CIQRCodeErrorCorrectionLevel errorCorrectionLevel;
 }
 
-/*!
- @property errorCorrectedPayload
- @abstract
- The error-corrected codewords that comprise the QR code symbol.
- 
- @discussion
- QR Codes are formally specified in ISO/IEC 18004:2006(E). Section 6.4.10 "Bitstream to codeword conversion" specifies the set of 8-bit codewords in the symbol immediately prior to splitting the message into blocks and applying error correction.
- 
- During decode, error correction is applied and if successful, the message is re-ordered to the state immediately following "Bitstream to codeword coversion." The errorCorrectedPayload corresponds to this sequence of 8-bit codewords.
- */
+/// The error-corrected codeword payload that comprises the QR code symbol.
+///
+/// QR Codes are formally specified in ISO/IEC 18004:2006(E). 
+/// Section 6.4.10 "Bitstream to codeword conversion" specifies the set of 8-bit codewords in the symbol 
+/// immediately prior to splitting the message into blocks and applying error correction.
+/// 
+/// During decode, error correction is applied and if successful, the message is re-ordered to the state immediately 
+/// following "Bitstream to codeword conversion." 
+/// 
+/// The `errorCorrectedPayload` corresponds to this sequence of 8-bit codewords.
+///
 @property (readonly) NSData *errorCorrectedPayload;
 
-/*!
- @property symbolVersion
- @abstract
-    The version property corresponds to the size of the QR Code.
-
- @discussion
-    QR Codes are square. ISO/IEC 18004 defines versions from 1 to 40, where a higher symbol version indicates a larger data carrying capacity. This field is required in order to properly interpret the error corrected payload.
- */
+/// The version of the QR code which corresponds to the size of the QR code symbol.
+///
+/// ISO/IEC 18004 defines versions from 1 to 40, where a higher symbol version indicates a larger data-carrying capacity.
+/// This field is required in order to properly interpret the error corrected payload.
+///
 @property (readonly) NSInteger symbolVersion;
 
-/*!
- @property maskPattern
- @abstract
-    The data mask pattern for the QR code symbol.
- 
- @discussion
-    QR Codes support eight data mask patterns, which are used to avoid large black or large white areas inside the symbol body. Valid values range from 0 to 7.
- */
+/// The data mask pattern for the QR code symbol.
+///
+/// QR Codes support eight data mask patterns, which are used to avoid large black or large white areas inside the symbol body. 
+/// Valid values range from 0 to 7.
+///
 @property (readonly) uint8_t maskPattern;
 
-/*!
- @property errorCorrectionLevel
- @abstract
-    The error correction level of the QR code.
- 
- @discussion
-    QR Codes support four levels of Reed-Solomon error correction, in increasing error correction capability: L, M, Q, and H.
- */
+/// The error correction level of the QR code symbol.
+///
+/// QR Codes support four levels of Reed-Solomon error correction.
+/// 
+/// The possible error correction levels are enumerated in ``CIDataMatrixCodeECCVersion``.
+///
 @property (readonly) CIQRCodeErrorCorrectionLevel errorCorrectionLevel;
 
-// Initializes a descriptor that can be used as input to CIBarcodeGenerator
+/// Initializes a QR code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the QR code symbol.
+///   - symbolVersion: The symbol version, from 1 through 40.
+///   - maskPattern: The mask pattern to use in the QR code, from 0 to 7.
+///   - errorCorrectionLevel: The QR code's error correction level: L, M, Q, or H.
+/// - Returns:
+///     An initialized ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 - (nullable instancetype)initWithPayload:(NSData *)errorCorrectedPayload
                            symbolVersion:(NSInteger)symbolVersion
                              maskPattern:(uint8_t)maskPattern
                     errorCorrectionLevel:(CIQRCodeErrorCorrectionLevel)errorCorrectionLevel;
 
-// Construct an autoreleased descriptor that can be used as input to CIBarcodeGenerator
+/// Creates a QR code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the QR code symbol.
+///   - symbolVersion: The symbol version, from 1 through 40.
+///   - maskPattern: The mask pattern to use in the QR code, from 0 to 7.
+///   - errorCorrectionLevel: The QR code's error correction level: L, M, Q, or H.
+/// - Returns:
+///     An autoreleased ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 + (nullable instancetype)descriptorWithPayload:(NSData *)errorCorrectedPayload
                                  symbolVersion:(NSInteger)symbolVersion
                                    maskPattern:(uint8_t)maskPattern
@@ -121,14 +126,11 @@
 @end
 
 
-/*!
- @class CIAztecCodeDescriptor
- @abstract
-    CIAztecCodeDescriptor is a concrete subclass of CIBarcodeDescriptor that defines an abstract representation of an Aztec Code symbol.
- 
- @discussion
-    CIAztecCodeDescriptor may not be instantiated directly.
- */
+/// A concrete subclass the Core Image Barcode Descriptor that represents an Aztec code symbol.
+/// 
+/// An Aztec code symbol is a 2D barcode format defined by the ISO/IEC 24778:2008 standard. 
+/// It encodes data in concentric square rings around a central bullseye pattern.
+/// 
 NS_CLASS_AVAILABLE(10_13, 11_0)
 @interface CIAztecCodeDescriptor : CIBarcodeDescriptor
 {
@@ -139,59 +141,74 @@
     NSInteger dataCodewordCount;
 }
 
-/*!
- @property errorCorrectedPayload
- @abstract
- The error-corrected codewords that comprise the Aztec code symbol.
- 
- @discussion
- Aztec Codes are formally specified in ISO/IEC 24778:2008(E).
- 
- The error corrected payload consists of the 6-, 8-, 10-, or 12-bit message codewords produced at the end of the step described in section 7.3.1.2 "Formation of data codewords", which exists immediately prior to adding error correction. These codewords have dummy bits inserted to ensure that an entire codeword isn't all 0's or all 1's. Clients will need to remove these extra bits as part of interpreting the payload.
- */
+/// The error-corrected payload that comprises the the Aztec code symbol.
+/// 
+/// Aztec Codes are formally specified in ISO/IEC 24778:2008(E).
+/// 
+/// The error corrected payload consists of the 6-, 8-, 10-, or 12-bit message codewords produced 
+/// at the end of the step described in section 7.3.1.2 "Formation of data codewords", which exists
+/// immediately prior to adding error correction. These codewords have dummy bits inserted to ensure
+/// that an entire codeword isn't all 0's or all 1's. Clients will need to remove these extra bits
+/// as part of interpreting the payload.
+///
 @property (readonly) NSData *errorCorrectedPayload;
 
-/*!
- @property isCompact
- @abstract
-    A BOOL indicating whether the symbol is compact.
- 
- @discussion
-    Compact Aztec symbols use one-fewer ring in the central finder pattern than full-range Aztec symbols of the same number of data layers.
- */
+/// A Boolean value telling if the Aztec code is compact.
+/// 
+/// Compact Aztec symbols use one-fewer ring in the central finder pattern than full-range 
+/// Aztec symbols of the same number of data layers.
+/// 
 @property (readonly) BOOL isCompact;
 
-/*!
- @property layerCount
- @abstract
-    The number of data layers in the Aztec code symbol.
- 
- @discussion
-    Combined with the isCompact property, the number of data layers determines the number of modules in the Aztec Code symbol. Valid values range from 1 to 32. Compact symbols can have up to 4 data layers.
- 
-    The number of data layers also determines the number of bits in each data codeword of the message carried by the Aztec Code symbol.
- */
+/// The number of data layers in the Aztec code symbol.
+/// 
+/// Combined with ``isCompact-property``, the number of data layers determines the number of  
+/// modules in the Aztec Code symbol. Valid values range from 1 to 32. Compact symbols can have 
+/// up to 4 data layers.
+/// 
+/// The number of data layers also determines the number of bits in each data codeword of the message
+/// carried by the Aztec Code symbol.
+/// 
 @property (readonly) NSInteger layerCount;
 
-/*!
- @property dataCodewordCount
- @abstract
-    The number of non-error-correction codewords carried by the Aztec code symbol.
- 
- @discussion
-    Used to determine the level of error correction in conjunction with the number of data layers. Valid values are 1...2048. Compact symbols can have up to 64 message codewords.
- 
-    Note that this value can exceed the number of message codewords allowed by the number of data layers in this symbol. In this case, the actual number of message codewords is 1024 fewer than this value and the message payload is to be interpreted in an application-defined manner.
- */
+/// The number of non-error-correction codewords carried by the Aztec code symbol.
+/// 
+/// Used to determine the level of error correction in conjunction with the number of data layers. 
+/// Valid values are 1 to 2048. Compact symbols can have up to 64 message codewords.
+/// 
+/// > Note: this value can exceed the number of message codewords allowed by the number of data 
+/// layers in this symbol. In this case, the actual number of message codewords is 1024 fewer than
+/// this value and the message payload is to be interpreted in an application-defined manner.
+/// 
 @property (readonly) NSInteger dataCodewordCount;
 
-// Initializes a descriptor that can be used as input to CIBarcodeGenerator
+/// Initializes an Aztec code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the Aztec code symbol.
+///   - isCompact: A Boolean indicating whether or not the Aztec code is compact.
+///   - layerCount: The number of layers in the Aztec code, from 1 to 32.
+///   - dataCodewordCount: The number of codewords in the Aztec code, from 1 to 2048.
+/// - Returns:
+///     An initialized ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 - (nullable instancetype)initWithPayload:(NSData *)errorCorrectedPayload
                                isCompact:(BOOL)isCompact
                               layerCount:(NSInteger)layerCount
                        dataCodewordCount:(NSInteger)dataCodewordCount;
 
-// Construct an autoreleased descriptor that can be used as input to CIBarcodeGenerator
+/// Creates an Aztec code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the Aztec code symbol.
+///   - isCompact: A Boolean indicating whether or not the Aztec code is compact.
+///   - layerCount: The number of layers in the Aztec code, from 1 to 32.
+///   - dataCodewordCount: The number of codewords in the Aztec code, from 1 to 2048.
+/// - Returns:
+///     An autoreleased ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 + (nullable instancetype)descriptorWithPayload:(NSData *)errorCorrectedPayload
                                      isCompact:(BOOL)isCompact
                                     layerCount:(NSInteger)layerCount
@@ -199,15 +216,14 @@
 
 @end
 
-/*!
- @class CIPDF417CodeDescriptor
- @abstract
-    CIPDF417CodeDescriptor is a concrete subclass of CIBarcodeDescriptor that defines an abstract representation of a PDF417 code symbol.
- 
- @discussion
-    Refer to the ISO/IEC 15438:2006(E) for the PDF417 symbol specification.
- 
- */
+
+/// A concrete subclass of Core Image Barcode Descriptor that represents a PDF417 symbol.
+///
+/// PDF417 is a stacked linear barcode symbol format used predominantly in transport, ID cards, 
+/// and inventory management. Each pattern in the code comprises 4 bars and spaces, 17 units long.
+///
+/// Refer to the ISO/IEC 15438:2006(E) for the PDF417 symbol specification.
+///
 NS_CLASS_AVAILABLE(10_13, 11_0)
 @interface CIPDF417CodeDescriptor : CIBarcodeDescriptor
 {   
@@ -218,53 +234,67 @@
     NSInteger columnCount;
 }
 
-/*!
- @property errorCorrectedPayload
- @abstract
- The error-corrected codewords which comprise the PDF417 symbol. The first codeword indicates the number of data codewords in the errorCorrectedPayload.
- 
- @discussion
- PDF417 codes are comprised of a start character on the left and a stop character on the right. Each row begins and ends with special characters indicating the current row as well as information about the dimensions of the PDF417 symbol. The errorCorrectedPayload represents the sequence of PDF417 codewords that make up the body of the message. The first codeword indicates the number of codewords in the message. This count includes the "count" codeword and any padding codewords, but does not include the error correction codewords. Each codeword is a 16-bit value in the range of 0...928. The sequence is to be interpreted as described in the PDF417 bar code symbology specification -- ISO/IEC 15438:2006(E).
- */
+/// The error-corrected payload containing the data encoded in the PDF417 code symbol.
+///
+/// The first codeword indicates the number of data codewords in the errorCorrectedPayload.
+///
+/// PDF417 codes are comprised of a start character on the left and a stop character on the right. 
+/// Each row begins and ends with special characters indicating the current row as well as information
+/// about the dimensions of the PDF417 symbol. The errorCorrectedPayload represents the sequence
+/// of PDF417 codewords that make up the body of the message. The first codeword indicates the number 
+/// of codewords in the message. This count includes the "count" codeword and any padding codewords, 
+/// but does not include the error correction codewords. Each codeword is a 16-bit value in the range 
+/// of 0...928. The sequence is to be interpreted as described in the PDF417 bar code symbology 
+/// specification -- ISO/IEC 15438:2006(E).
+///
 @property(readonly) NSData *errorCorrectedPayload;
 
-/*!
- @property isCompact
- @abstract
-    A BOOL indicating whether the symbol is compact.
- 
- @discussion
-    Compact PDF417 symbols have abbreviated right-side guard bars.
- */
+/// A boolean value telling if the PDF417 code is compact.
+/// 
+/// Compact PDF417 symbols have abbreviated right-side guard bars.
+///
 @property (readonly) BOOL isCompact;
 
-/*!
- @property rowCount
- @abstract
-    Indicates the number of rows in the rectangular matrix.
- 
- @discussion
-    rowCount values range from 3 to 90.
- */
+/// The number of rows in the PDF417 code symbol.
+/// 
+/// Valid row count values are from 3 to 90.
+///
 @property (readonly) NSInteger rowCount;
 
-/*!
- @property columnCount
- @abstract
-    Indicates the number of columns in the rectangular matrix, excluding the columns used to indicate the symbol structure.
- 
- @discussion
-    columnCount values range from 1 to 30.
- */
+/// The number of columns in the PDF417 code symbol.
+///
+/// Valid column count values are from 1 to 30.
+/// This count excluded the columns used to indicate the symbol structure.
+///
 @property (readonly) NSInteger columnCount;
 
-// Initializes a descriptor that can be used as input to CIBarcodeGenerator
+/// Initializes an PDF417 code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the PDF417 code symbol.
+///   - isCompact: A Boolean indicating whether or not the PDF417 code is compact.
+///   - rowCount: The number of rows in the PDF417 code, from 3 to 90.
+///   - columnCount: The number of columns in the Aztec code, from 1 to 30.
+/// - Returns:
+///     An initialized ``CIPDF417CodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 - (nullable instancetype)initWithPayload:(NSData *)errorCorrectedPayload
                                isCompact:(BOOL)isCompact
                                 rowCount:(NSInteger)rowCount
                              columnCount:(NSInteger)columnCount;
 
-// Construct an autoreleased descriptor that can be used as input to CIBarcodeGenerator
+/// Creates an PDF417 code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the PDF417 code symbol.
+///   - isCompact: A Boolean indicating whether or not the PDF417 code is compact.
+///   - rowCount: The number of rows in the PDF417 code, from 3 to 90.
+///   - columnCount: The number of columns in the Aztec code, from 1 to 30.
+/// - Returns:
+///     An autoreleased ``CIPDF417CodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 + (nullable instancetype)descriptorWithPayload:(NSData *)errorCorrectedPayload
                                      isCompact:(BOOL)isCompact
                                       rowCount:(NSInteger)rowCount
@@ -273,46 +303,44 @@
 @end
 
 
-/*!
- @enum CIDataMatrixCodeECCVersion
- @abstract
-    Constants indicating the Data Matrix code ECC version.
- 
- @discussion
-    ECC 000 - 140 symbols offer five levels of error correction using convolutional code error correction. Each successive level of error correction offers more protection for the message data and increases the size of the symbol required to carry a specific message. ECC 000 symbols offer no data protection. The other modes are described in ISO/IEC 16022:2006 and enumerated in this list only for completeness.
- 
-    ECC 200 symbols utilize Reed-Solomon error correction. The error correction capacity for any given Data Matrix symbol is fixed by the size (in rows and columns) of the symbol. See Table 7 of ISO/IEC 16022:2006(E) for more details.
- 
- @constant CIDataMatrixCodeECCVersion000
-    Indicates error correction using convolutional code error correction with no data protection.
- @constant CIDataMatrixCodeECCVersion050
-    Indicates 1/4 of the symbol is dedicated to convolutional code error correction.
- @constant CIDataMatrixCodeECCVersion080
-    Indicates 1/3 of the symbol is dedicated to convolutional code error correction.
- @constant CIDataMatrixCodeECCVersion100
-    Indicates 1/2 of the symbol is dedicated to convolutional code error correction.
- @constant CIDataMatrixCodeECCVersion140
-    Indicates 3/4 of the symbol is dedicated to convolutional code error correction.
- @constant CIDataMatrixCodeECCVersion200
-    Indicates error correction using Reed-Solomon error correction. Data protection overhead varies based on symbol size.
- */
+/// Constants indicating the Data Matrix code ECC version.
+///
+/// ECC 000 - 140 symbols offer five levels of error correction using convolutional code error correction. 
+/// Each successive level or error correction offers more protection for the message data but increases the 
+/// size of the symbol required to carry a given message. See the ISO/IEC 16022:2006 spec for other modes.
+///
+/// ECC 200 symbols utilize Reed-Solomon error correction. 
+/// The error correction capacity for any given Data Matrix symbol is fixed by the size (in rows and columns)
+/// of the symbol. See Table 7 of ISO/IEC 16022:2006(E) for more details.
+///
 typedef CF_ENUM(NSInteger, CIDataMatrixCodeECCVersion)
 {
+    /// Indicates error correction using convolutional code error correction with no data protection.
     CIDataMatrixCodeECCVersion000 NS_SWIFT_NAME(v000) =   0,
+    
+    /// Indicates 1/4 of the symbol is dedicated to convolutional code error correction.
     CIDataMatrixCodeECCVersion050 NS_SWIFT_NAME(v050) =  50,
+    
+    /// Indicates 1/3 of the symbol is dedicated to convolutional code error correction.
     CIDataMatrixCodeECCVersion080 NS_SWIFT_NAME(v080) =  80,
+    
+    /// Indicates 1/2 of the symbol is dedicated to convolutional code error correction.
     CIDataMatrixCodeECCVersion100 NS_SWIFT_NAME(v100) = 100,
+    
+    /// Indicates 3/4 of the symbol is dedicated to convolutional code error correction.
     CIDataMatrixCodeECCVersion140 NS_SWIFT_NAME(v140) = 140,
+    
+    /// Indicates error correction using Reed-Solomon error correction. Data protection overhead varies based on symbol size.
     CIDataMatrixCodeECCVersion200 NS_SWIFT_NAME(v200) = 200,
 
 } NS_SWIFT_NAME(CIDataMatrixCodeDescriptor.ECCVersion);
 
-/*!
- @class CIDataMatrixCodeDescriptor
- @abstract
-    CIDataMatrixCodeDescriptor is a concrete subclass of CIBarcodeDescriptor that defines an abstract representation of a Data Matrix code symbol.
 
- */
+/// A concrete subclass the Core Image Barcode Descriptor that represents an Data Matrix code symbol.
+/// 
+/// A Data Matrix code symbol is a 2D barcode format defined by the ISO/IEC 16022:2006(E) standard. 
+/// It encodes data in square or rectangular symbol with solid lines on the left and bottom sides
+///
 NS_CLASS_AVAILABLE(10_13, 11_0)
 @interface CIDataMatrixCodeDescriptor : CIBarcodeDescriptor
 {
@@ -323,55 +351,64 @@
     CIDataMatrixCodeECCVersion eccVersion;
 }
 
-/*!
- @property errorCorrectedPayload
- @abstract
- The error corrected payload that comprise the Data Matrix code symbol.
- 
- @discussion
- DataMatrix symbols are specified bn ISO/IEC 16022:2006(E). ECC 200-type symbols will always have an even number of rows and columns.
- 
- For ECC 200-type symbols, the phases of encoding data into a symbol are described in section 5.1 -- Encode procedure overview. The error corrected payload comprises the de-interleaved bits of the message described at the end of Step 1: Data encodation.
- */
+/// The error-corrected payload containing the data encoded in the Data Matrix code symbol.
+///
+/// DataMatrix symbols are specified bn ISO/IEC 16022:2006(E). ECC 200-type symbols will always 
+/// have an even number of rows and columns.
+///  
+/// For ECC 200-type symbols, the phases of encoding data into a symbol are described in 
+/// section 5.1 -- Encode procedure overview. The error corrected payload comprises the 
+/// de-interleaved bits of the message described at the end of Step 1: Data encodation.
+/// 
 @property (readonly) NSData *errorCorrectedPayload;
 
-/*!
- @property rowCount
- @abstract
-    The number of module rows.
- 
- @discussion
-    Refer to ISO/IEC 16022:2006(E) for valid module row and column count combinations.
- */
+/// The number of rows in the Data Matrix code symbol.
+/// 
+/// Refer to ISO/IEC 16022:2006(E) for valid module row and column count combinations.
+///
 @property (readonly) NSInteger rowCount;
 
-/*!
- @property columnCount
- @abstract
-    The number of module columns.
- 
- @discussion
-    Refer to ISO/IEC 16022:2006(E) for valid module row and column count combinations.
- */
+/// The number of columns in the Data Matrix code symbol.
+/// 
+/// Refer to ISO/IEC 16022:2006(E) for valid module row and column count combinations.
+///
 @property (readonly) NSInteger columnCount;
 
-/*!
- @property eccVersion
- @abstract
-    The Data Matrix code ECC version.
-
- @discussion
-    Valid values are 000, 050, 080, 100, 140, and 200. Any symbol with an even number of rows and columns will be ECC 200.
- */
+/// The error correction version of the Data Matrix code symbol.
+/// 
+/// The possible error correction version are enumerated in ``CIDataMatrixCodeECCVersion``.
+/// Any symbol with an even number of rows and columns will be ECC 200.
+///
 @property (readonly) CIDataMatrixCodeECCVersion eccVersion;
 
 // Initializes a descriptor that can be used as input to CIBarcodeGenerator
+/// Initializes a Data Matrix code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the Data Matrix code symbol.
+///   - rowCount: The number of rows in the Data Matrix code symbol.
+///   - columnCount: The number of columns in the Data Matrix code symbol.
+///   - eccVersion: The ``CIDataMatrixCodeECCVersion`` for the Data Matrix code symbol.
+/// - Returns:
+///     An initialized ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 - (nullable instancetype)initWithPayload:(NSData *)errorCorrectedPayload
                                 rowCount:(NSInteger)rowCount
                              columnCount:(NSInteger)columnCount
                               eccVersion:(CIDataMatrixCodeECCVersion)eccVersion;
 
-// Construct an autoreleased descriptor that can be used as input to CIBarcodeGenerator
+/// Creates a Data Matrix code descriptor for the given payload and parameters.
+///
+/// - Parameters:
+///   - errorCorrectedPayload: The data to encode in the Data Matrix code symbol.
+///   - rowCount: The number of rows in the Data Matrix code symbol.
+///   - columnCount: The number of columns in the Data Matrix code symbol.
+///   - eccVersion: The ``CIDataMatrixCodeECCVersion`` for the Data Matrix code symbol.
+/// - Returns:
+///     An autoreleased ``CIAztecCodeDescriptor`` instance
+///     or `nil` if the parameters are invalid
+///
 + (nullable instancetype)descriptorWithPayload:(NSData *)errorCorrectedPayload
                                       rowCount:(NSInteger)rowCount
                                    columnCount:(NSInteger)columnCount
@@ -379,26 +416,18 @@
 
 @end
 
-/*!
- @extension NSUserActivity
- @abstract
-    A NSUserActivity extension for passing detected barcodes.
- */
 
-#if __OBJC2__
-
 @class NSUserActivity;
 
 @interface NSUserActivity (CIBarcodeDescriptor)
 
-/*! 
- @abstract The scanned code in the user activity passed in by system scanner.
- */
+/// The scanned code in the user activity passed in by system scanner.
+/// 
+/// This property is optional. This value is present if the user activity was created from a source that detected a QR code or other code symbol.
+///
 @property (nonatomic, nullable, readonly, copy) CIBarcodeDescriptor *detectedBarcodeDescriptor API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3));
 
 @end
-
-#endif // __OBJC2__
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIColor.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIColor.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIColor.h	2025-04-19 02:29:31
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIColor.h	2025-05-24 07:16:18
@@ -16,79 +16,284 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-NS_CLASS_AVAILABLE(10_4, 5_0)
+/// The Core Image class that defines a color object.
+///
+/// Use `CIColor` instances in conjunction with other Core Image classes, such as ``CIFilter-class`` and ``CIKernel``.
+/// Many of the built-in Core Image filters have one or more `CIColor` inputs that you can set to affect the filter's
+/// behavior.
+/// 
+/// * Color Model
+/// 
+/// A color is defined as a N-dimensional model where each dimension's color component is represented
+/// by intensity values. A color component may also be referred to as a color channel. An RGB color model, for example, 
+/// is three-dimensional and the red, green, and blue component intensities define each unique color. 
+/// 
+/// ## Color Space
+/// 
+/// A color is also defined by a color space that locates the axes of N-dimensional model within the greater
+/// volume of human perceivable colors.  Core Image uses `CGColorSpace` instances to specify a variety of different
+/// color spaces such as sRGB, P3, BT.2020, etc. The `CGColorSpace` also defines if the color space is coded
+/// linearly or in a non-linear perceptual curve.
+/// (For more information on `CGColorSpace` see <doc://com.apple.documentation/documentation/coregraphics/cgcolorspace>)
+/// 
+/// ## Color Range
+/// 
+/// Standard dynamic range (SDR) color color component values range from `0.0` to `1.0`, with `0.0` 
+/// representing an 0% of that component and `1.0` representing 100%. In contrast, high dynamic range (HDR) color values 
+/// can be less than `0.0` (for more saturation) or greater than `1.0` (for more brightness).
+/// 
+/// ## Color Opacity
+/// 
+/// `CIColor` instances also have an alpha component, which represents the opacity of the color, with 0.0 meaning completely 
+/// transparent and 1.0 meaning completely opaque. If a color does not have an explicit alpha component, Core Image 
+/// assumes that the alpha component equals 1.0. With `CIColor` that color components values are not premultiplied. 
+/// So for example, a semi-transparent pure red `CIColor` is represented by RGB `1.0,0.0,0.0` and A `0.5`.  In contrast 
+/// color components values in ``CIImage`` buffers or read in ``CIKernel`` samplers are premultiplied by default.
+/// 
+NS_CLASS_AVAILABLE(10_4, 5_0) NS_SWIFT_SENDABLE
 @interface CIColor : NSObject <NSSecureCoding, NSCopying>
 {
     void *_priv;
     void *_pad[3];
 }
 
-/* Create a new color object. */
-+ (instancetype)colorWithCGColor:(CGColorRef)c;
+/// Create a Core Image color object with a Core Graphics color object.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
++ (instancetype)colorWithCGColor:(CGColorRef)color;
 
-/* Create a new color object in CI's default RGB colorspace
-   which is kCGColorSpaceSRGB or, if running on OSX before 10.10,
-   kCGColorSpaceGenericRGB. */
-+ (instancetype)colorWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b alpha:(CGFloat)a;
-+ (instancetype)colorWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b;
+/// Create a Core Image color object in the sRGB color space 
+/// with the specified red, green, blue, and alpha component values.
+/// 
+/// On macOS before 10.10, the CIColor's color space will be Generic RGB.
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value between 0 and 1.
+///   - green: The color's unpremultiplied green component value between 0 and 1.
+///   - blue: The color's unpremultiplied blue component value between 0 and 1.
+///   - alpha: The color's alpha (opacity) value between 0 and 1.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
++ (instancetype)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
 
-/* Create a new color object in a given colorspace. 
- * Will return null if the colorspace is not kCGColorSpaceModelRGB. */
-+ (nullable instancetype)colorWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b alpha:(CGFloat)a colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
-+ (nullable instancetype)colorWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+/// Create a Core Image color object in the sRGB color space 
+/// with the specified red, green, and blue component values.
+///  
+/// On macOS before 10.10, the CIColor's color space will be Generic RGB. 
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value between 0 and 1.
+///   - green: The color's unpremultiplied green component value between 0 and 1.
+///   - blue: The color's unpremultiplied blue component value between 0 and 1.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
++ (instancetype)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue;
 
-/* Create a new color object, 'representation' should be a string in one of
- * the formats returned by the stringRepresentation method. */
+/// Create a Core Image color object 
+/// with the specified red, green, blue, and alpha component values
+/// as measured in the specified color space.
+/// 
+/// This will return `null` if the `CGColorSpace` is not `kCGColorSpaceModelRGB`. 
+/// 
+/// The RGB values can be outside the `0...1` range if the `CGColorSpace` is unclamped.
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value.
+///   - green: The color's unpremultiplied green component value.
+///   - blue: The color's unpremultiplied blue component value.
+///   - alpha: The color's alpha (opacity) value between 0 and 1.
+///   - colorSpace: The color's `CGColorSpace` which must have `kCGColorSpaceModelRGB`.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
++ (nullable instancetype)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha 
+                           colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+
+/// Create a Core Image color object 
+/// with the specified red, green, and blue component values
+/// as measured in the specified color space.
+/// 
+/// This will return `null` if the `CGColorSpace` is not `kCGColorSpaceModelRGB`. 
+/// 
+/// The RGB values can be outside the `0...1` range if the `CGColorSpace` is unclamped.
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value.
+///   - green: The color's unpremultiplied green component value.
+///   - blue: The color's unpremultiplied blue component value.
+///   - colorSpace: The color's `CGColorSpace` which must have `kCGColorSpaceModelRGB`.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
++ (nullable instancetype)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue 
+                           colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+
+/// Create a Core Image color object in the sRGB color space using a string containing the RGBA color component values.
+/// 
+/// On macOS before 10.10, the CIColor's color space will be Generic RGB. 
+/// 
+/// - Parameters:
+///   - representation: A string that contains color and alpha float values. 
+///   For example, the string: `"0.5 0.7 0.3 1.0"` indicates an RGB color whose components 
+///   are 50% red, 70% green, 30% blue, and 100% opaque. 
+///   If the string contains only 3 float values, the alpha component will be `1.0`
+///   If the string contains no float values, then ``/CIColor/clearColor`` will be returned.
+/// - Returns:
+///    An autoreleased ``CIColor`` instance.
 + (instancetype)colorWithString:(NSString *)representation;
 
 
-/* Initialize a new color object. */
-- (instancetype)initWithCGColor:(CGColorRef)c NS_DESIGNATED_INITIALIZER;
+/// Create a Core Image color object with a Core Graphics color object.
+/// - Returns:
+///    An initialized ``CIColor`` instance.
+- (instancetype)initWithCGColor:(CGColorRef)color NS_DESIGNATED_INITIALIZER;
 
-/* Initialize a new color object in CI's default RGB colorspace
-   which is kCGColorSpaceSRGB or, if running on OSX before 10.10,
-   kCGColorSpaceGenericRGB. */
-- (instancetype)initWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b alpha:(CGFloat)a;
-- (instancetype)initWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b NS_AVAILABLE(10_11, 9_0);
+/// Initialize a Core Image color object in the sRGB color space 
+/// with the specified red, green, blue, and alpha component values.
+/// 
+/// On macOS before 10.10, the CIColor's color space will be Generic RGB. 
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value between 0 and 1.
+///   - green: The color's unpremultiplied green component value between 0 and 1.
+///   - blue: The color's unpremultiplied blue component value between 0 and 1.
+///   - alpha: The color's alpha (opacity) value between 0 and 1.
+/// - Returns:
+///    An initialized ``CIColor`` instance.
+- (instancetype)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
 
-/* Initialize a new color object in a given colorspace.
- * Will return null if the colorspace is not kCGColorSpaceModelRGB. */
-- (nullable instancetype)initWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b alpha:(CGFloat)a colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
-- (nullable instancetype)initWithRed:(CGFloat)r green:(CGFloat)g blue:(CGFloat)b colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+/// Initialize a Core Image color object in the sRGB color space 
+/// with the specified red, green, and blue component values.
+/// 
+/// On macOS before 10.10, the CIColor's color space will be Generic RGB. 
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value between 0 and 1.
+///   - green: The color's unpremultiplied green component value between 0 and 1.
+///   - blue: The color's unpremultiplied blue component value between 0 and 1.
+/// - Returns:
+///    An initialized ``CIColor`` instance.
+- (instancetype)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue NS_AVAILABLE(10_11, 9_0);
 
-/* Return the number of color components (including alpha). */
+/// Initialize a Core Image color object 
+/// with the specified red, green, and blue component values
+/// as measured in the specified color space.
+/// 
+/// This will return null if the `CGColorSpace` is not `kCGColorSpaceModelRGB`. 
+/// The RGB values can be outside the `0...1` range if the `CGColorSpace` is unclamped.
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value.
+///   - green: The color's unpremultiplied green component value.
+///   - blue: The color's unpremultiplied blue component value.
+///   - alpha: The color's alpha (opacity) value between 0 and 1.
+///   - colorSpace: The color's `CGColorSpace` which must have `kCGColorSpaceModelRGB`.
+/// - Returns:
+///    An initialized ``CIColor`` instance.
+- (nullable instancetype)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue
+                               alpha:(CGFloat)alpha 
+                          colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+
+/// Initialize a Core Image color object 
+/// with the specified red, green, and blue component values
+/// as measured in the specified color space.
+/// 
+/// This will return null if the `CGColorSpace` is not `kCGColorSpaceModelRGB`. 
+/// The RGB values can be outside the `0...1` range if the `CGColorSpace` is unclamped.
+/// - Parameters:
+///   - red: The color's unpremultiplied red component value.
+///   - green: The color's unpremultiplied green component value.
+///   - blue: The color's unpremultiplied blue component value.
+///   - colorSpace: The color's `CGColorSpace` which must have `kCGColorSpaceModelRGB`.
+/// - Returns:
+///    An initialized ``CIColor`` instance.
+- (nullable instancetype)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue
+                          colorSpace:(CGColorSpaceRef)colorSpace NS_AVAILABLE(10_12, 10_0);
+
+
+/// Returns the color components of the color including alpha.
+///   
+/// This number includes the alpha component if the color contains one.
+/// 
+/// Typically this number will be `4` for red, green, blue, and alpha.
+/// If the ``CIColor`` was initialized with a `CGColor` then the number 
+/// will be the same as calling `CGColorGetNumberOfComponents()`
 @property (readonly) size_t numberOfComponents;
 
-/* Return the color components (including alpha). */
+/// Return a pointer to an array of `CGFloat` values including alpha.
+/// 
+/// Typically this array will contain `4` `CGFloat` values for red, green, blue, and alpha. 
+/// If the ``CIColor`` was initialized with a `CGColor` then returned pointer 
+/// will be the same as calling `CGColorGetComponents()`
 @property (readonly) const CGFloat *components NS_RETURNS_INNER_POINTER;
 
-/* Return the alpha value of the color. */
+/// Returns the alpha value of the color.
 @property (readonly) CGFloat alpha;
 
-/* Return the color space object associated with the color. */
+/// Returns the `CGColorSpace` associated with the color
 @property (readonly) CGColorSpaceRef colorSpace CF_RETURNS_NOT_RETAINED;
 
-/* Return the (unpremultiplied) red, green or blue components of the color. */
+/// Returns the unpremultiplied red component of the color.
+/// 
+/// If the ``CIColor`` was initialized with a `CGColor` in a non-RGB `CGColorSpace`
+/// then it will be converted to sRGB to get the red component.
 @property (readonly) CGFloat red;
+
+/// Returns the unpremultiplied green component of the color.
+/// 
+/// If the ``CIColor`` was initialized with a `CGColor` in a non-RGB `CGColorSpace`
+/// then it will be converted to sRGB to get the green component.
 @property (readonly) CGFloat green;
+
+/// Returns the unpremultiplied blue component of the color.
+/// 
+/// If the ``CIColor`` was initialized with a `CGColor` in a non-RGB `CGColorSpace`
+/// then it will be converted to sRGB to get the green component.
 @property (readonly) CGFloat blue;
 
-/* Returns a formatted string with the components of the color.
- * The string is suitable for passing to [CIColor colorWithString:].
- * This property is not KVO-safe because it returns a new NSString each time.
- * The value of the NSString will be the same each time it is called. */
+/// Returns a formatted string with the unpremultiplied color and alpha components of the color.
+/// 
+/// The string representation always has four components: red, green, blue, and alpha. 
+/// 
+/// Some example string representations of colors:
+/// 
+/// `CIColor`                                       | `stringRepresentation`
+/// ----------------------------------------------- | --------------
+/// `[CIColor colorWithRed:0.2 green:0.4 blue:0.6]` | `"0.2 0.4 0.6 1.0"`
+/// ``/CIColor/yellowColor``                        | `"1.0 1.0 0.0 1.0"`
+/// 
+/// To create a ``CIColor`` instance from a string representation, use the ``colorWithString:`` method.
+/// 
+/// If the ``CIColor`` was initialized with a `CGColor` in a non-RGB `CGColorSpace`
+/// then it will be converted to sRGB to get the red, green, and blue components.
+/// 
+/// This property is not KVO-safe because it returns a new `NSString` instance each time.
+/// The value of the `NSString` will be the same each time it is called.
+/// 
 @property (readonly) NSString *stringRepresentation;
 
+
 /* Convenience constant CIColors in the sRGB colorspace. */
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0,0,0` and alpha value `1`.
 @property (class, strong, readonly) CIColor *blackColor   NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `1,1,1` and alpha value `1`.
 @property (class, strong, readonly) CIColor *whiteColor   NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0.5,0.5,0.5` and alpha value `1`.
 @property (class, strong, readonly) CIColor *grayColor    NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `1,0,0` and alpha value `1`.
 @property (class, strong, readonly) CIColor *redColor     NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0,1,0` and alpha value `1`.
 @property (class, strong, readonly) CIColor *greenColor   NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0,0,1` and alpha value `1`.
 @property (class, strong, readonly) CIColor *blueColor    NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0,1,1` and alpha value `1`.
 @property (class, strong, readonly) CIColor *cyanColor    NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `1,0,1` and alpha value `1`.
 @property (class, strong, readonly) CIColor *magentaColor NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `1,1,0` and alpha value `1`.
 @property (class, strong, readonly) CIColor *yellowColor  NS_AVAILABLE(10_12, 10_0);
+
+/// Returns a singleton Core Image color instance in the sRGB color space with RGB values `0,0,0` and alpha value `0`.
 @property (class, strong, readonly) CIColor *clearColor   NS_AVAILABLE(10_12, 10_0);
 
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h	2025-04-19 03:33:58
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h	2025-05-24 07:16:18
@@ -27,66 +27,185 @@
 
 @class CIFilter;
 
-@protocol MTLDevice, MTLTexture, MTLCommandBuffer, MTLCommandQueue;
+@protocol MTLDevice, MTLTexture, MTLCommandBuffer, MTLCommandQueue, MTLBuffer;
 
 NS_ASSUME_NONNULL_BEGIN
 
-
-NS_CLASS_AVAILABLE(10_4, 5_0)
+/// The Core Image context class provides an evaluation context for Core Image processing with Metal, OpenGL, or OpenCL.
+/// 
+/// You use `CIContext` instance to render a ``CIImage`` instance which represents a graph of image processing operations
+/// which are built using other Core Image classes, such as ``CIFilter-class``, ``CIKernel``, ``CIColor`` and ``CIImage``. 
+/// You can also use a `CIContext` with the ``CIDetector`` class to analyze images — for example, to detect faces 
+/// or barcodes.
+/// 
+/// Contexts support automatic color management by performing all processing operations in a working color space.
+/// This means that unless told otherwise:
+/// * all input images are color matched from the input's color space to the working space.
+/// * all renders are color matched from the working space to the destination space.
+/// (For more information on `CGColorSpace` see <doc://com.apple.documentation/documentation/coregraphics/cgcolorspace>)
+/// 
+/// `CIContext` and ``CIImage`` instances are immutable, so multiple threads can use the same ``CIContext`` instance 
+/// to render ``CIImage`` instances. However, ``CIFilter-class`` instances are mutable and thus cannot be shared safely among 
+/// threads. Each thread must take case not to access or modify a ``CIFilter-class`` instance while it is being used by 
+/// another thread.
+/// 
+/// The `CIContext` manages various internal state such `MTLCommandQueue` and caches for compiled kernels
+/// and intermediate buffers.  For this reason it is not recommended to create many `CIContext` instances.  As a rule,
+/// it recommended that you create one `CIContext` instance for each view that renders ``CIImage`` or each background task.
+///
+NS_CLASS_AVAILABLE(10_4, 5_0) NS_SWIFT_SENDABLE
 @interface CIContext : NSObject
 {
     void *_priv;
 }
 
-/* Keys that may be passed in the dictionary while creating contexts: */
 
+/// An enum string type that your code can use to select different options when creating a Core Image context.
+/// 
+/// These option keys can be passed to `CIContext` creation APIs such as:
+/// * ``/CIContext/contextWithOptions:``
+/// * ``/CIContext/contextWithMTLDevice:options:``
+/// 
 typedef NSString * CIContextOption NS_TYPED_ENUM;
 
-/* A CGColorSpaceRef object defining the color space that images are
- * converted to before rendering into the context. */
+/// A Core Image context option key to specify the default destination color space for rendering.
+/// 
+/// This option only affects how Core Image renders using the following methods:
+/// * ``/CIContext/createCGImage:fromRect:``
+/// * ``/CIContext/drawImage:atPoint:fromRect:``
+/// * ``/CIContext/drawImage:inRect:fromRect:``
+/// 
+/// With all other render methods, the destination color space is either specified as a parameter
+/// or can be determined from the object being rendered to.
+///
+/// The value of this option can be either:
+/// * A `CGColorSpace` instance with an RGB or monochrome color model that supports output.
+/// * An `NSNull` instance to indicate that the context should not match from the working space to the destination.
+///
+/// If this option is not specified, then the default output space is sRGB.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextOutputColorSpace;
 
-/* A CGColorSpaceRef object defining the color space in which all
- * intermediate operations are performed. */
+/// A Core Image context option key to specify the working color space for rendering.
+/// 
+/// Contexts support automatic color management by performing all processing operations 
+/// in a working color space. This means that unless told otherwise:
+/// * All input images are color matched from the input's color space to the working space.
+/// * All renders are color matched from the working space to the destination's color space.
+/// 
+/// The default working space is the extended sRGB color space with linear gamma.
+/// On macOS before 10.10, the default is extended Generic RGB with linear gamma. 
+/// 
+/// The value of this option can be either:
+/// * A `CGColorSpace` instance with an RGB color model that supports output.
+/// * An `NSNull` instance to request that Core Image perform no color management.
+/// 
+/// If this option is not specified, then the default working space is used.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextWorkingColorSpace;
 
-/* An NSNumber with a CIFormat value defining the pixel format to use for intermediate buffers.
- * On iOS the supported values for this key are RGBA8 and RGBAh. If not specified:
- *   RGBA8 is used if app is linked against iOS 12 SDK or earlier.
- *   RGBAh is used if app is linked against iOS 13 SDK or later.
- * On OSX the supported values for this key are RGBA8, RGBAh and RGBAf. If not specified, RGBAh is used. */
+/// A Core Image context option key to specify the pixel format to for intermediate results when rendering.
+/// 
+/// The value for this key is an `NSNumber` instance containing a ``CIFormat`` value. 
+/// 
+/// The supported values for the working pixel format are:
+/// ``CIFormat``        | Notes
+/// ------------------- | --------------
+/// ``kCIFormatRGBA8``  | Uses less memory but has less precision an range
+/// ``kCIFormatRGBAh``  | Uses 8 bytes per pixel, supports HDR
+/// ``kCIFormatRGBAf``  | Only on macOS
+/// 
+/// If this option is not specified, then the default is ``kCIFormatRGBAh``.
+/// 
+/// (The default is ``kCIFormatRGBA8`` if your if app is linked against iOS 12 SDK or earlier.)
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextWorkingFormat NS_AVAILABLE(10_4,8_0);
 
-/* A boolean NSNumber controlling the quality of affine downsample operations.
- * @YES implies that more quality is desired.
- * On iOS the default value is @NO.
- * On OSX the default value is @YES. */
+/// A Boolean value to control the quality of image downsampling operations performed by the 
+/// Core Image context.
+/// 
+/// The higher quality behavior performs downsampling operations in multiple passes
+/// in order to reduce aliasing artifacts.
+/// 
+/// The lower quality behavior performs downsampling operations a single pass
+/// in order to improve performance.
+///
+/// If the value for this option is:
+/// * True: The higher quality behavior will be used. 
+/// * False: The lower quality behavior will be used. 
+/// * Not specified: the default behavior is True on macOS and False on other platforms. 
+/// 
+/// > Note: 
+/// > * This option does affect how ``/CIImage/imageByApplyingTransform:`` operations are performed by the context.
+/// > * This option does not affect how ``/CIImage/imageByApplyingTransform:highQualityDownsample:`` behaves.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextHighQualityDownsample NS_AVAILABLE(10_11,9_0);
 
-/* A boolean NSNumber controlling whether output renders produce alpha-premultiplied pixels.
- * The default value is @YES. */
+/// A Boolean value to control how a Core Image context render produces alpha-premultiplied pixels.
+///
+/// This option only affects how a context is rendered when using methods where the destination's
+/// alpha mode cannot be determined such as:
+/// *  ``/CIContext/render:toBitmap:rowBytes:bounds:format:colorSpace:``
+/// *  ``/CIContext/render:toCVPixelBuffer:``
+/// *  ``/CIContext/render:toIOSurface:bounds:colorSpace:``
+/// *  ``/CIContext/render:toMTLTexture:commandBuffer:bounds:colorSpace:``
+/// *  ``/CIContext/createCGImage:fromRect:``
+/// 
+/// If the value for this option is:
+/// * True: The output will produce alpha-premultiplied pixels. 
+/// * False: The output will produce un-premultiplied pixels. 
+/// * Not specified: the default behavior True. 
+/// 
+/// This option does not affect how a context is rendered to a ``CIRenderDestination`` because
+/// that API allows you to set or override the alpha behavior using ``/CIRenderDestination/alphaMode``.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextOutputPremultiplied NS_AVAILABLE(10_4,7_0);
 
-/* A boolean NSNumber controlling how intermediate buffers are cached.
- * If @NO, the context will empty intermediates during and after renders.
- * The default value is @YES. */
+/// A Boolean value to control how a Core Image context caches the contents of any intermediate image buffers it uses during rendering.
+/// 
+/// If a context caches intermediate buffers, then subsequent renders of a similar image using the same context
+/// may be able to render faster. If a context does not cache intermediate buffers, then it may use less memory.
+/// 
+/// If the value for this option is:
+/// * True: The context will cache intermediate results for future renders using the same context. 
+/// * False: The context will not cache intermediate results. 
+/// * Not specified: the default behavior True. 
+/// 
+/// > Note: 
+/// > * This option does affect how ``/CIImage/imageByInsertingIntermediate`` behaves.
+/// > * This option does not affect how ``/CIImage/imageByInsertingIntermediate:`` behaves.
+///
 CORE_IMAGE_EXPORT CIContextOption const kCIContextCacheIntermediates NS_AVAILABLE(10_12,10_0);
 
-/* An NSNumber with a boolean value. When @YES the context will use
- * software rendering on macOS. */
+/// A Boolean value to control if a Core Image context will use a software renderer.
+/// 
+/// > Note: This option has no effect if the platform does not support OpenCL.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextUseSoftwareRenderer;
 
-/* An NSNumber with a boolean value. When @YES the context will use 
- * low priority rendering on the GPU. */
+/// A Boolean value to control the priority Core Image context renders.
+/// 
+/// If this value is True, then rendering with the context from a background thread takes lower priority 
+/// than other GPU usage from the main thread. This allows your app to perform Core Image rendering without 
+/// disturbing the frame rate of UI animations.
+///
 CORE_IMAGE_EXPORT CIContextOption const kCIContextPriorityRequestLow NS_AVAILABLE(10_12, 8_0);
 
-/* A boolean value specifying whether or not to allow use of low-power devices for GPU rendering.
- * If @YES, the context will use a low power GPU if available and the high power device is not already in use.
- * The default value is @NO which instructs the context to use the highest power/performance device. */
+/// A Boolean value to control the power level of Core Image context renders.
+/// 
+/// This option only affects certain macOS devices with more than one available GPU device.
+/// 
+/// If this value is True, then rendering with the context will use a use allow power GPU device
+/// if available and the high power device is not already in use.
+/// 
+/// Otherwise, the context will use the highest power/performance GPU device.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextAllowLowPower NS_AVAILABLE(10_12, 13_0);
 
-/* An NSString specifying a client-provided name for a context.
- * This name will be used in QuickLook graphs and the output of CI_PRINT_TREE. */
+/// A Boolean value to specifying a client-provided name for a context.
+/// 
+/// This name will be used in QuickLook graphs and the output of CI_PRINT_TREE.
+/// 
 CORE_IMAGE_EXPORT CIContextOption const kCIContextName NS_AVAILABLE(10_14,12_0);
 
 
@@ -248,7 +367,7 @@
 
 #if COREIMAGE_SUPPORTS_IOSURFACE
 /* Render 'image' to the given IOSurface.
- * Point (0,0) in the image coordinate sysyem will align to the lower left corner of 'surface'.
+ * Point (0,0) in the image coordinate system will align to the lower left corner of 'surface'.
  * The 'bounds' parameter acts as a clip rect to limit what region of 'surface' is modified.
  * If 'colorSpace' is nil, CI will not color match to the destination.
  */
@@ -268,7 +387,7 @@
 toCVPixelBuffer:(CVPixelBufferRef)buffer NS_AVAILABLE(10_11,5_0);
 
 /* Render 'image' to the given CVPixelBufferRef.
- * Point (0,0) in the image coordinate sysyem will align to the lower left corner of 'buffer'.
+ * Point (0,0) in the image coordinate system will align to the lower left corner of 'buffer'.
  * The 'bounds' parameter acts as a clip rect to limit what region of 'buffer' is modified.
  * If 'colorSpace' is nil, CI will not color match to the destination.
  */
@@ -315,35 +434,78 @@
 
 @interface CIContext (createCGImage)
 
-/* Render the region 'fromRect' of image 'image' into a temporary buffer using
- * the context, then create and return a new CoreGraphics image with
- * the results. The caller is responsible for releasing the returned image.
- * The return value will be null if size is empty or too big. */
+/// Creates a Core Graphics image from a region of a Core Image image instance.
+/// 
+/// The color space of the created `CGImage` will be sRGB unless the receiving ``CIContext``
+/// was created with a `kCIContextOutputColorSpace` option.
+/// 
+/// Normally the pixel format of the created CGImage will be 8 bits-per-component.
+/// It will be 16 bits-per-component float if the above color space is HDR.
+///
+/// - Parameters:
+///    - image: A ``CIImage`` image instance for which to create a `CGImage`.
+///    - fromRect: The `CGRect` region of the `image` to use. 
+///        This region relative to the cartesean coordinate system of `image`.
+///        This region will be intersected with integralized and intersected with `image.extent`.
+///
+/// - Returns:
+///    Returns a new `CGImage` instance. 
+///    You are responsible for releasing the returned image when you no longer need it. 
+///    The returned value will be `null` if the extent is empty or too big.
+///
 - (nullable CGImageRef)createCGImage:(CIImage *)image
                             fromRect:(CGRect)fromRect
 CF_RETURNS_RETAINED;
 
-/* Create a new CGImage from the specified subrect of the image. If
- * non-nil the new image will be created in the specified format and colorspace.
- * The CGColorSpace must be kCGColorSpaceModelRGB or kCGColorSpaceModelMonochrome
- * and must match the specified CIFormat.
- * This will return null if fromRect is empty or infinite or the format isn't supported.
- */
+/// Creates a Core Graphics image from a region of a Core Image image instance
+/// with an option for controlling the pixel format and color space of the `CGImage`.
+///
+/// - Parameters:
+///    - image: A ``CIImage`` image instance for which to create a `CGImage`.
+///    - fromRect: The `CGRect` region of the `image` to use. 
+///        This region relative to the cartesean coordinate system of `image`.
+///        This region will be intersected with integralized and intersected with `image.extent`.
+///    - format: A ``CIFormat`` to specify the pixel format of the created `CGImage`.
+///        For example, if `kCIFormatRGBX16` is specified, then the created `CGImage` will 
+///        be 16 bits-per-component and opaque.
+///    - colorSpace: The `CGColorSpace` for the output image. 
+///        This color space must have either `CGColorSpaceModel.rgb` or `CGColorSpaceModel.monochrome` and  
+///        and be compatible with the specified pixel format.
+///
+/// - Returns:
+///    Returns a new `CGImage` instance. 
+///    You are responsible for releasing the returned image when you no longer need it. 
+///    The returned value will be `null` if the extent is empty or too big.
+///
 - (nullable CGImageRef)createCGImage:(CIImage *)image
                             fromRect:(CGRect)fromRect
                               format:(CIFormat)format
                           colorSpace:(nullable CGColorSpaceRef)colorSpace
 CF_RETURNS_RETAINED;
 
-/* Create a new CGImage from the specified subrect of the image.
- * The new CGImageRef will be created in the specified format and colorspace.
- * The return value will be null if fromRect is empty or infinite.
- * The CGColorSpace must be kCGColorSpaceModelRGB or kCGColorSpaceModelMonochrome
- * and must match the specified CIFormat.
- * This will return null if fromRect is empty or infinite or the format isn't supported.
- * If deferred is NO, then the CIImage will be rendered once when this method is called.
- * If deferred is YES, then the CIImage will be rendered whenever the CGImage is rendered.
- */
+/// Creates a Core Graphics image from a region of a Core Image image instance
+/// with an option for controlling when the image is rendered.
+///
+/// - Parameters:
+///    - image: A ``CIImage`` image instance for which to create a `CGImage`.
+///    - fromRect: The `CGRect` region of the `image` to use. 
+///        This region relative to the cartesean coordinate system of `image`.
+///        This region will be intersected with integralized and intersected with `image.extent`.
+///    - format: A ``CIFormat`` to specify the pixel format of the created `CGImage`.
+///        For example, if `kCIFormatRGBX16` is specified, then the created `CGImage` will 
+///        be 16 bits-per-component and opaque.
+///    - colorSpace: The `CGColorSpace` for the output image. 
+///        This color space must have either `CGColorSpaceModel.rgb` or `CGColorSpaceModel.monochrome` and  
+///        and be compatible with the specified pixel format.
+///    - deferred: Controls when Core Image renders `image`.
+///        * `YES` : rendering of `image` is deferred until the created `CGImage` rendered. 
+///        * `NO`  : the `image` is rendered immediately.
+///
+/// - Returns:
+///    Returns a new `CGImage` instance. 
+///    You are responsible for releasing the returned image when you no longer need it. 
+///    The returned value will be `null` if the extent is empty or too big.
+///
 - (nullable CGImageRef)createCGImage:(CIImage *)image
                             fromRect:(CGRect)fromRect
                               format:(CIFormat)format
@@ -351,9 +513,101 @@
                             deferred:(BOOL)deferred
 CF_RETURNS_RETAINED NS_AVAILABLE(10_12,10_0);
 
+/// Creates a Core Graphics image from a region of a Core Image image instance
+/// with an option for calculating HDR statistics.
+///
+/// - Parameters:
+///    - image: A ``CIImage`` image instance for which to create a `CGImage`.
+///    - fromRect: The `CGRect` region of the `image` to use. 
+///        This region relative to the cartesean coordinate system of `image`.
+///        This region will be intersected with integralized and intersected with `image.extent`.
+///    - format: A ``CIFormat`` to specify the pixel format of the created `CGImage`.
+///        For example, if `kCIFormatRGBX16` is specified, then the created `CGImage` will 
+///        be 16 bits-per-component and opaque.
+///    - colorSpace: The `CGColorSpace` for the output image. 
+///        This color space must have either `CGColorSpaceModel.rgb` or `CGColorSpaceModel.monochrome` and  
+///        and be compatible with the specified pixel format.
+///    - deferred: Controls when Core Image renders `image`.
+///        * `YES` : rendering of `image` is deferred until the created `CGImage` rendered. 
+///        * `NO`  : the `image` is rendered immediately.
+///    - calculateHDRStats: Controls if Core Image calculates HDR statistics.
+///        * `YES` : Core Image will immediately render `image`, calculate the HDR statistics
+///        and create a `CGImage` that has the calculated values.
+///        * `NO` :  the created `CGImage` will not have any HDR statistics.
+///
+/// - Returns:
+///    Returns a new `CGImage` instance. 
+///    You are responsible for releasing the returned image when you no longer need it. 
+///    The returned value will be `null` if the extent is empty or too big.
+///
+- (nullable CGImageRef)createCGImage:(CIImage *)image
+                            fromRect:(CGRect)fromRect
+                              format:(CIFormat)format
+                          colorSpace:(nullable CGColorSpaceRef)colorSpace
+                            deferred:(BOOL)deferred
+                   calculateHDRStats:(BOOL)calculateHDRStats
+CF_RETURNS_RETAINED NS_AVAILABLE(16_0,19_0);
+
 @end
 
 
+@interface CIContext (CalculateHDRStats)
+
+/// Given an IOSurface, use the receiving Core Image context to calculate its 
+/// HDR statistics (content headroom and content average light level)
+/// and then update the surface's attachments to store the values.
+/// 
+/// If the `IOSurface` has a Clean Aperture rectangle then only pixels within
+/// that rectangle are considered.
+///
+/// - Parameters:
+///    - surface: A mutable `IOSurfaceRef` for which to calculate and attach statistics.
+///    
+- (void) calculateHDRStatsForIOSurface:(IOSurfaceRef)surface
+NS_AVAILABLE(16_0,19_0);
+
+/// Given a CVPixelBuffer, use the receiving Core Image context to calculate its 
+/// HDR statistics (content headroom and content average light level)
+/// and then update the buffers's attachments to store the values.
+/// 
+/// If the `CVPixelBuffer` has a Clean Aperture rectangle then only pixels within
+/// that rectangle are considered.
+///
+/// - Parameters:
+///    - buffer: A mutable `CVPixelBuffer` for which to calculate and attach statistics.
+///    
+- (void) calculateHDRStatsForCVPixelBuffer:(CVPixelBufferRef)buffer
+NS_AVAILABLE(16_0,19_0);
+
+/// Given a Core Graphics image, use the receiving Core Image context to calculate its 
+/// HDR statistics (content headroom and content average light level)
+/// and then return a new Core Graphics image that has the calculated values.
+///
+/// - Parameters:
+///    - cgimage: An immutable `CGImage` for which to calculate statistics.
+/// - Returns:
+///    Returns a new `CGImage` instance that has the calculated statistics attached.
+///
+- (CGImageRef) calculateHDRStatsForCGImage:(CGImageRef)cgimage
+CF_RETURNS_RETAINED NS_AVAILABLE(16_0,19_0);
+
+/// Given a Core Image image, use the receiving Core Image context to calculate its 
+/// HDR statistics (content headroom and content average light level)
+/// and then return a new Core Image image that has the calculated values.
+///
+/// If the image extent is not finite, then nil will be returned.
+///
+/// - Parameters:
+///    - image: An immutable ``CIImage`` for which to calculate statistics.
+/// - Returns:
+///    Returns a new ``CIImage`` instance that has the calculated statistics attached.
+///    
+- (nullable CIImage*) calculateHDRStatsForImage:(CIImage*)image
+NS_AVAILABLE(16_0,19_0);
+
+@end
+
+
 @interface CIContext (OfflineGPUSupport)
 
 /* Not all GPUs will be driving a display. If they are offline we can still use them
@@ -378,60 +632,105 @@
 
 @end
 
+/// An enum string type that your code can use to select different options when saving to image representations such as JPEG and HEIF.
+/// 
+/// Some of the methods that support these options are:
+/// * ``/CIContext/JPEGRepresentationOfImage:colorSpace:options:``
+/// * ``/CIContext/HEIFRepresentationOfImage:format:colorSpace:options:``
+/// 
 typedef NSString * CIImageRepresentationOption NS_TYPED_ENUM; 
 
 @interface CIContext (ImageRepresentation)
 
-// The value for kCIImageRepresentationAVDepthData should be an AVDepthData object. */
+/// An optional key and value to save additional depth channel information to a JPEG or HEIF representations.
+/// 
+/// The value for this key needs to be an `AVDepthData` instance.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationAVDepthData NS_AVAILABLE(10_13,11_0);
 
-// The value for kCIImageRepresentationDepthImage should be a monochome CIImage object. */
+/// An optional key and value to save additional depth channel information to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a monochrome depth ``CIImage`` instance.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationDepthImage NS_AVAILABLE(10_13,11_0);
 
-// The value for kCIImageRepresentationDisparityImage should be a monochome CIImage object. */
+/// An optional key and value to save additional depth channel information to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a monochrome disparity ``CIImage`` instance.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationDisparityImage NS_AVAILABLE(10_13,11_0);
 
 
-// The value for kCIImageRepresentationAVPortraitEffectsMatte should be an AVPortraitEffectsMatte object. */
+/// An optional key and value to save a portrait matte channel information to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a an `AVPortraitEffectsMatte` instance.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationAVPortraitEffectsMatte NS_AVAILABLE(10_14,12_0);
 
-// The value for kCIImageRepresentationPortraitEffectsMatteImage should be a monochome CIImage object. */
+/// An optional key and value to save a portrait matte channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a portrait matte ``CIImage`` instance where black pixels
+/// represent the background region and white pixels represent the primary people in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationPortraitEffectsMatteImage NS_AVAILABLE(10_14,12_0);
 
 
-// The value for kCIImageRepresentationAVSemanticSegmentationMattes should be an array of AVSemanticSegmentationMatte objects. */
+/// An optional key and value to save one or more segmentation matte channels to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be an array of AVSemanticSegmentationMatte instances.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationAVSemanticSegmentationMattes NS_AVAILABLE(10_15, 13_0);
 
-// The value for kCIImageRepresentationSemanticSegmentationSkinMatteImage should be a monochome CIImage object. */
+/// An optional key and value to save a skin segmentation channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a ``CIImage`` instance where white pixels 
+/// represent the areas of person's skin are found in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationSemanticSegmentationSkinMatteImage NS_AVAILABLE(10_15, 13_0);
 
-// The value for kCIImageRepresentationSemanticSegmentationHairMatteImage should be a monochome CIImage object. */
+/// An optional key and value to save a skin segmentation channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a ``CIImage`` instance where white pixels
+/// represent the areas of person's head and facial hair are found in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationSemanticSegmentationHairMatteImage NS_AVAILABLE(10_15, 13_0);
 
-// The value for kCIImageRepresentationSemanticSegmentationTeethMatteImage should be a monochome CIImage object. */
+/// An optional key and value to save a skin segmentation channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a ``CIImage`` instance where white pixels
+/// represent the areas where a person's teeth are found in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationSemanticSegmentationTeethMatteImage NS_AVAILABLE(10_15, 13_0);
 
-// The value for kCIImageRepresentationSemanticSegmentationGlassesMatteImage should be a monochome CIImage object. */
+/// An optional key and value to save a skin segmentation channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a ``CIImage`` instance where white pixels 
+/// represent the areas where a person's glasses are found in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationSemanticSegmentationGlassesMatteImage NS_AVAILABLE(11_0, 14_1);
 
-// The value for kCIImageRepresentationSemanticSegmentationSkyMatteImage should be a monochome CIImage object. */
+
+/// An optional key and value to save a skin segmentation channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a ``CIImage`` instance where white pixels
+/// represent the areas where a person's skin are found in the image.
+/// The image will be converted to monochrome before it is saved to the JPEG or HEIF.
 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.
-//
+/// An optional key and value to save a HDR image using the gain map channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a HDR CIImage instance.
+///
+/// When provided, Core Image will calculate a gain map auxiliary image 
+/// from the ratio of the HDR image to the primary SDR image.
+///
+/// If the the HDR ``CIImage`` instance has a ``/CIImage/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);
 
-// The value for kCIImageRepresentationHDRGainMapImage should be a monochome CIImage object.
-// The image.properties should contain information equivalent to what is returned when initialtizing
-// an image using the kCIImageAuxiliaryHDRGainMap option.
-//
+/// An optional key and value to save a gain map channel to a JPEG or HEIF.
+/// 
+/// The value for this key needs to be a monochrome ``CIImage`` instance.
+/// 
+/// The ``/CIImage/properties`` should contain metadata information equivalent to what is returned when 
+/// initializing an image using ``kCIImageAuxiliaryHDRGainMap``.
+///
 CORE_IMAGE_EXPORT CIImageRepresentationOption const kCIImageRepresentationHDRGainMapImage NS_AVAILABLE(11_0, 14_1);
 
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIDetector.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIDetector.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIDetector.h	2025-04-19 03:33:58
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIDetector.h	2025-05-24 01:53:34
@@ -35,7 +35,7 @@
 
  The detector may do image processing in this context and if the image is on the GPU and the specified context is a GPU context this may avoid additional upload to / download from the GPU. If the input image is on the CPU (or the output from a CPU based context) specifying a GPU based context (or vice versa) may reduce performance.
 
- The options parameter lets you optinally specify a accuracy / performance tradeoff. Can be nil or an empty dictionary. */
+//  The options parameter lets you optionally specify a accuracy / performance tradeoff. Can be nil or an empty dictionary. */
 + (nullable CIDetector *)detectorOfType:(NSString*)type
                                 context:(nullable CIContext *)context
                                 options:(nullable NSDictionary<NSString *,id> *)options
@@ -68,9 +68,7 @@
 CORE_IMAGE_EXPORT NSString* const CIDetectorTypeQRCode NS_AVAILABLE(10_10, 8_0);
 
 /* Specifies a detector type for text detection. */
-#if __OBJC2__
 CORE_IMAGE_EXPORT NSString* const CIDetectorTypeText NS_AVAILABLE(10_11, 9_0);
-#endif
 
 // Options that can be used with +[CIDetector detectorOfType:context:options:]
 
@@ -79,7 +77,7 @@
 
 /* These are values to be used with the CIDetectorAccuracy key when created a CIDetector.
  There is a performance / accuracy tradeoff to be made. The default value will work well for most
- situations, but using these the detector will favour performance over accuracy or
+ situations, but using these the detector will favor performance over accuracy or
  accuracy over performance. */
 CORE_IMAGE_EXPORT NSString* const CIDetectorAccuracyLow NS_AVAILABLE(10_7, 5_0); /* Lower accuracy, higher performance */
 CORE_IMAGE_EXPORT NSString* const CIDetectorAccuracyHigh NS_AVAILABLE(10_7, 5_0); /* Lower performance, higher accuracy */
@@ -113,31 +111,106 @@
 /* The key in the options dictionary used to specify number of angles, the value for this key is one of 1, 3, 5, 7, 9, 11.*/
 CORE_IMAGE_EXPORT NSString* const CIDetectorNumberOfAngles NS_AVAILABLE(10_11, 9_0);
 
+
 // Options that can be used with -[CIDetector featuresInImage:options:]
 
-/* The value for this key is an integer NSNumber from 1..8 such as that
- found in kCGImagePropertyOrientation.  If present, the detection will be done
- based on that orientation but the coordinates in the returned features will
- still be based on those of the image. */
+/// A dictionary key that configures a Core Image feature detection operation 
+/// to account for the orientation the image.
+/// 
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// The value of this key is an number object whose value is an integer between 1 and 8. 
+/// The TIFF and EXIF specifications define the orientation values that describe how the image should be displayed. 
+/// The default value is 1. For further details, see `CGImagePropertyOrientation`.
+/// 
+/// The ``CIDetectorTypeFace`` and ``CIDetectorTypeText`` can use this option to correctly find faces or text.
+/// 
+/// Regardless of the orientation values the ``/CIFeature/bounds-property`` which is always measured in 
+/// the cartesean coordinates system of the image that you pass to the detector.
+/// 
 CORE_IMAGE_EXPORT NSString *const CIDetectorImageOrientation NS_AVAILABLE(10_8, 5_0);
 
-/* The value for this key is a bool NSNumber. If true, facial expressions, such as blinking and closed eyes are extracted */
+/// A dictionary key that configures a Core Image face feature detection operation 
+/// to perform additional processing to recognize closed eyes in detected faces.
+///
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// If the value of the key is true, then facial expressions such as blinking and smiles are extracted.
+/// This is needed for the ``/CIFaceFeature/leftEyeClosed-property`` and ``/CIFaceFeature/rightEyeClosed-property`` to function.
+/// 
 CORE_IMAGE_EXPORT NSString *const CIDetectorEyeBlink NS_AVAILABLE(10_9, 7_0);
 
-
-/* The value for this key is a bool NSNumber. If true, facial expressions, such as smile are extracted */
+/// A dictionary key that configures a Core Image face feature detection operation 
+/// to perform additional processing to recognize smiles in detected faces.
+///
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// If the value of the key is true, then facial expressions such as blinking and smiles eyes are extracted.
+/// This is needed for the ``/CIFaceFeature/hasSmile-property`` to function.
+/// 
 CORE_IMAGE_EXPORT NSString *const CIDetectorSmile NS_AVAILABLE(10_9, 7_0);
 
-/* The value for this key is a float NSNumber. Specifies the per frame focal length.  */
+/// A dictionary key that configures a Core Image rectangle feature detection operation 
+/// to account for the focal length of the camera used for the image.
+/// 
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// The value of this key is an NSNumber object whose value is a floating-point number. Use this option with the CIDetectorTypeRectangle 
+/// detector type to control the effect of the CIDetectorAspectRatio option on feature detection.
+/// 
+/// This option’s value can be 0.0, -1.0, or any positive value:
+/// * The special value of -1.0 (the default) disables the aspect ratio test for the returned rectangle.
+/// * The special value of 0.0 enables a less precise test of aspect ratio that approximates an orthographic (non-perspective) projection. 
+///   Use this value if you want to specify the aspect ratio of the rectangle via the CIDetectorAspectRatio option, but have no means of 
+///   determining the value for the focal length in pixels. See below for a method to compute an approximate value for the focal length in pixels.
+/// * Any other value specifies the camera focal length, in pixels, allowing the aspect ratio specification to account for perspective distortion 
+///   of rectangles in the input image. 
+///   
+/// If you know the diagonal field of view of the camera (the scene angle subtended by the diagonal corners of an image), you can use the 
+/// following formula to compute an approximate focal length in pixels:
+/// 
+/// `focal_length_pixels = (image_diagonal_pixels/2)/tan(FOV/2)`
+/// 
+/// In this formula, `image_diagonal_pixels` is the length (in pixels) of the image diagonal of the maximum resolution of the camera sensor. 
+/// For example, this value is:
+/// * `4080` pixels for a `3264 x 2448` (8 megapixel) sensor
+/// * `5000` pixels for a `4096 x 3024` (12 megapixel) sensor.
+///
+/// To measure diagonal field of view, put the camera on a tripod so that it is perpendicular to a surface and the center of the image is 
+/// oriented on a mark on the surface. Measure the distance from the mark to one of the corner points of the image (Y). Measure the distance 
+/// from the camera to the surface (Z). The field of view is then `2*arctan(Y/Z)`.
+/// 
+/// You must specify this value in terms of the maximum sensor resolution. If the supplied CIImage has been scaled relative relative to the 
+/// maximum sensor resolution, the supplied focal length must also be similarly scaled.
+/// 
 CORE_IMAGE_EXPORT NSString* const CIDetectorFocalLength NS_AVAILABLE(10_10, 8_0);
 
-/* The value for this key is a float NSNumber. Specifies the aspect ratio of the rectangle detected.  */
+/// A dictionary key that configures a Core Image rectangle feature detection operation 
+/// to search for a rectangle of a desired aspect ratio (width divided by height).
+/// 
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// The value for this key needs to be is a positive float number. 
+/// Use this option with a ``CIDetectorTypeRectangle`` detector to fine-tune the accuracy of the detector. 
+/// 
+/// For example, to more accurately find a business card (3.5 x 2 inches) in an image, specify an aspect ratio of 1.75.
+/// 
+/// If this key is not specified, the a default value of 1.6 is used.
+///
 CORE_IMAGE_EXPORT NSString* const CIDetectorAspectRatio NS_AVAILABLE(10_10, 8_0);
 
-#if __OBJC2__
-/* The value for this key is a bool NSNumber. Controls whether the text detector should detect subfeatures or not. The default value is NO */
+/// A dictionary key that configures a Core Image text feature detection operation 
+/// to return feature information for components of detected features.
+///
+/// This option is used with ``/CIDetector/featuresInImage:options:``
+/// 
+/// If the value for this option configures the ``CIDetectorTypeText`` detector as follows:
+/// * False: detect only in regions likely to contain text.
+/// * True: detect in regions likely to contain individual characters.
+/// 
+/// If this key is not specified, the a default is False.
+///
 CORE_IMAGE_EXPORT NSString* const CIDetectorReturnSubFeatures __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0);
-#endif
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFeature.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFeature.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFeature.h	2025-04-19 04:49:16
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFeature.h	2025-05-24 01:53:33
@@ -13,29 +13,75 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-/** Generic feature found by a CIDetector. */
+/// The abstract superclass for objects representing notable features detected in an image.
+///
+/// > Note: In macOS 10.13, iOS 11, and tvOS 11 or later, the Vision framework replaces these classes 
+/// for identifying and analyzing image features.
+/// See <doc://com.apple.documentation/documentation/vision/vnbservation>)
+/// 
+/// A `CIFeature` object represents a portion of an image that a detector believes matches its criteria. 
+/// Subclasses of CIFeature holds additional information specific to the detector that discovered the feature.
+///
 NS_CLASS_AVAILABLE(10_7, 5_0)
 @interface CIFeature : NSObject {}
 
-/** The type of the feature. */
+
+/// The type of feature that was discovered.
+/// 
+/// The type can be one of:
+/// * ``CIFeatureTypeFace``
+/// * ``CIFeatureTypeRectangle``
+/// * ``CIFeatureTypeQRCode``
+/// * ``CIFeatureTypeText``
 @property (readonly, retain) NSString *type;
-/** The bounds of the feature in the image it was detected in. */
+
+/// The rectangle that bounds the location of discovered feature.
+///
+/// The rectangle is in the cartesian coordinate system of the image.
 @property (readonly, assign) CGRect bounds;
 
 @end
 
 /** Specifies the type of a feature that is a face. */
+
+/// A Core Image feature type for person’s face.
+///
+/// To detect faces in an image or video, pass this to ``/CIDetector/detectorOfType:context:options:``
+/// 
+/// Use the ``CIFaceFeature`` class to find more information about the detected face.
 CORE_IMAGE_EXPORT NSString* const CIFeatureTypeFace;
-/** Specifies the type of a feature that is a rectangle. */
+
+/// A Core Image feature type for rectangular object.
+///
+/// To detect rectangles in an image or video, pass this to ``/CIDetector/detectorOfType:context:options:``
+/// 
+/// Use the ``CIRectangleFeature`` class to find more information about the detected rectangle.
 CORE_IMAGE_EXPORT NSString* const CIFeatureTypeRectangle;
-/** Specifies the type of a feature that is a QR code. */
+
+/// A Core Image feature type for QR code object.
+///
+/// To detect QR codes in an image or video, pass this to ``/CIDetector/detectorOfType:context:options:``
+/// 
+/// Use the ``CIQRCodeFeature`` class to find more information about the detected QR code.
 CORE_IMAGE_EXPORT NSString* const CIFeatureTypeQRCode;
-/** Specifies the type of a feature that is a text. */
+
+/// A Core Image feature type for text.
+///
+/// To detect text in an image or video, pass this to ``/CIDetector/detectorOfType:context:options:``
+/// 
+/// Use the ``CITextFeature`` class to find more information about the detected text.
 CORE_IMAGE_EXPORT NSString* const CIFeatureTypeText;
 
 
-/** A face feature found by a CIDetector.
- All positions are relative to the original image. */
+/// Information about a face detected in a still or video image.
+/// 
+/// > Note: In macOS 10.13, iOS 11, and tvOS 11 or later, the Vision framework replaces this 
+/// class for identifying and analyzing image features. See `VNDetectFaceRectanglesRequest`.
+/// See <doc://com.apple.documentation/documentation/vision/vndetectfacerectanglesrequest>)
+///
+/// The properties of a `CIFaceFeature` object provide information about the face’s eyes and mouth. 
+/// A face object in a video can also have properties that track its location over time, tracking ID and frame count.
+///
 NS_CLASS_AVAILABLE(10_7, 5_0)
 @interface CIFaceFeature : CIFeature
 {
@@ -47,7 +93,6 @@
     BOOL hasMouthPosition;
     CGPoint mouthPosition;
     
-    
     BOOL hasTrackingID;
     int trackingID;
     BOOL hasTrackingFrameCount;
@@ -61,37 +106,102 @@
     BOOL rightEyeClosed;
 }
 
-/** coordinates of various cardinal points within a face.
- 
- Note that the left eye is the eye on the left side of the face
- from the observer's perspective. It is not the left eye from
- the subject's perspective. */
-
+/// A rectangle indicating the position and extent of the face feature in image coordinates.
 @property (readonly, assign) CGRect bounds;
+
+/// A Boolean value that indicates whether the detector found the face’s left eye.
 @property (readonly, assign) BOOL hasLeftEyePosition;
+
+/// The image coordinate of the center of the left eye.
+/// 
+/// > Note: The left eye is on the left side of the face from the observer's perspective. 
+///   It is not the left eye from the subject's perspective.
+///   
 @property (readonly, assign) CGPoint leftEyePosition;
+
+/// A Boolean value that indicates whether the detector found the face’s right eye.
 @property (readonly, assign) BOOL hasRightEyePosition;
+
+/// The image coordinate of the center of the right eye.
+/// 
+/// > Note: The right eye is on the right side of the face from the observer's perspective. 
+///   It is not the right eye from the subject's perspective.
+///   
 @property (readonly, assign) CGPoint rightEyePosition;
+
+/// A Boolean value that indicates whether the detector found the face’s mouth.
 @property (readonly, assign) BOOL hasMouthPosition;
+
+/// The image coordinate of the center of the mouth.
 @property (readonly, assign) CGPoint mouthPosition;
 
+/// A Boolean value that indicates whether the face object has a tracking ID.
 @property (readonly, assign) BOOL hasTrackingID;
+
+/// The tracking identifier of the face object.
+///
+/// Core Image provides a tracking identifier for faces it detects in a video stream, which you can 
+/// use to identify when a CIFaceFeature objects detected in one video frame is the same face detected 
+/// in a previous video frame.
+/// 
+/// This identifier persists only as long as a face is in the frame and is not associated with a specific 
+/// face. In other words, if a face moves out of the video frame and comes back into the frame later, 
+/// another ID is assigned. (Core Image detects faces, but does not recognize specific faces.)
+///
 @property (readonly, assign) int trackingID;
+
+/// A Boolean value that indicates the face object has a tracking frame count.
 @property (readonly, assign) BOOL hasTrackingFrameCount;
+
+/// The tracking frame count of the face.
 @property (readonly, assign) int trackingFrameCount;
 
+/// A Boolean value that indicates whether information about face rotation is available.
 @property (readonly, assign) BOOL hasFaceAngle;
+
+/// The rotation of the face.
+///
+/// Rotation is measured counterclockwise in degrees, with zero indicating that a line drawn between 
+/// the eyes is horizontal relative to the image orientation.
+///
 @property (readonly, assign) float faceAngle;
 
+/// A Boolean value that indicates whether a smile is detected in the face.
+///
+/// To detect smiles, ``/CIDetector/featuresInImage:options:`` needs to be called with the ``CIDetectorSmile`` option set to true.
 @property (readonly, assign) BOOL hasSmile;
+
+/// A Boolean value that indicates whether a closed left eye is detected in the face.
+///
+/// To detect closed eyes, ``/CIDetector/featuresInImage:options:`` needs to be called with the ``CIDetectorEyeBlink`` option set to true.
 @property (readonly, assign) BOOL leftEyeClosed;
+
+/// A Boolean value that indicates whether a closed right eye is detected in the face.
+///
+/// To detect closed eyes, ``/CIDetector/featuresInImage:options:`` needs to be called with the ``CIDetectorEyeBlink`` option set to true.
 @property (readonly, assign) BOOL rightEyeClosed;
 
 @end
 
-/** A rectangle feature found by a CIDetector
- All positions are relative to the original image. */
-
+/// Information about a rectangular region detected in a still or video image.
+///
+/// > Note: In macOS 10.13, iOS 11, and tvOS 11 or later, the Vision framework replaces these classes 
+/// for identifying and analyzing image features. 
+/// See <doc://com.apple.documentation/documentation/vision/vndetectfacerectanglesrequest>)
+///
+/// A detected rectangle feature is not necessarily rectangular in the plane of the image; rather, the 
+/// feature identifies a shape that may be rectangular in space (for example a book on a desk) but which 
+/// appears as a four-sided polygon in the image. The properties of a `CIRectangleFeature` object 
+/// identify its four corners in image coordinates.
+/// 
+/// You can use rectangle feature detection together with the `CIPerspectiveCorrection` filter 
+/// to transform the feature to a normal orientation.
+/// 
+/// To detect rectangles in an image or video, choose ``CIDetectorTypeRectangle`` when initializing a 
+/// ``CIDetector`` object, and use the `CIDetectorAspectRatio` and `CIDetectorFocalLength` options to 
+/// specify the approximate shape of rectangular features to search for. The detector returns at 
+/// most one rectangle feature, the most prominent found in the image.
+///
 NS_CLASS_AVAILABLE(10_10, 8_0)
 @interface CIRectangleFeature : CIFeature
 {
@@ -102,10 +212,24 @@
     CGPoint bottomRight;
 }
 
+/// A rectangle that indicates the position and extent of the rectangle feature in image coordinates.
+///
+/// This property identifies the rectangular region of the image containing the detected rectangle, 
+/// not necessarily the shape of the rectangle. A detected feature is rectangular in space, but may 
+/// appear as a four-sided polygon in the image. Use the properties listed in `CIRectangleFeature` to find the 
+/// corners of the rectangle as it appears in perspective.
 @property (readonly) CGRect bounds;
+
+/// The image coordinate of the upper-left corner of the detected rectangle.
 @property (readonly) CGPoint topLeft;
+
+/// The image coordinate of the upper-right corner of the detected rectangle.
 @property (readonly) CGPoint topRight;
+
+/// The image coordinate of the lower-left corner of the detected rectangle.
 @property (readonly) CGPoint bottomLeft;
+
+/// The image coordinate of the lower-right corner of the detected rectangle.
 @property (readonly) CGPoint bottomRight;
 
 @end
@@ -115,6 +239,19 @@
 
 @class CIQRCodeDescriptor;
 
+/// Information about a Quick Response code detected in a still or video image.
+///
+/// > Note: In macOS 10.13, iOS 11, and tvOS 11 or later, the Vision framework replaces these classes 
+/// for identifying and analyzing image features. 
+/// See <doc://com.apple.documentation/documentation/vision/vndetectbarcodesrequest>)
+/// 
+/// A QR code is a two-dimensional barcode using the ISO/IEC 18004:2006 standard. The properties of 
+/// a CIQRCodeFeature object identify the corners of the barcode in the image perspective and provide 
+/// the decoded message.
+/// 
+/// To detect QR codes in an image or video, choose ``CIDetectorTypeQRCode`` type when initializing a
+/// ``CIDetector`` object.
+///
 NS_CLASS_AVAILABLE(10_10, 8_0)
 @interface CIQRCodeFeature : CIFeature <NSSecureCoding, NSCopying>
 {
@@ -126,37 +263,90 @@
     CIQRCodeDescriptor *symbolDescriptor;
 }
 
+/// A rectangle that indicates the position and extent of the QR code feature in image coordinates.
+///
+/// This property identifies the rectangular region of the image containing the detected QR code, 
+/// not necessarily the shape of the QR code. A detected feature is square in space, but may 
+/// appear as a four-sided polygon in the image. Use the properties listed in `CIQRCodeFeature` to find the 
+/// corners of the QR code as it appears in perspective.
 @property (readonly) CGRect bounds;
+
+/// The image coordinate of the upper-left corner of the detected QR code.
 @property (readonly) CGPoint topLeft;
+
+/// The image coordinate of the upper-right corner of the detected QR code.
 @property (readonly) CGPoint topRight;
+
+/// The image coordinate of the lower-left corner of the detected QR code.
 @property (readonly) CGPoint bottomLeft;
+
+/// The image coordinate of the lower-right corner of the detected QR code.
 @property (readonly) CGPoint bottomRight;
 
+/// The string decoded from the detected barcode.
 @property (nullable, readonly) NSString* messageString;
 
+/// An abstract representation of a QR Code symbol.
+/// 
+/// The property is a ``CIQRCodeDescriptor`` instance that contains the payload, symbol version, 
+/// mask pattern, and error correction level, so the QR Code can be reproduced.
+/// 
 @property (nullable, readonly) CIQRCodeDescriptor *symbolDescriptor NS_AVAILABLE(10_13, 11_0);
 
 @end
 
-/** A text feature found by a CIDetector
- All positions are relative to the original image. */
-
-#if __OBJC2__
+/// Information about a text that was detected in a still or video image.
+///
+/// > Note: In macOS 10.13, iOS 11, and tvOS 11 or later, the Vision framework replaces these classes 
+/// for identifying and analyzing image features. 
+/// See <doc://com.apple.documentation/documentation/vision/vnrecognizetextrequest>)
+/// 
+/// A detected text feature is not necessarily rectangular in the plane of the image; rather, the 
+/// feature identifies a shape that may be rectangular in space (for example a text on a sign) but which 
+/// appears as a four-sided polygon in the image. The properties of a `CITextFeature` object 
+/// identify its four corners in image coordinates.
+/// 
+/// To detect text in an image or video, choose the ``CIDetectorTypeText`` type when initializing a 
+/// ``CIDetector`` object, and use the `CIDetectorImageOrientation` option to specify the desired 
+/// orientation for finding upright text.
+/// 
 NS_CLASS_AVAILABLE(10_11, 9_0)
 @interface CITextFeature : CIFeature
 {
 }
 
+/// A rectangle that indicates the position and extent of the text feature in image coordinates.
+///
+/// This property identifies the rectangular region of the image containing the detected text, 
+/// not necessarily the shape of the text box. A detected feature is rectangular in space, but may 
+/// appear as a four-sided polygon in the image. Use the properties listed in `CITextFeature` to find the 
+/// corners of the rectangle as it appears in perspective.
 @property (readonly) CGRect bounds;
+
+/// The image coordinate of the upper-left corner of the detected text.
 @property (readonly) CGPoint topLeft;
+
+/// The image coordinate of the upper-right corner of the detected text.
 @property (readonly) CGPoint topRight;
+
+/// The image coordinate of the lower-left corner of the detected text.
 @property (readonly) CGPoint bottomLeft;
+
+/// The image coordinate of the lower-right corner of the detected text.
 @property (readonly) CGPoint bottomRight;
+
+/// An array containing additional features detected within the feature.
+///
+/// A text detector can identify both a major region that is likely to contain text as well
+/// as the areas within that region that likely to contain individual text features. Such 
+/// features might be single characters, groups of closely-packed characters, or entire words.
+/// 
+/// To detect sub-features, ``/CIDetector/featuresInImage:options:`` needs to be called with 
+/// the ``CIDetectorReturnSubFeatures`` option set to true.
+/// 
 @property (nullable, readonly) NSArray *subFeatures;
 
-
 @end
-#endif // __OBJC2__
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilter.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilter.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilter.h	2025-04-19 01:56:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilter.h	2025-05-24 05:19:24
@@ -72,13 +72,13 @@
     CIUISetBasic, CIUISetIntermediate, CIUISetAdvanced and CIUISetDevelopment. */
 CORE_IMAGE_EXPORT NSString * const kCIUIParameterSet NS_AVAILABLE(10_5, 9_0);
 
-/** Constant for requesting controls that are appropiate in an basic user scenario, meaning the bare minimum of settings to control the filter. */
+/** Constant for requesting controls that are appropriate in a basic user scenario, meaning the bare minimum of settings to control the filter. */
 CORE_IMAGE_EXPORT NSString * const kCIUISetBasic NS_AVAILABLE(10_5, 9_0);
 
-/** Constant for requesting controls that are appropiate in an intermediate user scenario. */
+/** Constant for requesting controls that are appropriate in an intermediate user scenario. */
 CORE_IMAGE_EXPORT NSString * const kCIUISetIntermediate NS_AVAILABLE(10_5, 9_0);
 
-/** Constant for requesting controls that are appropiate in an advanced user scenario. */
+/** Constant for requesting controls that are appropriate in an advanced user scenario. */
 CORE_IMAGE_EXPORT NSString * const kCIUISetAdvanced NS_AVAILABLE(10_5, 9_0);
 
 /** Constant for requesting controls that should only be visible for development purposes. */
@@ -158,37 +158,238 @@
 
 /* common filter parameter keys */
 
+/// A key to get  the output image of a Core Image filter. 
+/// 
+/// The value for this key will be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIOutputImageKey NS_AVAILABLE(10_5, 5_0);
+
+/// A key to get or set the background image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputBackgroundImageKey NS_AVAILABLE(10_5, 5_0);
+
+/// A key to get or set the input image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
+/// For filters that also use a background image, this key refers to the foreground image.
 CORE_IMAGE_EXPORT NSString * const kCIInputImageKey NS_AVAILABLE(10_5, 5_0);
+
+/// A key to get or set the depth map image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputDepthImageKey NS_AVAILABLE(10_13, 11_0);
+
+/// A key to get or set the disparity map image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputDisparityImageKey NS_AVAILABLE(10_13, 11_0);
+
+/// A key to get or set the scalar amount value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputAmountKey NS_AVAILABLE(10_14, 12_0);
+
+/// A key to get or set the scalar count value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an integer  `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputCountKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the scalar threshold value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputThresholdKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the scalar time value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputTimeKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the geometric 2x3 matrix transform value of a Core Image filter. 
+/// The value for this key needs to be an `NSAffineTransformStruct` or an `NSValue` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputTransformKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the geometric scale value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputScaleKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the geometric aspect ratio value of a Core Image filter. 
+/// The value for this key needs to be an `NSNumber` instance containing the `horizontal/vertical` scale ratio .
 CORE_IMAGE_EXPORT NSString * const kCIInputAspectRatioKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the center value of a Core Image filter.  
+/// The value for this key needs to be a ``CIVector`` instance containing the `x,y` coordinate.
 CORE_IMAGE_EXPORT NSString * const kCIInputCenterKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the geometric radius value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputRadiusKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the geometric radius value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputRadius0Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the geometric radius value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputRadius1Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the geometric angle value of a Core Image filter.  Typically the angle is in radians.
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputAngleKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar optical refraction value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputRefractionKey NS_AVAILABLE(10_5, 9_0);
+
+/// A key to get or set the geometric width value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputWidthKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar sharpness value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputSharpnessKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar intensity value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputIntensityKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar EV value of a Core Image filter that specifies how many F-stops brighter or darker to make the image. 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputEVKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar saturation value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputSaturationKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the color value of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIColor`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputColorKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set a color value of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIColor`` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputColor0Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set a color value of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIColor`` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputColor1Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set a color space value of a Core Image filter. 
+/// 
+/// The value for this key needs to be a `CGColorSpace` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputColorSpaceKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the scalar brightness value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputBrightnessKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the scalar contrast value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputContrastKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the boolean behavior of a Core Image filter that specifies if the filter should extrapolate a table beyond the defined range. 
+/// The value for this key needs to be an `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputExtrapolateKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the boolean behavior of a Core Image filter that specifies if the filter should operate in linear or perceptual colors. 
+/// The value for this key needs to be an `NSNumber` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputPerceptualKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the scalar bias value of a Core Image filter. 
+/// 
+/// The value for this key needs to be an `NSNumber` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputBiasKey NS_AVAILABLE(10_5, 9_0);
+
+/// A key to get or set the vector bias value of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIVector`` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputBiasVectorKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the vector weights value of a convolution Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIVector`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputWeightsKey NS_AVAILABLE(10_11, 9_0);
+
+/// A key to get or set the gradient map image of a Core Image filter that maps luminance to a color with alpha. 
+/// The value for this key needs to be a 1 pixel tall ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputGradientImageKey NS_AVAILABLE(10_5, 9_0);
+
+/// A key to get or set the mask image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputMaskImageKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the matte image of a Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputMatteImageKey NS_AVAILABLE(10_14, 12_0);
+
+/// A key to get or set the environment map image of a Core Image filter that maps normal directions to a color with alpha. 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputShadingImageKey NS_AVAILABLE(10_5, 9_0);
+
+/// A key to get or set the target image for a transition Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputTargetImageKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the backside image for a transition Core Image filter. 
+/// 
+/// The value for this key needs to be a ``CIImage`` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputBacksideImageKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the palette image for a  Core Image filter. 
+/// 
+/// The value for this key needs to be a  1 pixel tall ``CIImage`` instance.
+CORE_IMAGE_EXPORT NSString * const kCIInputPaletteImageKey NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set the vector extent value of a Core Image filterthat defines the extent of the effect. 
+/// The value for this key needs to be a ``CIVector`` instance.
 CORE_IMAGE_EXPORT NSString * const kCIInputExtentKey NS_AVAILABLE(10_5, 7_0);
+
+/// A key to get or set the coordinate value of a Core Image filter.  
+/// The value for this key needs to be a ``CIVector`` instance containing the `x,y` coordinate.
+CORE_IMAGE_EXPORT NSString * const kCIInputPoint0Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set a coordinate value of a Core Image filter.  
+/// The value for this key needs to be a ``CIVector`` instance containing the `x,y` coordinate.
+CORE_IMAGE_EXPORT NSString * const kCIInputPoint1Key NS_AVAILABLE(16_0, 19_0);
+
+/// A key to get or set a coordinate value of a Core Image filter.  
+/// The value for this key needs to be a ``CIVector`` instance containing the `x,y` coordinate.
 CORE_IMAGE_EXPORT NSString * const kCIInputVersionKey NS_AVAILABLE(10_11, 6_0);
+
+/// An enum string type that your code can use to select different System Tone Mapping modes.
+/// These options are consistent with the analogous options available in Core Graphics,
+/// Core Animation, AppKit, UIKit, and SwiftUI, 
+/// In Core Image, this option can be set on the `CISystemToneMap` filter.
+typedef NSString * CIDynamicRangeOption NS_TYPED_ENUM;
+
+/// Standard dynamic range. 
+/// Images with `contentHeadroom` metadata will be tone mapped to a maximum pixel value of 1.0.
+CORE_IMAGE_EXPORT CIDynamicRangeOption const kCIDynamicRangeStandard NS_AVAILABLE(16_0, 19_0);
+
+/// Use extended dynamic range, but brightness is modulated to optimize for
+/// co-existence with other composited content. For best results, images should
+/// contain `contentAverageLightLevel` metadata.
+CORE_IMAGE_EXPORT CIDynamicRangeOption const kCIDynamicRangeConstrainedHigh NS_AVAILABLE(16_0, 19_0);
+
+/// Use High dynamic range. Provides the best HDR quality. This needs to be reserved
+/// for situations where the user is focused on the media, such as larger views in
+/// an image editing/viewing app, or annotating/drawing with HDR colors
+CORE_IMAGE_EXPORT CIDynamicRangeOption const kCIDynamicRangeHigh NS_AVAILABLE(16_0, 19_0);
 
 
 @class CIKernel, CIImage;
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h	2025-04-19 03:57:35
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilterBuiltins.h	2025-05-24 01:38:12
@@ -16,1010 +16,2439 @@
 NS_ASSUME_NONNULL_BEGIN
 
 // CICategoryGradient
+
+/// The protocol for the Distance Gradient From Red Mask filter.
+///
+/// Produces an infinite image where the red channel contains the distance in pixels from each pixel to the mask.
+@protocol CIDistanceGradientFromRedMask <CIFilter>
+  /// The input image whose red channel defines a mask. If the red channel pixel value is greater than 0.5 then the point is considered in the mask and output pixel will be zero. Otherwise the output pixel will be a value between zero and one.
+  @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Determines the maximum distance to the mask that can be measured. Distances between zero and the maximum will be normalized to zero and one.
+  @property (nonatomic) float maximumDistance;
+@end
+
+/// The protocol for the Gaussian Gradient filter.
+///
+/// Generates a gradient that varies from one color to another using a Gaussian distribution.
 @protocol CIGaussianGradient <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The first color to use in the gradient.
   @property (nonatomic, retain) CIColor *color0;
+  /// The second color to use in the gradient.
   @property (nonatomic, retain) CIColor *color1;
+  /// The radius of the Gaussian distribution.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Hue/Saturation/Value Gradient filter.
+///
+/// Generates a color wheel that shows hues and saturations for a specified value.
 @protocol CIHueSaturationValueGradient <CIFilter>
+  /// The color value used to generate the color wheel.
   @property (nonatomic) float value;
+  /// The radius of the color wheel in pixels.
   @property (nonatomic) float radius;
+  /// The amount to smooth the hue angle to make it appear more continuous.
   @property (nonatomic) float softness;
+  /// The amount of dithered noise to add to the color wheel to avoid banding artifacts.
   @property (nonatomic) float dither;
+  /// The CGColorSpaceRef that the color wheel should be generated in.
   @property (nonatomic, nullable) CGColorSpaceRef colorSpace;
 @end
+
+/// The protocol for the Linear Gradient filter.
+///
+/// Generates a gradient that varies along a linear axis between two defined endpoints.
 @protocol CILinearGradient <CIFilter>
+  /// The starting position of the gradient -- where the first color begins.
   @property (nonatomic) CGPoint point0;
+  /// The ending position of the gradient -- where the second color begins.
   @property (nonatomic) CGPoint point1;
+  /// The first color to use in the gradient.
   @property (nonatomic, retain) CIColor *color0;
+  /// The second color to use in the gradient.
   @property (nonatomic, retain) CIColor *color1;
 @end
+
+/// The protocol for the Radial Gradient filter.
+///
+/// Generates a gradient that varies radially between two circles having the same center. It is valid for one of the two circles to have a radius of 0.
 @protocol CIRadialGradient <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius of the starting circle to use in the gradient.
   @property (nonatomic) float radius0;
+  /// The radius of the ending circle to use in the gradient.
   @property (nonatomic) float radius1;
+  /// The first color to use in the gradient.
   @property (nonatomic, retain) CIColor *color0;
+  /// The second color to use in the gradient.
   @property (nonatomic, retain) CIColor *color1;
 @end
+
+/// The protocol for the Signed Distance Gradient From Red Mask filter.
+///
+/// Produces an infinite image where the red channel contains the distance in pixels from each pixel to the mask.
+@protocol CISignedDistanceGradientFromRedMask <CIFilter>
+  /// The input image whose red channel defines a mask. If the red channel pixel value is greater than 0.5 then the point is considered in the mask and output pixel will be a value between zero and negative one. Otherwise the output pixel will be a value between zero and one.
+  @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Determines the maximum distance to the mask that can be measured. Distances between zero and the maximum will be normalized to negative one and one.
+  @property (nonatomic) float maximumDistance;
+@end
+
+/// The protocol for the Smooth Linear Gradient filter.
+///
+/// Generates a gradient that varies along a linear axis between two defined endpoints.
 @protocol CISmoothLinearGradient <CIFilter>
+  /// The starting position of the gradient -- where the first color begins.
   @property (nonatomic) CGPoint point0;
+  /// The ending position of the gradient -- where the second color begins.
   @property (nonatomic) CGPoint point1;
+  /// The first color to use in the gradient.
   @property (nonatomic, retain) CIColor *color0;
+  /// The second color to use in the gradient.
   @property (nonatomic, retain) CIColor *color1;
 @end
 
 // CICategorySharpen
+
+/// The protocol for the Sharpen Luminance filter.
+///
+/// Increases image detail by sharpening. It operates on the luminance of the image; the chrominance of the pixels remains unaffected.
 @protocol CISharpenLuminance <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount of sharpening to apply. Larger values are sharper.
   @property (nonatomic) float sharpness;
+  /// The distance from the center of the effect.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Unsharp Mask filter.
+///
+/// Increases the contrast of the edges between pixels of different colors in an image.
 @protocol CIUnsharpMask <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius around a given pixel to apply the unsharp mask. The larger the radius, the more of the image is affected.
   @property (nonatomic) float radius;
+  /// The intensity of the effect. The larger the value, the more contrast in the affected area.
   @property (nonatomic) float intensity;
 @end
 
 // CICategoryHalftoneEffect
+
+/// The protocol for the Circular Screen filter.
+///
+/// Simulates a circular-shaped halftone screen.
 @protocol CICircularScreen <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The distance between each circle in the pattern.
   @property (nonatomic) float width;
+  /// The sharpness of the circles. The larger the value, the sharper the circles.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the CMYK Halftone filter.
+///
+/// Creates a color, halftoned rendition of the source image, using cyan, magenta, yellow, and black inks over a white page.
 @protocol CICMYKHalftone <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The distance between dots in the pattern.
   @property (nonatomic) float width;
+  /// The angle in radians of the pattern.
   @property (nonatomic) float angle;
+  /// The sharpness of the pattern. The larger the value, the sharper the pattern.
   @property (nonatomic) float sharpness;
+  /// The gray component replacement value. The value can vary from 0.0 (none) to 1.0.
   @property (nonatomic) float grayComponentReplacement;
+  /// The under color removal value. The value can vary from 0.0 to 1.0. 
   @property (nonatomic) float underColorRemoval;
 @end
+
+/// The protocol for the Dot Screen filter.
+///
+/// Simulates the dot patterns of a halftone screen.
 @protocol CIDotScreen <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the pattern.
   @property (nonatomic) float angle;
+  /// The distance between dots in the pattern.
   @property (nonatomic) float width;
+  /// The sharpness of the pattern. The larger the value, the sharper the pattern.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the Hatched Screen filter.
+///
+/// Simulates the hatched pattern of a halftone screen.
 @protocol CIHatchedScreen <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the pattern.
   @property (nonatomic) float angle;
+  /// The distance between lines in the pattern.
   @property (nonatomic) float width;
+  /// The amount of sharpening to apply.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the Line Screen filter.
+///
+/// Simulates the line pattern of a halftone screen.
 @protocol CILineScreen <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the pattern.
   @property (nonatomic) float angle;
+  /// The distance between lines in the pattern.
   @property (nonatomic) float width;
+  /// The sharpness of the pattern. The larger the value, the sharper the pattern.
   @property (nonatomic) float sharpness;
 @end
 
 // CICategoryGeometryAdjustment
+
+/// A protocol for filters that adjust the geometry of an image
+/// given four control points in the coordinate space of the image.
 @protocol CIFourCoordinateGeometryFilter <CIFilter>
+  /// The image to use as the input for the geometry adjustment filter.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The top left point in the coordinate space of the image.
   @property (nonatomic) CGPoint topLeft;
+  /// The top right point in the coordinate space of the image.
   @property (nonatomic) CGPoint topRight;
+  /// The bottom right point in the coordinate space of the image.
   @property (nonatomic) CGPoint bottomRight;
+  /// The bottom left point in the coordinate space of the image.
   @property (nonatomic) CGPoint bottomLeft;
 @end
+
+/// The protocol for the Bicubic Scale Transform filter.
+///
+/// Produces a high-quality, scaled version of a source image. The parameters of B and C for this filter determine the sharpness or softness of the resampling. The most commonly used B and C values are 0.0 and 0.75, respectively.
 @protocol CIBicubicScaleTransform <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
   @property (nonatomic) float scale;
+  /// The additional horizontal scaling factor to use on the image.
   @property (nonatomic) float aspectRatio;
+  /// Specifies the value of B to use for the cubic resampling function.
   @property (nonatomic) float parameterB;
+  /// Specifies the value of C to use for the cubic resampling function.
   @property (nonatomic) float parameterC;
 @end
+
+/// The protocol for the Edge Preserve Upsample Filter filter.
+///
+/// Upsamples a small image to the size of the input image using the luminance of the input image as a guide to preserve detail.
 @protocol CIEdgePreserveUpsample <CIFilter>
+  /// The image to use as a guide to upsample the small image.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image that the filter upsamples.
   @property (nonatomic, retain, nullable) CIImage *smallImage;
+  /// A value that specifies the influence of the input image’s spatial information on the upsampling operation.
   @property (nonatomic) float spatialSigma;
+  /// A value that specifies the influence of the input image’s luma information on the upsampling operation.
   @property (nonatomic) float lumaSigma;
 @end
+
+/// The protocol for the Combined Keystone Correction filter.
+///
+/// Apply keystone correction to an image with combined horizontal and vertical guides.
 @protocol CIKeystoneCorrectionCombined <CIFourCoordinateGeometryFilter>
+  /// 35mm equivalent focal length of the input image.
   @property (nonatomic) float focalLength;
 @end
+
+/// The protocol for the Horizontal Keystone Correction filter.
+///
+/// Apply horizontal keystone correction to an image with guides.
 @protocol CIKeystoneCorrectionHorizontal <CIFourCoordinateGeometryFilter>
+  /// 35mm equivalent focal length of the input image.
   @property (nonatomic) float focalLength;
 @end
+
+/// The protocol for the Vertical Keystone Correction filter.
+///
+/// Apply vertical keystone correction to an image with guides.
 @protocol CIKeystoneCorrectionVertical <CIFourCoordinateGeometryFilter>
+  /// 35mm equivalent focal length of the input image.
   @property (nonatomic) float focalLength;
 @end
+
+/// The protocol for the Lanczos Scale Transform filter.
+///
+/// Produces a high-quality, scaled version of a source image. You typically use this filter to scale down an image.
 @protocol CILanczosScaleTransform <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
   @property (nonatomic) float scale;
+  /// The additional horizontal scaling factor to use on the image.
   @property (nonatomic) float aspectRatio;
 @end
+
+/// The protocol for the Maximum Scale Transform filter.
+///
+/// Produces a scaled version of a source image that uses the maximum of neighboring pixels instead of linear averaging.
 @protocol CIMaximumScaleTransform <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
   @property (nonatomic) float scale;
+  /// The additional horizontal scaling factor to use on the image.
   @property (nonatomic) float aspectRatio;
 @end
+
+/// The protocol for the Perspective Correction filter.
+///
+/// Apply a perspective correction to an image. This geometry maps four control points in the input image to a rectangle.
 @protocol CIPerspectiveCorrection <CIFourCoordinateGeometryFilter>
+  /// If true then the filter crops the output image to the rectangle that the points map to. If false, then pixels from outside the four control points remain in the output image
   @property (nonatomic) bool crop;
 @end
+
+/// The protocol for the Perspective Rotate filter.
+///
+/// Apply a homogenous rotation transform to an image.
 @protocol CIPerspectiveRotate <CIFilter>
+  /// The image to process.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// 35mm equivalent focal length of the input image.
   @property (nonatomic) float focalLength;
+  /// Pitch angle in radians.
   @property (nonatomic) float pitch;
+  /// Yaw angle in radians.
   @property (nonatomic) float yaw;
+  /// Roll angle in radians.
   @property (nonatomic) float roll;
 @end
+
+/// The protocol for the Perspective Transform filter.
+///
+/// Alters the geometry of an image to simulate the observer changing viewing position. You can use the perspective filter to skew an image.
 @protocol CIPerspectiveTransform <CIFourCoordinateGeometryFilter>
 @end
+
+/// The protocol for the Perspective Transform with Extent filter.
+///
+/// Alters the geometry of an image to simulate the observer changing viewing position. You can use the perspective filter to skew an image.
 @protocol CIPerspectiveTransformWithExtent <CIFourCoordinateGeometryFilter>
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
 @end
+
+/// The protocol for the Straighten filter.
+///
+/// Rotates a source image by the specified angle in radians. The image is then scaled and cropped so that the rotated image fits the extent of the input image.
 @protocol CIStraighten <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The angle in radians of the effect.
   @property (nonatomic) float angle;
 @end
 
 // CICategoryTransition
+
+/// A protocol for filters that perform an animatable transition between two images.
 @protocol CITransitionFilter <CIFilter>
+  /// The image to use at the start of the transition.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image to use at the end of the transition.
   @property (nonatomic, retain, nullable) CIImage *targetImage;
+  /// The parametric time of the transition between `0` and `1`.
   @property (nonatomic) float time;
 @end
+
+/// The protocol for the Accordion Fold Transition filter.
+///
+/// Transitions from one image to another of a differing dimensions by unfolding.
 @protocol CIAccordionFoldTransition <CITransitionFilter>
+  /// The height in pixels from the bottom of the image to the bottom of the folded part of the transition.
   @property (nonatomic) float bottomHeight;
+  /// The number of folds used in the transition.
   @property (nonatomic) float numberOfFolds;
+  /// A value that specifies the intensity of the shadow in the transition.
   @property (nonatomic) float foldShadowAmount;
 @end
+
+/// The protocol for the Bars Swipe Transition filter.
+///
+/// Transitions from one image to another by swiping rectangular portions of the foreground image to disclose the target image.
 @protocol CIBarsSwipeTransition <CITransitionFilter>
+  /// The angle in radians of the bars.
   @property (nonatomic) float angle;
+  /// The width of each bar.
   @property (nonatomic) float width;
+  /// The offset of one bar with respect to another.
   @property (nonatomic) float barOffset;
 @end
+
+/// The protocol for the Copy Machine filter.
+///
+/// Transitions from one image to another by simulating the effect of a copy machine.
 @protocol CICopyMachineTransition <CITransitionFilter>
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The color of the copier light.
   @property (nonatomic, retain) CIColor *color;
+  /// The angle in radians of the copier light.
   @property (nonatomic) float angle;
+  /// The width of the copier light. 
   @property (nonatomic) float width;
+  /// The opacity of the copier light. A value of 0.0 is transparent. A value of 1.0 is opaque.
   @property (nonatomic) float opacity;
 @end
+
+/// The protocol for the Disintegrate With Mask filter.
+///
+/// Transitions from one image to another using the shape defined by a mask.
 @protocol CIDisintegrateWithMaskTransition <CITransitionFilter>
+  /// An image that defines the shape to use when disintegrating from the source to the target image.
   @property (nonatomic, retain, nullable) CIImage *maskImage;
+  /// The radius of the shadow created by the mask.
   @property (nonatomic) float shadowRadius;
+  /// The density of the shadow created by the mask.
   @property (nonatomic) float shadowDensity;
+  /// The offset of the shadow created by the mask.
   @property (nonatomic) CGPoint shadowOffset;
 @end
+
+/// The protocol for the Dissolve filter.
+///
+/// Uses a dissolve to transition from one image to another.
 @protocol CIDissolveTransition <CITransitionFilter>
 @end
+
+/// The protocol for the Flash filter.
+///
+/// Transitions from one image to another by creating a flash. The flash originates from a point you specify. Small at first, it rapidly expands until the image frame is completely filled with the flash color. As the color fades, the target image begins to appear.
 @protocol CIFlashTransition <CITransitionFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The extent of the flash.
   @property (nonatomic) CGRect extent;
+  /// The color of the light rays emanating from the flash.
   @property (nonatomic, retain) CIColor *color;
+  /// The radius of the light rays emanating from the flash.
   @property (nonatomic) float maxStriationRadius;
+  /// The strength of the light rays emanating from the flash.
   @property (nonatomic) float striationStrength;
+  /// The contrast of the light rays emanating from the flash.
   @property (nonatomic) float striationContrast;
+  /// The amount of fade between the flash and the target image. The higher the value, the more flash time and the less fade time.
   @property (nonatomic) float fadeThreshold;
 @end
+
+/// The protocol for the Mod filter.
+///
+/// Transitions from one image to another by revealing the target image through irregularly shaped holes.
 @protocol CIModTransition <CITransitionFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the mod hole pattern.
   @property (nonatomic) float angle;
+  /// The radius of the undistorted holes in the pattern.
   @property (nonatomic) float radius;
+  /// The amount of stretching applied to the mod hole pattern. Holes in the center are not distorted as much as those at the edge of the image.
   @property (nonatomic) float compression;
 @end
+
+/// The protocol for the Page Curl filter.
+///
+/// Transitions from one image to another by simulating a curling page, revealing the new image as the page curls.
 @protocol CIPageCurlTransition <CITransitionFilter>
+  /// The image that appears on the back of the source image, as the page curls to reveal the target image.
   @property (nonatomic, retain, nullable) CIImage *backsideImage;
+  /// An image that looks like a shaded sphere enclosed in a square image.
   @property (nonatomic, retain, nullable) CIImage *shadingImage;
+  /// The extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The angle in radians of the curling page.
   @property (nonatomic) float angle;
+  /// The radius of the curl.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Page Curl With Shadow filter.
+///
+/// Transitions from one image to another by simulating a curling page, revealing the new image as the page curls.
 @protocol CIPageCurlWithShadowTransition <CITransitionFilter>
+  /// The image that appears on the back of the source image, as the page curls to reveal the target image.
   @property (nonatomic, retain, nullable) CIImage *backsideImage;
+  /// The extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The angle in radians of the curling page.
   @property (nonatomic) float angle;
+  /// The radius of the curl.
   @property (nonatomic) float radius;
+  /// The maximum size in pixels of the shadow.
   @property (nonatomic) float shadowSize;
+  /// The strength of the shadow.
   @property (nonatomic) float shadowAmount;
+  /// The rectangular portion of input image that will cast a shadow.
   @property (nonatomic) CGRect shadowExtent;
 @end
+
+/// The protocol for the Ripple filter.
+///
+/// Transitions from one image to another by creating a circular wave that expands from the center point, revealing the new image in the wake of the wave.
 @protocol CIRippleTransition <CITransitionFilter>
+  /// An image that looks like a shaded sphere enclosed in a square image.
   @property (nonatomic, retain, nullable) CIImage *shadingImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The width of the ripple.
   @property (nonatomic) float width;
+  /// A value that determines whether the ripple starts as a bulge (higher value) or a dimple (lower value).
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Swipe filter.
+///
+/// Transitions from one image to another by simulating a swiping action.
 @protocol CISwipeTransition <CITransitionFilter>
+  /// The extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The color of the swipe.
   @property (nonatomic, retain) CIColor *color;
+  /// The angle in radians of the swipe.
   @property (nonatomic) float angle;
+  /// The width of the swipe.
   @property (nonatomic) float width;
+  /// The opacity of the swipe.
   @property (nonatomic) float opacity;
 @end
 
 // CICategoryCompositeOperation
+
+/// The protocol for the Addition filter.
+///
+/// Adds color components to achieve a brightening effect. This filter is typically used to add highlights and lens flare effects.
 @protocol CICompositeOperation <CIFilter>
+  /// The image to use as a foreground image.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image to use as a background image.
   @property (nonatomic, retain, nullable) CIImage *backgroundImage;
 @end
 
 // CICategoryColorAdjustment
+
+/// The protocol for the Color Absolute Difference filter.
+///
+/// Produces an image that is the absolute value of the color difference between two images. The alpha channel of the result will be the product of the two image alpha channels.
 @protocol CIColorAbsoluteDifference <CIFilter>
+  /// The first input image for differencing.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The second input image for differencing.
   @property (nonatomic, retain, nullable) CIImage *inputImage2;
 @end
+
+/// The protocol for the Color Clamp filter.
+///
+/// Clamp color to a certain range.
 @protocol CIColorClamp <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Lower clamping values.
   @property (nonatomic, retain) CIVector *minComponents;
+  /// Higher clamping values.
   @property (nonatomic, retain) CIVector *maxComponents;
 @end
+
+/// The protocol for the Color Controls filter.
+///
+/// Adjusts saturation, brightness, and contrast values.
 @protocol CIColorControls <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount of saturation to apply. The larger the value, the more saturated the result.
   @property (nonatomic) float saturation;
+  /// The amount of brightness to apply. The larger the value, the brighter the result.
   @property (nonatomic) float brightness;
+  /// The amount of contrast to apply. The larger the value, the more contrast in the resulting image.
   @property (nonatomic) float contrast;
 @end
+
+/// The protocol for the Color Matrix filter.
+///
+/// Multiplies source color values and adds a bias factor to each color component.
 @protocol CIColorMatrix <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount of red to multiply the source color values by.
   @property (nonatomic, retain) CIVector *RVector;
+  /// The amount of green to multiply the source color values by.
   @property (nonatomic, retain) CIVector *GVector;
+  /// The amount of blue to multiply the source color values by.
   @property (nonatomic, retain) CIVector *BVector;
+  /// The amount of alpha to multiply the source color values by.
   @property (nonatomic, retain) CIVector *AVector;
+  /// A vector that’s added to each color component.
   @property (nonatomic, retain) CIVector *biasVector;
 @end
+
+/// The protocol for the Color Polynomial filter.
+///
+/// Adjusts the color of an image with polynomials.
 @protocol CIColorPolynomial <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Polynomial coefficients for red channel.
   @property (nonatomic, retain) CIVector *redCoefficients;
+  /// Polynomial coefficients for green channel.
   @property (nonatomic, retain) CIVector *greenCoefficients;
+  /// Polynomial coefficients for blue channel.
   @property (nonatomic, retain) CIVector *blueCoefficients;
+  /// Polynomial coefficients for alpha channel.
   @property (nonatomic, retain) CIVector *alphaCoefficients;
 @end
+
+/// The protocol for the Color Threshold filter.
+///
+/// Produces a binarized image from an image and a threshold value. The red, green and blue channels of the resulting image will be one if its value is greater than the threshold and zero otherwise.
 @protocol CIColorThreshold <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The threshold value that governs if the RGB channels of the resulting image will be zero or one.
   @property (nonatomic) float threshold;
 @end
+
+/// The protocol for the Color Threshold Otsu filter.
+///
+/// Produces a binarized image from an image with finite extent. The threshold is calculated from the image histogram using Otsu’s method. The red, green and blue channels of the resulting image will be one if its value is greater than the threshold and zero otherwise.
 @protocol CIColorThresholdOtsu <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Depth To Disparity filter.
+///
+/// Convert a depth data image to disparity data.
 @protocol CIDepthToDisparity <CIFilter>
+  /// The input depth data image to convert to disparity data.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Disparity To Depth filter.
+///
+/// Convert a disparity data image to depth data.
 @protocol CIDisparityToDepth <CIFilter>
+  /// The input disparity data image to convert to depth data.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Exposure Adjust filter.
+///
+/// Adjusts the exposure setting for an image similar to the way you control exposure for a camera when you change the F-stop.
 @protocol CIExposureAdjust <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount to adjust the exposure of the image by. The larger the value, the brighter the exposure.
   @property (nonatomic) float EV;
 @end
+
+/// The protocol for the Gamma Adjust filter.
+///
+/// Adjusts midtone brightness. This filter is typically used to compensate for nonlinear effects of displays. Adjusting the gamma effectively changes the slope of the transition between black and white.
 @protocol CIGammaAdjust <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A gamma value to use to correct image brightness. The larger the value, the darker the result.
   @property (nonatomic) float power;
 @end
+
+/// The protocol for the Hue Adjust filter.
+///
+/// Changes the overall hue, or tint, of the source pixels.
 @protocol CIHueAdjust <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// An angle in radians to use to correct the hue of an image.
   @property (nonatomic) float angle;
 @end
+
+/// The protocol for the Linear to sRGB Tone Curve filter.
+///
+/// Converts an image in linear space to sRGB space.
 @protocol CILinearToSRGBToneCurve <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the sRGB Tone Curve to Linear filter.
+///
+/// Converts an image in sRGB space to linear space.
 @protocol CISRGBToneCurveToLinear <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the System Tone Map filter.
+///
+/// Apply a global tone curve to an image that reduces colors of the input image to a desired dynamic range consistent with other frameworks.
+@protocol CISystemToneMap <CIFilter>
+  /// Specifies input image with content headroom and average light level properties.
+  @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Specifies the current headroom of the intended display.
+  @property (nonatomic) float displayHeadroom;
+  /// Specifies the preferred dynamic range behavior of the tone mapping. The value should be kCIDynamicRangeStandard, kCIDynamicRangeConstrainedHigh, kCIDynamicRangeHigh or nil.  If nil then it will behave as kCIDynamicRangeHigh.
+  @property (nonatomic, retain, nullable) CIDynamicRangeOption preferredDynamicRange;
+@end
+
+/// The protocol for the Temperature and Tint filter.
+///
+/// Adapt the reference white point for an image.
 @protocol CITemperatureAndTint <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A vector containing the source white point defined by color temperature and tint or chromaticity (x,y).
   @property (nonatomic, retain) CIVector *neutral;
+  /// A vector containing the desired white point defined by color temperature and tint or chromaticity (x,y).
   @property (nonatomic, retain) CIVector *targetNeutral;
 @end
+
+/// The protocol for the Tone Curve filter.
+///
+/// Adjusts tone response of the R, G, and B channels of an image. The input points are five x,y values that are interpolated using a spline curve. The curve is applied in a perceptual (gamma 2) version of the working space.
 @protocol CIToneCurve <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A vector containing the position of the first point of the tone curve.
   @property (nonatomic) CGPoint point0;
+  /// A vector containing the position of the second point of the tone curve.
   @property (nonatomic) CGPoint point1;
+  /// A vector containing the position of the third point of the tone curve.
   @property (nonatomic) CGPoint point2;
+  /// A vector containing the position of the fourth point of the tone curve.
   @property (nonatomic) CGPoint point3;
+  /// A vector containing the position of the fifth point of the tone curve.
   @property (nonatomic) CGPoint point4;
+  /// If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.
+  @property (nonatomic) bool extrapolate NS_AVAILABLE(16_0, 19_0);
 @end
+
+/// The protocol for the Tone Map Headroom filter.
+///
+/// Apply a global tone curve to an image that reduces colors from a source headroom value to a target headroom value.
 @protocol CIToneMapHeadroom <CIFilter>
+  /// Specifies input image with an optional content headroom property.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// If non-nil, this overrides the headroom property of the input image.
   @property (nonatomic) float sourceHeadroom;
+  /// Specifies the target headroom of the output image.
   @property (nonatomic) float targetHeadroom;
 @end
+
+/// The protocol for the Vibrance filter.
+///
+/// Adjusts the saturation of an image while keeping pleasing skin tones.
 @protocol CIVibrance <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount to adjust the saturation.
   @property (nonatomic) float amount;
 @end
+
+/// The protocol for the White Point Adjust filter.
+///
+/// Adjusts the reference white point for an image and maps all colors in the source using the new reference.
 @protocol CIWhitePointAdjust <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A color to use as the white point.
   @property (nonatomic, retain) CIColor *color;
 @end
 
 // CICategoryColorEffect
+
+/// The protocol for the Color Cross Polynomial filter.
+///
+/// Adjusts the color of an image with polynomials.
 @protocol CIColorCrossPolynomial <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Polynomial coefficients for red channel.
   @property (nonatomic, retain) CIVector *redCoefficients;
+  /// Polynomial coefficients for green channel.
   @property (nonatomic, retain) CIVector *greenCoefficients;
+  /// Polynomial coefficients for blue channel.
   @property (nonatomic, retain) CIVector *blueCoefficients;
 @end
+
+/// The protocol for the Color Cube filter.
+///
+/// Uses a three-dimensional color table to transform the source image pixels.
 @protocol CIColorCube <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The dimension of the color cube.
   @property (nonatomic) float cubeDimension;
+  /// Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
   @property (nonatomic, retain) NSData *cubeData;
+  /// If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.
   @property (nonatomic) bool extrapolate NS_AVAILABLE(13_0, 16_0);
 @end
+
+/// The protocol for the Color Cubes Mixed With Mask filter.
+///
+/// Uses two three-dimensional color tables in a specified colorspace to transform the source image pixels. The mask image is used as an interpolant to mix the output of the two cubes.
 @protocol CIColorCubesMixedWithMask <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A masking image.
   @property (nonatomic, retain, nullable) CIImage *maskImage;
+  /// The dimension of the color cubes.
   @property (nonatomic) float cubeDimension;
+  /// Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
   @property (nonatomic, retain) NSData *cube0Data;
+  /// Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
   @property (nonatomic, retain) NSData *cube1Data;
+  /// The CGColorSpace that defines the RGB values in the color table.
   @property (nonatomic, nullable) CGColorSpaceRef colorSpace;
+  /// If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0 to 1.
   @property (nonatomic) bool extrapolate NS_AVAILABLE(13_0, 16_0);
 @end
+
+/// The protocol for the Color Cube with ColorSpace filter.
+///
+/// Uses a three-dimensional color table in a specified colorspace to transform the source image pixels.
 @protocol CIColorCubeWithColorSpace <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The dimension of the color cube.
   @property (nonatomic) float cubeDimension;
+  /// Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
   @property (nonatomic, retain) NSData *cubeData;
-  @property (nonatomic, nullable) CGColorSpaceRef colorSpace;
+  /// If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.
   @property (nonatomic) bool extrapolate NS_AVAILABLE(13_0, 16_0);
+  /// The CGColorSpace that defines the RGB values in the color table.
+  @property (nonatomic, nullable) CGColorSpaceRef colorSpace;
 @end
+
+/// The protocol for the Color Curves filter.
+///
+/// Uses a three-channel one-dimensional color table to transform the source image pixels.
 @protocol CIColorCurves <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Data containing a color table of floating-point RGB values.
   @property (nonatomic, retain) NSData *curvesData;
+  /// A two-element vector that defines the minimum and maximum RGB component values that are used to look up result values from the color table.
   @property (nonatomic, retain) CIVector *curvesDomain;
+  /// The CGColorSpace that defines the RGB values in the color table.
   @property (nonatomic, nullable) CGColorSpaceRef colorSpace;
 @end
+
+/// The protocol for the Color Invert filter.
+///
+/// Inverts the colors in an image.
 @protocol CIColorInvert <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Color Map filter.
+///
+/// Performs a nonlinear transformation of source color values using mapping values provided in a table.
 @protocol CIColorMap <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image data from this image transforms the source image values.
   @property (nonatomic, retain, nullable) CIImage *gradientImage;
 @end
+
+/// The protocol for the Color Monochrome filter.
+///
+/// Remaps colors so they fall within shades of a single color.
 @protocol CIColorMonochrome <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The monochrome color to apply to the image.
   @property (nonatomic, retain) CIColor *color;
+  /// The intensity of the monochrome effect. A value of 1.0 creates a monochrome image using the supplied color. A value of 0.0 has no effect on the image.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Color Posterize filter.
+///
+/// Remaps red, green, and blue color components to the number of brightness values you specify for each color component. This filter flattens colors to achieve a look similar to that of a silk-screened poster.
 @protocol CIColorPosterize <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The number of brightness levels to use for each color component. Lower values result in a more extreme poster effect.
   @property (nonatomic) float levels;
 @end
+
+/// A protocol for filters that convert an image between CIELAB color space and the Core Image RGB working space.
 @protocol CIConvertLab <CIFilter>
+  /// The image to convert.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The normalize Boolean defines the range of values in CIELAB space. 
+  /// * false: L is in the range `0...100` and A,B are in the range `-128...128`. 
+  /// * true:  L,A,B are in the range `0...1`.
   @property (nonatomic) bool normalize;
 @end
+
+/// The protocol for the Dither filter.
+///
+/// Apply dithering to an image. This operation is usually performed in a perceptual color space.
 @protocol CIDither <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The intensity of the effect.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Document Enhancer filter.
+///
+/// Enhance a document image by removing unwanted shadows, whitening the background, and enhancing contrast.
 @protocol CIDocumentEnhancer <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount of enhancement.
   @property (nonatomic) float amount;
 @end
+
+/// The protocol for the False Color filter.
+///
+/// Maps luminance to a color ramp of two colors. False color is often used to process astronomical and other scientific data, such as ultraviolet and X-ray images.
 @protocol CIFalseColor <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The first color to use for the color ramp.
   @property (nonatomic, retain) CIColor *color0;
+  /// The second color to use for the color ramp.
   @property (nonatomic, retain) CIColor *color1;
 @end
+
+/// The protocol for the Lab ∆E filter.
+///
+/// Produces an image with the Lab ∆E difference values between two images. The result image will contain ∆E 1994 values between 0.0 and 100.0 where 2.0 is considered a just noticeable difference.
 @protocol CILabDeltaE <CIFilter>
+  /// The first input image for comparison.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The second input image for comparison.
   @property (nonatomic, retain, nullable) CIImage *image2;
 @end
+
+/// The protocol for the Mask to Alpha filter.
+///
+/// Converts a grayscale image to a white image that is masked by alpha. The white values from the source image produce the inside of the mask; the black values become completely transparent.
 @protocol CIMaskToAlpha <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Maximum Component filter.
+///
+/// Converts an image to grayscale using the maximum of the three color components.
 @protocol CIMaximumComponent <CIFilter>
+  /// The image to process.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Minimum Component filter.
+///
+/// Converts an image to grayscale using the minimum of the three color components.
 @protocol CIMinimumComponent <CIFilter>
+  /// The image to process.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Palette Centroid filter.
+///
+/// Calculate the mean (x,y) image coordinates of a color palette.
 @protocol CIPaletteCentroid <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The input color palette, obtained using “CIKMeans“ filter.
   @property (nonatomic, retain, nullable) CIImage *paletteImage;
+  /// Specifies whether the color palette should be applied in a perceptual color space.
   @property (nonatomic) bool perceptual;
 @end
+
+/// The protocol for the Palettize filter.
+///
+/// Paint an image from a color palette obtained using “CIKMeans“.
 @protocol CIPalettize <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The input color palette, obtained using “CIKMeans“ filter.
   @property (nonatomic, retain, nullable) CIImage *paletteImage;
+  /// Specifies whether the color palette should be applied in a perceptual color space.
   @property (nonatomic) bool perceptual;
 @end
+
+/// The protocol for the Photo Effect Chrome filter.
+///
+/// Apply a “Chrome” style effect to an image.
 @protocol CIPhotoEffect <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.
   @property (nonatomic) bool extrapolate NS_AVAILABLE(14_0, 17_0);
 @end
+
+/// The protocol for the Sepia Tone filter.
+///
+/// Maps the colors of an image to various shades of brown.
 @protocol CISepiaTone <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The intensity of the sepia effect. A value of 1.0 creates a monochrome sepia image. A value of 0.0 has no effect on the image.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Thermal filter.
+///
+/// Apply a “Thermal” style effect to an image.
 @protocol CIThermal <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Vignette filter.
+///
+/// Applies a vignette shading to the corners of an image.
 @protocol CIVignette <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The intensity of the effect.
   @property (nonatomic) float intensity;
+  /// The distance from the center of the effect.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Vignette Effect filter.
+///
+/// Applies a vignette shading to the corners of an image.
 @protocol CIVignetteEffect <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The distance from the center of the effect.
   @property (nonatomic) float radius;
+  /// The intensity of the effect.
   @property (nonatomic) float intensity;
+  /// The falloff of the effect.
   @property (nonatomic) float falloff;
 @end
+
+/// The protocol for the X-Ray filter.
+///
+/// Apply an “XRay” style effect to an image.
 @protocol CIXRay <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
 
 // CICategoryDistortionEffect
+
+/// The protocol for the Bump Distortion filter.
+///
+/// Creates a concave or convex bump that originates at a specified point in the image.
 @protocol CIBumpDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The scale of the effect determines the curvature of the bump. A value of 0.0 has no effect. Positive values create an outward bump; negative values create an inward bump.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Bump Distortion Linear filter.
+///
+/// Creates a bump that originates from a linear portion of the image.
 @protocol CIBumpDistortionLinear <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The angle in radians of the line around which the distortion occurs.
   @property (nonatomic) float angle;
+  /// The scale of the effect.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Circle Splash Distortion filter.
+///
+/// Distorts the pixels starting at the circumference of a circle and emanating outward.
 @protocol CICircleSplashDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Circular Wrap Distortion filter.
+///
+/// Wraps an image around a transparent circle. The distortion of the image increases with the distance from the center of the circle.
 @protocol CICircularWrap <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The angle in radians of the effect.
   @property (nonatomic) float angle;
 @end
+
+/// The protocol for the Displacement Distortion filter.
+///
+/// Applies the grayscale values of the second image to the first image. The output image has a texture defined by the grayscale values.
 @protocol CIDisplacementDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// An image whose grayscale values will be applied to the source image.
   @property (nonatomic, retain, nullable) CIImage *displacementImage;
+  /// The amount of texturing of the resulting image. The larger the value, the greater the texturing.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Droste filter.
+///
+/// The Droste effect produces an infinite image by distorting an image into a spiral of the image within itself.
 @protocol CIDroste <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The first of two points that define the rectangular frame of the effect.
   @property (nonatomic) CGPoint insetPoint0;
+  /// The second of two points that define the rectangular frame of the effect.
   @property (nonatomic) CGPoint insetPoint1;
+  /// An integer number representing the amount of strands in the effect.
   @property (nonatomic) float strands;
+  /// An integer number representing the amount of intervals in the effect.
   @property (nonatomic) float periodicity;
+  /// A float number representing the angle of the rotation in radians.
   @property (nonatomic) float rotation;
+  /// A float number representing the zoom of the effect.
   @property (nonatomic) float zoom;
 @end
+
+/// The protocol for the Glass Distortion filter.
+///
+/// Distorts an image by applying a glass-like texture. The raised portions of the output image are the result of applying a texture map.
 @protocol CIGlassDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A texture to apply to the source image.
   @property (nonatomic, retain, nullable) CIImage *textureImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The amount of texturing of the resulting image. The larger the value, the greater the texturing.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Glass Lozenge filter.
+///
+/// Creates a lozenge-shaped lens and distorts the portion of the image over which the lens is placed.
 @protocol CIGlassLozenge <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The x and y position that defines the center of the circle at one end of the lozenge.
   @property (nonatomic) CGPoint point0;
+  /// The x and y position that defines the center of the circle at the other end of the lozenge.
   @property (nonatomic) CGPoint point1;
+  /// The radius of the lozenge. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The refraction of the glass.
   @property (nonatomic) float refraction;
 @end
+
+/// The protocol for the Hole Distortion filter.
+///
+/// Creates a circular area that pushes the image pixels outward, distorting those pixels closest to the circle the most.
 @protocol CIHoleDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Light Tunnel Distortion filter.
+///
+/// Light tunnel distortion.
 @protocol CILightTunnel <CIFilter>
+  /// The image to process.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// Rotation angle in radians of the light tunnel.
   @property (nonatomic) float rotation;
+  /// Center radius of the light tunnel.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Nine Part Stretched filter.
+///
+/// Distorts an image by stretching an image based on two input breakpoints.
 @protocol CINinePartStretched <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Lower left corner of image to retain before stretching begins.
   @property (nonatomic) CGPoint breakpoint0;
+  /// Upper right corner of image to retain after stretching ends.
   @property (nonatomic) CGPoint breakpoint1;
+  /// Vector indicating how much image should grow in pixels in both dimensions.
   @property (nonatomic) CGPoint growAmount;
 @end
+
+/// The protocol for the Nine Part Tiled filter.
+///
+/// Distorts an image by tiling an image based on two input breakpoints.
 @protocol CINinePartTiled <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Lower left corner of image to retain before tiling begins.
   @property (nonatomic) CGPoint breakpoint0;
+  /// Upper right corner of image to retain after tiling ends.
   @property (nonatomic) CGPoint breakpoint1;
+  /// Vector indicating how much image should grow in pixels in both dimensions.
   @property (nonatomic) CGPoint growAmount;
+  /// Indicates that Y-Axis flip should occur.
   @property (nonatomic) bool flipYTiles;
 @end
+
+/// The protocol for the Pinch Distortion filter.
+///
+/// Creates a rectangular-shaped area that pinches source pixels inward, distorting those pixels closest to the rectangle the most.
 @protocol CIPinchDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The amount of pinching. A value of 0.0 has no effect. A value of 1.0 is the maximum pinch.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Stretch Crop filter.
+///
+/// Distorts an image by stretching and or cropping to fit a target size.
 @protocol CIStretchCrop <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The size in pixels of the output image.
   @property (nonatomic) CGPoint size;
+  /// Determines if and how much cropping should be used to achieve the target size. If value is 0 then only stretching is used. If 1 then only cropping is used.
   @property (nonatomic) float cropAmount;
+  /// Determine how much the center of the image is stretched if stretching is used. If value is 0 then the center of the image maintains the original aspect ratio. If 1 then the image is stretched uniformly.
   @property (nonatomic) float centerStretchAmount;
 @end
+
+/// The protocol for the Torus Lens Distortion filter.
+///
+/// Creates a torus-shaped lens and distorts the portion of the image over which the lens is placed.
 @protocol CITorusLensDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The outer radius of the torus.
   @property (nonatomic) float radius;
+  /// The width of the ring.
   @property (nonatomic) float width;
+  /// The refraction of the glass.
   @property (nonatomic) float refraction;
 @end
+
+/// The protocol for the Twirl Distortion filter.
+///
+/// Rotates pixels around a point to give a twirling effect. You can specify the number of rotations as well as the center and radius of the effect.
 @protocol CITwirlDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The angle in radians of the twirl. Values can be positive or negative.
   @property (nonatomic) float angle;
 @end
+
+/// The protocol for the Vortex Distortion filter.
+///
+/// Rotates pixels around a point to simulate a vortex. You can specify the number of rotations as well the center and radius of the effect. 
 @protocol CIVortexDistortion <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
   @property (nonatomic) float radius;
+  /// The angle in radians of the effect.
   @property (nonatomic) float angle;
 @end
 
 // CICategoryTileEffect
+
+/// The protocol for the Affine Clamp filter.
+///
+/// Performs an affine transformation on a source image and then clamps the pixels at the edge of the transformed image, extending them outwards. This filter performs similarly to the “Affine Transform” filter except that it produces an image with infinite extent. You can use this filter when you need to blur an image but you want to avoid a soft, black fringe along the edges.
 @protocol CIAffineClamp <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The transform to apply to the image.
   @property (nonatomic) CGAffineTransform transform;
 @end
+
+/// The protocol for the Affine Tile filter.
+///
+/// Applies an affine transformation to an image and then tiles the transformed image.
 @protocol CIAffineTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The transform to apply to the image.
   @property (nonatomic) CGAffineTransform transform;
 @end
+
+/// The protocol for the Eightfold Reflected Tile filter.
+///
+/// Produces a tiled image from a source image by applying an 8-way reflected symmetry.
 @protocol CIEightfoldReflectedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Fourfold Reflected Tile filter.
+///
+/// Produces a tiled image from a source image by applying a 4-way reflected symmetry.
 @protocol CIFourfoldReflectedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
+  /// The primary angle for the repeating reflected tile. Small values create thin diamond tiles, and higher values create fatter reflected tiles.
   @property (nonatomic) float acuteAngle;
 @end
+
+/// The protocol for the Fourfold Rotated Tile filter.
+///
+/// Produces a tiled image from a source image by rotating the source at increments of 90 degrees.
 @protocol CIFourfoldRotatedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Fourfold Translated Tile filter.
+///
+/// Produces a tiled image from a source image by applying 4 translation operations.
 @protocol CIFourfoldTranslatedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
+  /// The primary angle for the repeating translated tile. Small values create thin diamond tiles, and higher values create fatter translated tiles.
   @property (nonatomic) float acuteAngle;
 @end
+
+/// The protocol for the Glide Reflected Tile filter.
+///
+/// Produces a tiled image from a source image by translating and smearing the image.
 @protocol CIGlideReflectedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Kaleidoscope filter.
+///
+/// Produces a kaleidoscopic image from a source image by applying 12-way symmetry.
 @protocol CIKaleidoscope <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The number of reflections in the pattern.
   @property (nonatomic) NSInteger count;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of reflection.
   @property (nonatomic) float angle;
 @end
+
+/// The protocol for the Op Tile filter.
+///
+/// Segments an image, applying any specified scaling and rotation, and then assembles the image again to give an op art appearance.
 @protocol CIOpTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The scale determines the number of tiles in the effect.
   @property (nonatomic) float scale;
+  /// The angle in radians of a tile.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Parallelogram Tile filter.
+///
+/// Warps an image by reflecting it in a parallelogram, and then tiles the result.
 @protocol CIParallelogramTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The primary angle for the repeating parallelogram tile. Small values create thin diamond tiles, and higher values create fatter parallelogram tiles.
   @property (nonatomic) float acuteAngle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Perspective Tile filter.
+///
+/// Applies a perspective transform to an image and then tiles the result.
 @protocol CIPerspectiveTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The top left coordinate of a tile.
   @property (nonatomic) CGPoint topLeft;
+  /// The top right coordinate of a tile.
   @property (nonatomic) CGPoint topRight;
+  /// The bottom right coordinate of a tile.
   @property (nonatomic) CGPoint bottomRight;
+  /// The bottom left coordinate of a tile.
   @property (nonatomic) CGPoint bottomLeft;
 @end
+
+/// The protocol for the Sixfold Reflected Tile filter.
+///
+/// Produces a tiled image from a source image by applying a 6-way reflected symmetry.
 @protocol CISixfoldReflectedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Sixfold Rotated Tile filter.
+///
+/// Produces a tiled image from a source image by rotating the source at increments of 60 degrees.
 @protocol CISixfoldRotatedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Triangle Kaleidoscope filter.
+///
+/// Maps a triangular portion of image to a triangular area and then generates a kaleidoscope effect.
 @protocol CITriangleKaleidoscope <CIFilter>
+  /// Input image to generate kaleidoscope effect from.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The x and y position to use as the center of the triangular area in the input image.
   @property (nonatomic) CGPoint point;
+  /// The size in pixels of the triangle.
   @property (nonatomic) float size;
+  /// Rotation angle in radians of the triangle.
   @property (nonatomic) float rotation;
+  /// The decay determines how fast the color fades from the center triangle.
   @property (nonatomic) float decay;
 @end
+
+/// The protocol for the Triangle Tile filter.
+///
+/// Maps a triangular portion of image to a triangular area and then tiles the result.
 @protocol CITriangleTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
+
+/// The protocol for the Twelvefold Reflected Tile filter.
+///
+/// Produces a tiled image from a source image by applying a 12-way reflected symmetry.
 @protocol CITwelvefoldReflectedTile <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The angle in radians of the tiled pattern.
   @property (nonatomic) float angle;
+  /// The width of a tile.
   @property (nonatomic) float width;
 @end
 
 // CICategoryGenerator
+
+/// The protocol for the Attributed Text Image Generator filter.
+///
+/// Generate an image attributed string.
 @protocol CIAttributedTextImageGenerator <CIFilter>
+  /// The attributed text to render.
   @property (nonatomic, retain) NSAttributedString *text;
+  /// The scale of the font to use for the generated text.
   @property (nonatomic) float scaleFactor;
-  @property (nonatomic) float padding  NS_AVAILABLE(13_0, 16_0);
+  /// A value for an additional number of pixels to pad around the text’s bounding box.
+  @property (nonatomic) float padding NS_AVAILABLE(13_0, 16_0);
 @end
+
+/// The protocol for the Aztec Code Generator filter.
+///
+/// Generate an Aztec barcode image for message data.
 @protocol CIAztecCodeGenerator <CIFilter>
+  /// The message to encode in the Aztec Barcode
   @property (nonatomic, retain) NSData *message;
+  /// Aztec error correction value between 5 and 95
   @property (nonatomic) float correctionLevel;
+  /// Aztec layers value between 1 and 32. Set to nil for automatic.
   @property (nonatomic) float layers;
+  /// Force a compact style Aztec code to @YES or @NO. Set to nil for automatic.
   @property (nonatomic) float compactStyle;
 @end
+
+/// The protocol for the Barcode Generator filter.
+///
+/// Generate a barcode image from a CIBarcodeDescriptor.
 @protocol CIBarcodeGenerator <CIFilter>
+  /// The CIBarcodeDescription object to generate an image for.
   @property (nonatomic, retain) CIBarcodeDescriptor *barcodeDescriptor;
 @end
+
+/// The protocol for the Blurred Rectangle Generator filter.
+///
+/// Generates a blurred rectangle image with the specified extent, blur sigma, and color.
 @protocol CIBlurredRectangleGenerator <CIFilter>
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The sigma for a gaussian blur.
   @property (nonatomic) float sigma;
+  /// A color.
   @property (nonatomic, retain) CIColor *color;
 @end
+
+/// The protocol for the Blurred Rounded Rectangle Generator filter.
+///
+/// Generates a blurred rounded rectangle image with the specified extent, corner radius, blur sigma, and color.
+@protocol CIBlurredRoundedRectangleGenerator <CIFilter>
+  /// A rectangle that defines the extent of the effect.
+  @property (nonatomic) CGRect extent;
+  /// The distance from the center of the effect.
+  @property (nonatomic) float radius;
+  /// A value to control the smoothness of the transition between the curved and linear edges of the shape.
+  @property (nonatomic) float smoothness;
+  /// The sigma for a gaussian blur.
+  @property (nonatomic) float sigma;
+  /// A color.
+  @property (nonatomic, retain) CIColor *color;
+@end
+
+/// The protocol for the Checkerboard filter.
+///
+/// Generates a pattern of squares of alternating colors. You can specify the size, colors, and the sharpness of the pattern.
 @protocol CICheckerboardGenerator <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// A color to use for the first set of squares.
   @property (nonatomic, retain) CIColor *color0;
+  /// A color to use for the second set of squares.
   @property (nonatomic, retain) CIColor *color1;
+  /// The width of the squares in the pattern.
   @property (nonatomic) float width;
+  /// The sharpness of the edges in pattern. The smaller the value, the more blurry the pattern. Values range from 0.0 to 1.0.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the Code 128 Barcode Generator filter.
+///
+/// Generate a Code 128 barcode image for message data.
 @protocol CICode128BarcodeGenerator <CIFilter>
+  /// The message to encode in the Code 128 Barcode
   @property (nonatomic, retain) NSData *message;
+  /// The number of empty white pixels that should surround the barcode.
   @property (nonatomic) float quietSpace;
+  /// The height of the generated barcode in pixels.
   @property (nonatomic) float barcodeHeight;
 @end
+
+/// The protocol for the Lenticular Halo filter.
+///
+/// Simulates a halo that is generated by the diffraction associated with the spread of a lens. This filter is typically applied to another image to simulate lens flares and similar effects.
 @protocol CILenticularHaloGenerator <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// A color.
   @property (nonatomic, retain) CIColor *color;
+  /// The radius of the halo.
   @property (nonatomic) float haloRadius;
+  /// The width of the halo, from its inner radius to its outer radius.
   @property (nonatomic) float haloWidth;
   @property (nonatomic) float haloOverlap;
+  /// The intensity of the halo colors. Larger values are more intense.
   @property (nonatomic) float striationStrength;
+  /// The contrast of the halo colors. Larger values are higher contrast.
   @property (nonatomic) float striationContrast;
+  /// The duration of the effect.
   @property (nonatomic) float time;
 @end
+
+/// The protocol for the Mesh Generator filter.
+///
+/// Generates a mesh from an array of line segments.
 @protocol CIMeshGenerator <CIFilter>
+  /// The width in pixels of the effect.
   @property (nonatomic) float width;
+  /// A color.
   @property (nonatomic, retain) CIColor *color;
+  /// An array of line segments stored as an array of CIVectors each containing a start point and end point.
   @property (nonatomic, retain) NSArray *mesh;
 @end
+
+/// The protocol for the PDF417 Barcode Generator filter.
+///
+/// Generate a PDF417 barcode image for message data.
 @protocol CIPDF417BarcodeGenerator <CIFilter>
+  /// The message to encode in the PDF417 Barcode
   @property (nonatomic, retain) NSData *message;
+  /// The minimum width of the generated barcode in pixels.
   @property (nonatomic) float minWidth;
+  /// The maximum width of the generated barcode in pixels.
   @property (nonatomic) float maxWidth;
+  /// The minimum height of the generated barcode in pixels.
   @property (nonatomic) float minHeight;
+  /// The maximum height of the generated barcode in pixels.
   @property (nonatomic) float maxHeight;
+  /// The number of data columns in the generated barcode
   @property (nonatomic) float dataColumns;
+  /// The number of rows in the generated barcode
   @property (nonatomic) float rows;
+  /// The preferred aspect ratio of the generated barcode
   @property (nonatomic) float preferredAspectRatio;
+  /// The compaction mode of the generated barcode.
   @property (nonatomic) float compactionMode;
+  /// Force a compact style Aztec code to @YES or @NO. Set to nil for automatic.
   @property (nonatomic) float compactStyle;
+  /// The correction level ratio of the generated barcode
   @property (nonatomic) float correctionLevel;
+  /// Force compaction style to @YES or @NO. Set to nil for automatic.
   @property (nonatomic) float alwaysSpecifyCompaction;
 @end
+
+/// The protocol for the QR Code Generator filter.
+///
+/// Generate a QR Code image for message data.
 @protocol CIQRCodeGenerator <CIFilter>
+  /// The message to encode in the QR Code
   @property (nonatomic, retain) NSData *message;
+  /// QR Code correction level L, M, Q, or H.
   @property (nonatomic, retain) NSString *correctionLevel;
 @end
+
+/// The protocol for the Random Generator filter.
+///
+/// Generates an image of infinite extent whose pixel values are made up of four independent, uniformly-distributed random numbers in the 0 to 1 range.
 @protocol CIRandomGenerator <CIFilter>
 @end
+
+/// The protocol for the Rounded QR Code Generator filter.
+///
+/// Generate a QR Code image for message data.
+@protocol CIRoundedQRCodeGenerator <CIFilter>
+  /// The message to encode in the QR Code
+  @property (nonatomic, retain) NSData *message;
+  /// QR Code correction level L, M, Q, or H.
+  @property (nonatomic, retain) NSString *correctionLevel;
+  /// The scale factor to enlarge the QRCode by.
+  @property (nonatomic) float scale;
+  /// If 1, then the Finder Patterns in the QRCode should have a rounded appearance. If 2, then the Alignment Patterns will also be rounded
+  @property (nonatomic) NSInteger roundedMarkers;
+  /// If true then the data points in the QRCode should have a rounded appearance.
+  @property (nonatomic) bool roundedData;
+  /// The fraction of the center space of the QRCode to fill with Color 1. If the size is 0.0 or the Correction Level is L or M, the center of the QRCode will be unaltered. The size will be limited to 0.25 if the Correction Level is Q. The size will be limited to 0.33 if the Correction Level is H.
+  @property (nonatomic) float centerSpaceSize;
+  /// The background color for the QRCode
+  @property (nonatomic, retain) CIColor *color0;
+  /// The foreground color for the QRCode
+  @property (nonatomic, retain) CIColor *color1;
+@end
+
+/// The protocol for the Rounded Rectangle Generator filter.
+///
+/// Generates a rounded rectangle image with the specified extent, corner radius, and color.
 @protocol CIRoundedRectangleGenerator <CIFilter>
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The distance from the center of the effect.
   @property (nonatomic) float radius;
+  /// A value to control the smoothness of the transition between the curved and linear edges of the shape.
+  @property (nonatomic) float smoothness NS_AVAILABLE(16_0, 19_0);
+  /// A color.
   @property (nonatomic, retain) CIColor *color;
 @end
+
+/// The protocol for the Rounded Rectangle Stroke Generator filter.
+///
+/// Generates a rounded rectangle stroke image with the specified extent, corner radius, stroke width, and color.
 @protocol CIRoundedRectangleStrokeGenerator <CIFilter>
+  /// A rectangle that defines the extent of the effect.
   @property (nonatomic) CGRect extent;
+  /// The distance from the center of the effect.
   @property (nonatomic) float radius;
-  @property (nonatomic) float width;
+  /// A value to control the smoothness of the transition between the curved and linear edges of the shape.
+  @property (nonatomic) float smoothness NS_AVAILABLE(16_0, 19_0);
+  /// A color.
   @property (nonatomic, retain) CIColor *color;
+  /// The width in pixels of the effect.
+  @property (nonatomic) float width;
 @end
+
+/// The protocol for the Star Shine filter.
+///
+/// Generates a starburst pattern. The output image is typically used as input to another filter.
 @protocol CIStarShineGenerator <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The color to use for the outer shell of the circular star.
   @property (nonatomic, retain) CIColor *color;
+  /// The radius of the star.
   @property (nonatomic) float radius;
+  /// The size of the cross pattern.
   @property (nonatomic) float crossScale;
+  /// The angle in radians of the cross pattern.
   @property (nonatomic) float crossAngle;
+  /// The opacity of the cross pattern.
   @property (nonatomic) float crossOpacity;
+  /// The width of the cross pattern.
   @property (nonatomic) float crossWidth;
+  /// The length of the cross spikes.
   @property (nonatomic) float epsilon;
 @end
+
+/// The protocol for the Stripes filter.
+///
+/// Generates a stripe pattern. You can control the color of the stripes, the spacing, and the contrast.
 @protocol CIStripesGenerator <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// A color to use for the odd stripes.
   @property (nonatomic, retain) CIColor *color0;
+  /// A color to use for the even stripes.
   @property (nonatomic, retain) CIColor *color1;
+  /// The width of a stripe.
   @property (nonatomic) float width;
+  /// The sharpness of the stripe pattern. The smaller the value, the more blurry the pattern. Values range from 0.0 to 1.0.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the Sunbeams filter.
+///
+/// Generates a sun effect. You typically use the output of the sunbeams filter as input to a composite filter.
 @protocol CISunbeamsGenerator <CIFilter>
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The color of the sun.
   @property (nonatomic, retain) CIColor *color;
+  /// The radius of the sun.
   @property (nonatomic) float sunRadius;
+  /// The radius of the sunbeams.
   @property (nonatomic) float maxStriationRadius;
+  /// The intensity of the sunbeams. Higher values result in more intensity.
   @property (nonatomic) float striationStrength;
+  /// The contrast of the sunbeams. Higher values result in more contrast.
   @property (nonatomic) float striationContrast;
+  /// The duration of the effect.
   @property (nonatomic) float time;
 @end
+
+/// The protocol for the Text Image Generator filter.
+///
+/// Generate an image from a string and font information.
 @protocol CITextImageGenerator <CIFilter>
+  /// The text to render.
   @property (nonatomic, retain) NSString *text;
+  /// The name of the font to use for the generated text.
   @property (nonatomic, retain) NSString *fontName;
+  /// The size of the font to use for the generated text.
   @property (nonatomic) float fontSize;
+  /// The scale of the font to use for the generated text.
   @property (nonatomic) float scaleFactor;
-  @property (nonatomic) float padding  NS_AVAILABLE(13_0, 16_0);
+  /// The number of additional pixels to pad around the text’s bounding box.
+  @property (nonatomic) float padding NS_AVAILABLE(13_0, 16_0);
 @end
 
 // CICategoryStylize
+
+/// The protocol for the Blend With Alpha Mask filter.
+///
+/// Uses values from a mask image to interpolate between an image and the background. When a mask alpha value is 0.0, the result is the background. When the mask alpha value is 1.0, the result is the image.
 @protocol CIBlendWithMask <CIFilter>
+  /// The image to use as a foreground image.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image to use as a background image.
   @property (nonatomic, retain, nullable) CIImage *backgroundImage;
+  /// A masking image.
   @property (nonatomic, retain, nullable) CIImage *maskImage;
 @end
+
+/// The protocol for the Bloom filter.
+///
+/// Softens edges and applies a pleasant glow to an image.
 @protocol CIBloom <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the effect. The larger the radius, the greater the effect.
   @property (nonatomic) float radius;
+  /// The intensity of the effect. A value of 0.0 is no effect. A value of 1.0 is the maximum effect.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Canny Edge Detector filter.
+///
+/// Applies the Canny Edge Detection algorithm to an image.
 @protocol CICannyEdgeDetector <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The gaussian sigma of blur to apply to the image to reduce high-frequency noise.
   @property (nonatomic) float gaussianSigma;
+  /// Specifies whether the edge thresholds should be computed in a perceptual color space.
   @property (nonatomic) bool perceptual;
+  /// The threshold that determines if gradient magnitude is a strong edge.
   @property (nonatomic) float thresholdHigh;
+  /// The threshold that determines if gradient magnitude is a weak edge.
   @property (nonatomic) float thresholdLow;
+  /// The number of hysteresis passes to apply to promote weak edge pixels.
   @property (nonatomic) NSInteger hysteresisPasses;
 @end
+
+/// The protocol for the Comic Effect filter.
+///
+/// Simulates a comic book drawing by outlining edges and applying a color halftone effect.
 @protocol CIComicEffect <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the 3 by 3 Convolution filter.
+///
+/// Convolution with 3 by 3 matrix.
 @protocol CIConvolution <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A vector containing the 9 weights of the convolution kernel.
   @property (nonatomic, retain) CIVector *weights;
+  /// A value that is added to the RGBA components of the output pixel.
   @property (nonatomic) float bias;
 @end
+
+/// The protocol for the CoreML Model Filter filter.
+///
+/// Generates output image by applying input CoreML model to the input image.
 @protocol CICoreMLModel <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The CoreML model to be used for applying effect on the image.
   @property (nonatomic, retain) MLModel *model;
+  /// A number to specify which output of a multi-head CoreML model should be used for applying effect on the image.
   @property (nonatomic) float headIndex;
+  /// A boolean value to specify that Softmax normalization should be applied to the output of the model.
   @property (nonatomic) bool softmaxNormalization;
 @end
+
+/// The protocol for the Crystallize filter.
+///
+/// Creates polygon-shaped color blocks by aggregating source pixel-color values.
 @protocol CICrystallize <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the effect. The larger the radius, the larger the resulting crystals.
   @property (nonatomic) float radius;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
 @end
+
+/// The protocol for the Depth of Field filter.
+///
+/// Simulates miniaturization effect created by Tilt & Shift lens by performing depth of field effects.
 @protocol CIDepthOfField <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The first of two points defining a line in the image that should remain in focus
   @property (nonatomic) CGPoint point0;
+  /// The second of two points defining a line in the image that should remain in focus
   @property (nonatomic) CGPoint point1;
+  /// The amount to adjust the saturation.
   @property (nonatomic) float saturation;
+  /// A float number representing the radius of the unsharpened mask effect applied to the in-focus area of effect.
   @property (nonatomic) float unsharpMaskRadius;
+  /// A float number representing the intensity of the unsharp mask effect applied to the in-focus area of effect.
   @property (nonatomic) float unsharpMaskIntensity;
+  /// A float representing how much to blur the portion of the image that is not near the focus line.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Edges filter.
+///
+/// Finds all edges in an image and displays them in color.
 @protocol CIEdges <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The intensity of the edges. The larger the value, the higher the intensity.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Edge Work filter.
+///
+/// Produces a stylized black-and-white rendition of an image that looks similar to a woodblock cutout.
 @protocol CIEdgeWork <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The thickness of the edges. The larger the value, the thicker the edges.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Gabor Gradients filter.
+///
+/// Applies multichannel 5 by 5 Gabor gradient filter to an image. The resulting image has maximum horizontal gradient in the red channel and the maximum vertical gradient in the green channel. The gradient values can be positive or negative.
 @protocol CIGaborGradients <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Gloom filter.
+///
+/// Dulls the highlights of an image.
 @protocol CIGloom <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the effect. The larger the radius, the greater the effect.
   @property (nonatomic) float radius;
+  /// The intensity of the effect. A value of 0.0 is no effect. A value of 1.0 is the maximum effect.
   @property (nonatomic) float intensity;
 @end
+
+/// The protocol for the Height Field From Mask filter.
+///
+/// Produces a continuous three-dimensional, loft-shaped height field from a grayscale mask. The white values of the mask define those pixels that are inside the height field while the black values define those pixels that are outside. The field varies smoothly and continuously inside the mask, reaching the value 0 at the edge of the mask. You can use this filter with the Shaded Material filter to produce extremely realistic shaded objects.
 @protocol CIHeightFieldFromMask <CIFilter>
+  /// The white values of the mask define those pixels that are inside the height field while the black values define those pixels that are outside. The field varies smoothly and continuously inside the mask, reaching the value 0 at the edge of the mask.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The distance from the edge of the mask for the smooth transition is proportional to the input radius. Larger values make the transition smoother and more pronounced. Smaller values make the transition approximate a fillet radius.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Hexagonal Pixelate filter.
+///
+/// Displays an image as colored hexagons whose color is an average of the pixels they replace.
 @protocol CIHexagonalPixellate <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The scale determines the size of the hexagons. Larger values result in larger hexagons.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Highlight and Shadow Adjust filter.
+///
+/// Adjust the tonal mapping of an image while preserving spatial detail.
 @protocol CIHighlightShadowAdjust <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Shadow Highlight Radius.
   @property (nonatomic) float radius;
+  /// The amount of adjustment to the shadows of the image.
   @property (nonatomic) float shadowAmount;
+  /// The amount of adjustment to the highlights of the image.
   @property (nonatomic) float highlightAmount;
 @end
+
+/// The protocol for the Line Overlay filter.
+///
+/// Creates a sketch that outlines the edges of an image in black, leaving the non-outlined portions of the image transparent. The result has alpha and is rendered in black, so it won’t look like much until you render it over another image using source over compositing.
 @protocol CILineOverlay <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The noise level of the image (used with camera data) that gets removed before tracing the edges of the image. Increasing the noise level helps to clean up the traced edges of the image.
   @property (nonatomic) float NRNoiseLevel;
+  /// The amount of sharpening done when removing noise in the image before tracing the edges of the image. This improves the edge acquisition.
   @property (nonatomic) float NRSharpness;
+  /// The accentuation factor of the Sobel gradient information when tracing the edges of the image. Higher values find more edges, although typically a low value (such as 1.0) is used.
   @property (nonatomic) float edgeIntensity;
+  /// This value determines edge visibility. Larger values thin out the edges.
   @property (nonatomic) float threshold;
+  /// The amount of anti-aliasing to use on the edges produced by this filter. Higher values produce higher contrast edges (they are less anti-aliased).
   @property (nonatomic) float contrast;
 @end
+
+/// The protocol for the Mix filter.
+///
+/// Uses an amount parameter to interpolate between an image and a background image. When value is 0.0 or less, the result is the background image. When the value is 1.0 or more, the result is the image.
 @protocol CIMix <CIFilter>
+  /// The image to use as a foreground image.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image to use as a background image.
   @property (nonatomic, retain, nullable) CIImage *backgroundImage;
+  /// The amount of the effect.
   @property (nonatomic) float amount;
 @end
+
+/// The protocol for the Person Segmentation filter.
+///
+/// Returns a segmentation mask that is red in the portions of an image that are likely to be persons. The returned image may have a different size and aspect ratio from the input image.
 @protocol CIPersonSegmentation <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// Determines the size and quality of the resulting segmentation mask. The value can be a number where 0 is accurate, 1 is balanced, and 2 is fast.
   @property (nonatomic) NSUInteger qualityLevel;
 @end
+
+/// The protocol for the Pixelate filter.
+///
+/// Makes an image blocky.
 @protocol CIPixellate <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The scale determines the size of the squares. Larger values result in larger squares.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Pointillize filter.
+///
+/// Renders the source image in a pointillistic style.
 @protocol CIPointillize <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius of the circles in the resulting pattern.
   @property (nonatomic) float radius;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
 @end
+
+/// The protocol for the Saliency Map Filter filter.
+///
+/// Generates output image as a saliency map of the input image.
 @protocol CISaliencyMap <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Shaded Material filter.
+///
+/// Produces a shaded image from a height field. The height field is defined to have greater heights with lighter shades, and lesser heights (lower areas) with darker shades. You can combine this filter with the “Height Field From Mask” filter to produce quick shadings of masks, such as text.
 @protocol CIShadedMaterial <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The image to use as the height field. The resulting image has greater heights with lighter shades, and lesser heights (lower areas) with darker shades.
   @property (nonatomic, retain, nullable) CIImage *shadingImage;
+  /// The scale of the effect. The higher the value, the more dramatic the effect.
   @property (nonatomic) float scale;
 @end
+
+/// The protocol for the Sobel Gradients filter.
+///
+/// Applies multichannel 3 by 3 Sobel gradient filter to an image. The resulting image has maximum horizontal gradient in the red channel and the maximum vertical gradient in the green channel. The gradient values can be positive or negative.
 @protocol CISobelGradients <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Spot Color filter.
+///
+/// Replaces one or more color ranges with spot colors.
 @protocol CISpotColor <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center value of the first color range to replace.
   @property (nonatomic, retain) CIColor *centerColor1;
+  /// A replacement color for the first color range.
   @property (nonatomic, retain) CIColor *replacementColor1;
+  /// A value that indicates how close the first color must match before it is replaced.
   @property (nonatomic) float closeness1;
+  /// The contrast of the first replacement color.
   @property (nonatomic) float contrast1;
+  /// The center value of the second color range to replace.
   @property (nonatomic, retain) CIColor *centerColor2;
+  /// A replacement color for the second color range.
   @property (nonatomic, retain) CIColor *replacementColor2;
+  /// A value that indicates how close the second color must match before it is replaced.
   @property (nonatomic) float closeness2;
+  /// The contrast of the second replacement color.
   @property (nonatomic) float contrast2;
+  /// The center value of the third color range to replace.
   @property (nonatomic, retain) CIColor *centerColor3;
+  /// A replacement color for the third color range.
   @property (nonatomic, retain) CIColor *replacementColor3;
+  /// A value that indicates how close the third color must match before it is replaced.
   @property (nonatomic) float closeness3;
+  /// The contrast of the third replacement color.
   @property (nonatomic) float contrast3;
 @end
+
+/// The protocol for the Spot Light filter.
+///
+/// Applies a directional spotlight effect to an image.
 @protocol CISpotLight <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The x and y position of the spotlight.
   @property (nonatomic, retain) CIVector *lightPosition;
+  /// The x and y position that the spotlight points at.
   @property (nonatomic, retain) CIVector *lightPointsAt;
+  /// The brightness of the spotlight.
   @property (nonatomic) float brightness;
+  /// The spotlight size. The smaller the value, the more tightly focused the light beam.
   @property (nonatomic) float concentration;
+  /// The color of the spotlight.
   @property (nonatomic, retain) CIColor *color;
 @end
 
 // CICategoryBlur
+
+/// The protocol for the Bokeh Blur filter.
+///
+/// Smooths an image using a disc-shaped convolution kernel.
 @protocol CIBokehBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
   @property (nonatomic) float radius;
+  /// The amount of extra emphasis at the ring of the bokeh.
   @property (nonatomic) float ringAmount;
+  /// The size of extra emphasis at the ring of the bokeh.
   @property (nonatomic) float ringSize;
+  /// The softness of the bokeh effect.
   @property (nonatomic) float softness;
 @end
+
+/// The protocol for the Box Blur filter.
+///
+/// Smooths or sharpens an image using a box-shaped convolution kernel.
 @protocol CIBoxBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Disc Blur filter.
+///
+/// Smooths an image using a disc-shaped convolution kernel.
 @protocol CIDiscBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Gaussian Blur filter.
+///
+/// Spreads source pixels by an amount specified by a Gaussian distribution.
 @protocol CIGaussianBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Masked Variable Blur filter.
+///
+/// Blurs an image according to the brightness levels in a mask image.
 @protocol CIMaskedVariableBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The mask image that determines how much to blur the image. The mask’s green channel value from 0.0 to 1.0 determines if the image is not blurred or blurred by the full radius.
   @property (nonatomic, retain, nullable) CIImage *mask;
+  /// A value that governs the maximum blur radius to apply.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Median filter.
+///
+/// Computes the median value for a group of neighboring pixels and replaces each pixel value with the median. The effect is to reduce noise.
 @protocol CIMedian <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
 @end
+
+/// The protocol for the Morphology Gradient filter.
+///
+/// Finds the edges of an image by returning the difference between the morphological minimum and maximum operations to the image.
 @protocol CIMorphologyGradient <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The desired radius of the circular morphological operation to the image.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Morphology Maximum filter.
+///
+/// Lightens areas of an image by applying a circular morphological maximum operation to the image.
 @protocol CIMorphologyMaximum <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The desired radius of the circular morphological operation to the image.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Morphology Minimum filter.
+///
+/// Darkens areas of an image by applying a circular morphological maximum operation to the image.
 @protocol CIMorphologyMinimum <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The desired radius of the circular morphological operation to the image.
   @property (nonatomic) float radius;
 @end
+
+/// The protocol for the Morphology Rectangle Maximum filter.
+///
+/// Lightens areas of an image by applying a rectangular morphological maximum operation to the image.
 @protocol CIMorphologyRectangleMaximum <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The width in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
   @property (nonatomic) float width;
+  /// The height in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
   @property (nonatomic) float height;
 @end
+
+/// The protocol for the Morphology Rectangle Minimum filter.
+///
+/// Darkens areas of an image by applying a rectangular morphological maximum operation to the image.
 @protocol CIMorphologyRectangleMinimum <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The width in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
   @property (nonatomic) float width;
+  /// The height in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
   @property (nonatomic) float height;
 @end
+
+/// The protocol for the Motion Blur filter.
+///
+/// Blurs an image to simulate the effect of using a camera that moves a specified angle and distance while capturing the image.
 @protocol CIMotionBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
   @property (nonatomic) float radius;
+  /// The angle in radians of the motion determines which direction the blur smears.
   @property (nonatomic) float angle;
 @end
+
+/// The protocol for the Noise Reduction filter.
+///
+/// Reduces noise using a threshold value to define what is considered noise. Small changes in luminance below that value are considered noise and get a noise reduction treatment, which is a local blur. Changes above the threshold value are considered edges, so they are sharpened.
 @protocol CINoiseReduction <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The amount of noise reduction. The larger the value, the more noise reduction.
   @property (nonatomic) float noiseLevel;
+  /// The sharpness of the final image. The larger the value, the sharper the result.
   @property (nonatomic) float sharpness;
 @end
+
+/// The protocol for the Zoom Blur filter.
+///
+/// Simulates the effect of zooming the camera while capturing the image.
 @protocol CIZoomBlur <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The center of the effect as x and y pixel coordinates.
   @property (nonatomic) CGPoint center;
+  /// The zoom-in amount. Larger values result in more zooming in.
   @property (nonatomic) float amount;
 @end
 
 // CICategoryReduction
+
+/// A protocol for filters that perform a reduction calculation on an image.
 @protocol CIAreaReductionFilter <CIFilter>
+  /// The image to use as the input for the reduction filter.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// A rectangle that, when intersected with the input image extent, 
+  /// defines the extent of the reduction calculation.
   @property (nonatomic) CGRect extent;
 @end
+
+/// The protocol for the Area Average filter.
+///
+/// Calculates the average color for the specified area in an image, returning the result in a pixel.
 @protocol CIAreaAverage <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Average and Maximum Red filter.
+///
+/// Calculates the average and maximum red component value for the specified area in an image. The result is returned in the red and green channels of a one pixel image.
+@protocol CIAreaAverageMaximumRed <CIAreaReductionFilter>
+@end
+
+/// The protocol for the Area Bounds Red filter.
+///
+/// Calculates the approximate bounding box of pixels within the specified area of an image where the red component values are non-zero. The result is 1x1 pixel image where the RGBA values contain the normalized X,Y,W,H dimensions of the bounding box.
 @protocol CIAreaBoundsRed <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Histogram filter.
+///
+/// Calculates histograms of the R, G, B, and A channels of the specified area of an image. The output image is a one pixel tall image containing the histogram data for all four channels.
 @protocol CIAreaHistogram <CIAreaReductionFilter>
+  /// The scale value to use for the histogram values. If the scale is 1.0, then the bins in the resulting image will add up to 1.0.
   @property (nonatomic) float scale;
+  /// The number of bins for the histogram. This value will determine the width of the output image.
   @property (nonatomic) NSInteger count;
 @end
+
+/// The protocol for the Area Logarithmic Histogram filter.
+///
+/// Calculates histogram of the R, G, B, and A channels of the specified area of an image. Before binning, the R, G, and B channel values are transformed by the log base two function. The output image is a one pixel tall image containing the histogram data for all four channels.
 @protocol CIAreaLogarithmicHistogram <CIAreaReductionFilter>
+  /// The amount of the effect.
   @property (nonatomic) float scale;
+  /// The number of bins for the histogram. This value will determine the width of the output image.
   @property (nonatomic) NSInteger count;
+  /// The minimum of the range of color channel values to be in the logarithmic histogram image.
   @property (nonatomic) float minimumStop;
+  /// The maximum of the range of color channel values to be in the logarithmic histogram image.
   @property (nonatomic) float maximumStop;
 @end
+
+/// The protocol for the Area Maximum filter.
+///
+/// Calculates the maximum component values for the specified area in an image, returning the result in a pixel.
 @protocol CIAreaMaximum <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Maximum Alpha filter.
+///
+/// Finds and returns the pixel with the maximum alpha value.
 @protocol CIAreaMaximumAlpha <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Minimum filter.
+///
+/// Calculates the minimum component values for the specified area in an image, returning the result in a pixel.
 @protocol CIAreaMinimum <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Minimum Alpha filter.
+///
+/// Finds and returns the pixel with the minimum alpha value.
 @protocol CIAreaMinimumAlpha <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Min and Max filter.
+///
+/// Calculates the per-component minimum and maximum value for the specified area in an image. The result is returned in a 2x1 image where the component minimum values are stored in the pixel on the left.
 @protocol CIAreaMinMax <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Area Min and Max Red filter.
+///
+/// Calculates the minimum and maximum red component value for the specified area in an image. The result is returned in the red and green channels of a one pixel image.
 @protocol CIAreaMinMaxRed <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Column Average filter.
+///
+/// Calculates the average color for each column of the specified area in an image, returning the result in a 1D image.
 @protocol CIColumnAverage <CIAreaReductionFilter>
 @end
+
+/// The protocol for the Histogram Display filter.
+///
+/// Generates a displayable histogram image from the output of the “Area Histogram” filter.
 @protocol CIHistogramDisplay <CIFilter>
+  /// The image to use as an input for the effect.
   @property (nonatomic, retain, nullable) CIImage *inputImage;
+  /// The height of the displayable histogram image.
   @property (nonatomic) float height;
+  /// The fraction of the right portion of the histogram image to make lighter.
   @property (nonatomic) float highLimit;
+  /// The fraction of the left portion of the histogram image to make darker.
   @property (nonatomic) float lowLimit;
 @end
+
+/// The protocol for the KMeans filter.
+///
+/// Create a palette of the most common colors found in the image.
 @protocol CIKMeans <CIAreaReductionFilter>
+  /// Specifies the color seeds to use for k-means clustering, either passed as an image or an array of colors.
   @property (nonatomic, retain, nullable) CIImage *inputMeans;
+  /// Specifies how many k-means color clusters should be used.
   @property (nonatomic) NSInteger count;
+  /// Specifies how many k-means passes should be performed.
   @property (nonatomic) float passes;
+  /// Specifies whether the k-means color palette should be computed in a perceptual color space.
   @property (nonatomic) bool perceptual;
 @end
+
+/// The protocol for the Row Average filter.
+///
+/// Calculates the average color for each row of the specified area in an image, returning the result in a 1D image.
 @protocol CIRowAverage <CIAreaReductionFilter>
 @end
 
@@ -1028,10 +2457,12 @@
 @interface CIFilter (Builtins)
 
 // CICategoryGradient
++ (CIFilter<CIDistanceGradientFromRedMask>*) distanceGradientFromRedMaskFilter NS_AVAILABLE(16_0, 19_0);
 + (CIFilter<CIGaussianGradient>*) gaussianGradientFilter;
 + (CIFilter<CIHueSaturationValueGradient>*) hueSaturationValueGradientFilter;
 + (CIFilter<CILinearGradient>*) linearGradientFilter;
 + (CIFilter<CIRadialGradient>*) radialGradientFilter;
++ (CIFilter<CISignedDistanceGradientFromRedMask>*) signedDistanceGradientFromRedMaskFilter NS_AVAILABLE(16_0, 19_0);
 + (CIFilter<CISmoothLinearGradient>*) smoothLinearGradientFilter;
 
 // CICategorySharpen
@@ -1119,6 +2550,7 @@
 + (CIFilter<CIHueAdjust>*) hueAdjustFilter;
 + (CIFilter<CILinearToSRGBToneCurve>*) linearToSRGBToneCurveFilter;
 + (CIFilter<CISRGBToneCurveToLinear>*) sRGBToneCurveToLinearFilter;
++ (CIFilter<CISystemToneMap>*) systemToneMapFilter NS_AVAILABLE(16_0, 19_0);
 + (CIFilter<CITemperatureAndTint>*) temperatureAndTintFilter;
 + (CIFilter<CIToneCurve>*) toneCurveFilter;
 + (CIFilter<CIToneMapHeadroom>*) toneMapHeadroomFilter NS_AVAILABLE(15_0, 18_0);
@@ -1202,6 +2634,7 @@
 + (CIFilter<CIAztecCodeGenerator>*) aztecCodeGeneratorFilter;
 + (CIFilter<CIBarcodeGenerator>*) barcodeGeneratorFilter;
 + (CIFilter<CIBlurredRectangleGenerator>*) blurredRectangleGeneratorFilter NS_AVAILABLE(14_0, 17_0);
++ (CIFilter<CIBlurredRoundedRectangleGenerator>*) blurredRoundedRectangleGeneratorFilter NS_AVAILABLE(16_0, 19_0);
 + (CIFilter<CICheckerboardGenerator>*) checkerboardGeneratorFilter;
 + (CIFilter<CICode128BarcodeGenerator>*) code128BarcodeGeneratorFilter;
 + (CIFilter<CILenticularHaloGenerator>*) lenticularHaloGeneratorFilter;
@@ -1209,6 +2642,7 @@
 + (CIFilter<CIPDF417BarcodeGenerator>*) PDF417BarcodeGenerator;
 + (CIFilter<CIQRCodeGenerator>*) QRCodeGenerator;
 + (CIFilter<CIRandomGenerator>*) randomGeneratorFilter;
++ (CIFilter<CIRoundedQRCodeGenerator>*) roundedQRCodeGeneratorFilter NS_AVAILABLE(16_0, 19_0);
 + (CIFilter<CIRoundedRectangleGenerator>*) roundedRectangleGeneratorFilter;
 + (CIFilter<CIRoundedRectangleStrokeGenerator>*) roundedRectangleStrokeGeneratorFilter NS_AVAILABLE(14_0, 17_0);
 + (CIFilter<CIStarShineGenerator>*) starShineGeneratorFilter;
@@ -1274,6 +2708,7 @@
 // CICategoryReduction
 + (CIFilter<CIAreaHistogram>*) areaAlphaWeightedHistogramFilter NS_AVAILABLE(15_0, 18_0);
 + (CIFilter<CIAreaAverage>*) areaAverageFilter NS_AVAILABLE(11_0, 14_0);
++ (CIFilter<CIAreaAverageMaximumRed>*) areaAverageMaximumRedFilter NS_AVAILABLE(16_0, 19_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);
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h	2025-04-19 05:08:12
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImage.h	2025-05-24 05:16:38
@@ -30,7 +30,7 @@
 
 @protocol MTLTexture;
 
-NS_CLASS_AVAILABLE(10_4, 5_0)
+NS_CLASS_AVAILABLE(10_4, 5_0) NS_SWIFT_SENDABLE
 @interface CIImage : NSObject <NSSecureCoding, NSCopying>
 {
 #if TARGET_OS_OSX || TARGET_OS_MACCATALYST
@@ -95,9 +95,23 @@
 
 /* A CGColorSpaceRef defining the color space of the image. This value
  * overrides the image's implicit color space.
- * If [NSNull null] then dont color manage the image. */
+ * If [NSNull null] then don't color manage the image. */
 CORE_IMAGE_EXPORT CIImageOption const kCIImageColorSpace;
 
+/// A Boolean value to control whether an image created with a CVPixelBuffer or an IOSurface
+/// should be cropped and offset according clean aperture attachments.
+///
+/// For a `CVPixelBuffer` this will use `kCVImageBufferPreferredCleanApertureKey` 
+/// or `kCVImageBufferCleanApertureKey`.
+///
+/// If the value for this option is:
+/// * True: then image will be cropped and offset to the clean aperture.
+/// * False: then the full image is returned.
+/// * ``CIVector`` : then use it as a `CGRect` to crop and offset.
+/// * Not specified : then it will behave as if False was specified.
+///
+CORE_IMAGE_EXPORT CIImageOption const kCIImageApplyCleanAperture NS_AVAILABLE(16_0, 19_0); 
+
 /* A boolean value specifying whether an image returned by [CIImage with...] should have kernels
  * applied that will tone map to standard dynamic range (SDR).
  * The option will only have an effect if the image has a CGColorSpace that is high dynamic range (HDR).
@@ -119,19 +133,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.
- */
+/// A value for overriding the automatic behavior of the Content Headroom property 
+/// when creating an image.
+///
+/// The value for this key should be an `NSNumber` instance.
 CORE_IMAGE_EXPORT CIImageOption const kCIImageContentHeadroom NS_AVAILABLE(15_0, 18_0);
 
+/// A value for overriding the automatic behavior of the Content Average Light Level property 
+/// when creating an image.
+///
+/// The value for this key should be an `NSNumber` instance.
+CORE_IMAGE_EXPORT CIImageOption const kCIImageContentAverageLightLevel NS_AVAILABLE(16_0, 19_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.
  * If this option value is @NO, then the image will be sampled using bilinear interpolation.
@@ -436,47 +449,122 @@
 /* Return a new image with alpha set to 1 within the rectangle and 0 outside. */
 - (CIImage *)imageBySettingAlphaOneInExtent:(CGRect)extent NS_AVAILABLE(10_12, 10_0);
 
-/* Return a new image by applying a gaussian blur to the receiver. */
+/// Create an image by applying a gaussian blur to the receiver.
+/// - Parameters:
+///    - sigma: The sigma of the gaussian blur to apply to the receiver.
+///             If the sigma is very small (less than `0.16`) then the receiver is returned.
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance or the received image.
 - (CIImage *)imageByApplyingGaussianBlurWithSigma:(double)sigma NS_AVAILABLE(10_12, 10_0);
 
-/* Return a new image by changing the recevier's properties. */
+/// Return a new image by changing the receiver's metadata properties.
+/// 
+/// When you create an image, Core Image sets an image’s properties to a metadata 
+/// dictionary as described here: ``properties``.
+/// Use this method to override an image’s metadata properties with new values.
+/// 
+/// - Parameters:
+///    - properties: A dictionary of metadata properties akin to the `CGImageSourceCopyPropertiesAtIndex()` function.
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance with a copy of the new properties.
 - (CIImage *)imageBySettingProperties:(NSDictionary*)properties NS_AVAILABLE(10_12, 10_0);
 
-/* Returns a new image by changing the receiver's sample mode to bilinear interpolation. */
+/// Create an image by changing the receiver's sample mode to bilinear interpolation.
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance with a bilinear sampling.
 - (CIImage *)imageBySamplingLinear NS_AVAILABLE(10_13, 11_0);
 
-/* Returns a new image by changing the receiver's sample mode to nearest neighbor. */
+/// Create an image by changing the receiver's sample mode to nearest neighbor.
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance with a nearest sampling.
 - (CIImage *)imageBySamplingNearest NS_AVAILABLE(10_13, 11_0);
 
-/* Returns a new image that inserts a intermediate that is cacheable
- * according to the CIContext's kCIContextCacheIntermediates option.  */
+/// Create an image that inserts a intermediate that is cacheable
+/// 
+/// This intermediate will be not be cached if ``kCIContextCacheIntermediates`` is false.
+/// - Returns: 
+///    An autoreleased ``CIImage``.
 - (CIImage *)imageByInsertingIntermediate NS_AVAILABLE(10_14, 12_0);
 
-/* Returns a new image that inserts a intermediate that is cacheable
- * independent of the CIContext's kCIContextCacheIntermediates option.  */
+/// Create an image that inserts a intermediate that is cacheable.
+/// 
+/// - Parameters:
+///    - cache: Controls if Core Image caches the returned image.
+///           * `YES` : This intermediate will be cacheable even if 
+///              ``kCIContextCacheIntermediates`` is false. 
+///           * `NO`  : the intermediate will be not be cached if 
+///              ``kCIContextCacheIntermediates`` is false.
+/// - Returns: 
+///    An autoreleased ``CIImage``.
 - (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. */
+/// Create an image that inserts a intermediate that is cached in tiles
+/// 
+/// This intermediate will be cacheable even if ``kCIContextCacheIntermediates`` is false.
+/// - Returns: 
+///    An autoreleased ``CIImage``.
+- (CIImage *)imageByInsertingTiledIntermediate NS_AVAILABLE(16_0, 19_0);
+
+/// Create an image that applies a gain map Core Image image to the received Core Image image.
+/// 
+/// The gain map image can be obtained by creating a ``CIImage`` instance from `NSURL`/`NSData` 
+/// and setting the ``kCIImageAuxiliaryHDRGainMap`` option set to `@YES`. 
+/// 
+/// If the gain map ``CIImage`` instance doesn't have the needed ``properties`` metadata, 
+/// the received image will be returned as-is.
+/// 
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance or the received image.
 - (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. */
+/// Create an image that applies a gain map Core Image image with a specified headroom to the received Core Image image.
+/// 
+/// - Parameters:
+///    - gainmap: The gain map ``CIImage`` instance to apply to the receiver.
+///    - headroom: a float value that 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.
+/// - Returns: 
+///    An autoreleased ``CIImage`` instance or the received image.
 - (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 */
+/// Create an image by changing the receiver's contentHeadroom property. 
+/// 
+/// Changing this value will alter the behavior of the `CIToneMapHeadroom` and `CISystemToneMap` filters.
+/// * If the value is set to 0.0 then the returned image's headroom is unknown.
+/// * If the value is set to 1.0 then the returned image is SDR.
+/// * If the value is set to greater 1.0 then the returned image is HDR.
+/// * Otherwise the returned image's headroom is unknown.
+///
+/// - Returns: 
+///    An autoreleased ``CIImage``.
+- (CIImage*) imageBySettingContentHeadroom:(float)headroom NS_AVAILABLE(16_0, 19_0);
+
+/// Create an image by changing the receiver's contentAverageLightLevel property. 
+/// 
+/// Changing this value will alter the behavior of the `CIToneMapHeadroom` and `CISystemToneMap` filters.
+/// * If the value is set to 0.0 or less then the returned image's ``contentAverageLightLevel`` is unknown.
+///
+/// - Returns: 
+///    An autoreleased ``CIImage``.
+- (CIImage*) imageBySettingContentAverageLightLevel:(float)average NS_AVAILABLE(16_0, 19_0);
+
+/// Returns a rectangle the defines the bounds of non-(0,0,0,0) pixels in the image.
+/// > Note: the ``extent`` of `CIImage`` may be infinite or have a non-zero origin. 
 @property (NS_NONATOMIC_IOSONLY, readonly) CGRect extent;
 
-/* Returns YES if the image is known to have alpha==1 over the entire image extent */
+/// Returns YES if the image is known to have and alpha value of `1.0` 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. */
+/// Returns the metadata properties dictionary of the image. 
+/// 
+/// If the ``CIImage`` was created from `NSURL` or `NSData` then this dictionary is determined by calling `CGImageSourceCopyPropertiesAtIndex()`.
+/// 
+/// If the ``CIImage`` was created with the ``kCIImageProperties`` option, then that dictionary is returned.
+/// 
+/// If the ``CIImage`` was created by applying ``CIFilter-class`` or ``CIKernel`` then the 
+/// properties of the root inputImage will be returned.
+/// 
 @property (atomic, readonly) NSDictionary<NSString *,id> *properties NS_AVAILABLE(10_8, 5_0);
 
 /* Return the Domain of Definition of the image. */
@@ -496,35 +584,53 @@
  */
 @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.
- */
+/// 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 HDR.
+///
+/// The image headroom may known when a CIImage is first initialized.
+/// If the a CIImage is initialized using:
+/// * `NSURL` or `NSData` : the headroom may be determined by associated metadata 
+///                         or deduced from pixel format or colorSpace information.
+/// * `CGImage` : headroom may be determined by `CGImageGetHeadroomInfo()` 
+///               or deduced from pixel format or colorSpace information.
+/// * `IOSurface` : then the headroom will be determined by `kIOSurfaceContentHeadroom`.
+///               or deduced from pixel format or colorSpace information.
+/// * `CVPixelBuffer` : then the headroom will be determined by `kCVImageBufferContentLightLevelInfoKey`.
+///               or deduced from pixel format or colorSpace information.
+/// * `BitmapData` : headroom may be deduced from pixel format or colorSpace information.
+///
+/// If the image is the result of applying a ``CIFilter-class`` or ``CIKernel``, this method will return `0.0`.
+/// 
+/// There are exceptions to this.  Applying a `CIWarpKernel`` or certain ``CIFilter-class`` 
+/// (e.g. `CIGaussianBlur`, `CILanczosScaleTransform`, `CIAreaAverage` and some others) 
+/// to an image will result in a ``CIImage`` instance with the same `contentHeadroom` property value.
+///
 @property (nonatomic, readonly) float contentHeadroom NS_AVAILABLE(15_0, 18_0);
 
+/// Returns the content average light level of the image.
+///
+/// If the image average light level is unknown, then the value 0.0 will be returned.
+///
+/// If the image headroom is known, then a value greater than or equal to 0.0 will be returned.
+///
+/// The image average light level may known when a CIImage is first initialized.
+/// If the a CIImage is initialized with a:
+///  * `CGImage` : then the headroom will be determined by `CGImageGetContentAverageLightLevel()`.
+///  * `CVPixelBuffer` : then the headroom will be determined by `kCVImageBufferContentLightLevelInfoKey`.
+///  
+/// If the image is the result of applying a ``CIFilter-class`` or ``CIKernel``, this property will return `0.0`.
+/// 
+/// There are exceptions to this.  Applying a ``CIWarpKernel`` or certain ``CIFilter-class`` 
+/// (e.g. `CIGaussianBlur`, `CILanczosScaleTransform`, `CIAreaAverage` and some others) 
+/// to an image will result in a ``CIImage`` instance with the same `contentAverageLightLevel` property value.
+///
+@property (nonatomic, readonly) float contentAverageLightLevel NS_AVAILABLE(16_0, 19_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. */
@@ -534,9 +640,13 @@
  * 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. */
+/// Returns a Metal Texture if the Core Image image was created with a texture.
+/// 
+/// This will return non-nil if the image was created with ``/CIImage/imageWithMTLTexture:options:`` and no options.
+/// Otherwise this property will be `nil` you should instead call
+///  ``/CIContext/render:toMTLTexture:commandBuffer:bounds:colorSpace:``.
+/// > Warning: Modifying the contents of this texture will cause the ``CIImage`` instance to render with incorrect 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
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h	2025-04-19 03:57:36
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProcessor.h	2025-05-24 05:41:32
@@ -26,170 +26,323 @@
 @protocol CIImageProcessorInput;
 @protocol CIImageProcessorOutput;
 
-// In order to use a CIImageProcessorInput & CIImageProcessorOutput you must
-// subclass from a CIImageProcessorKernel and override the methods you need to
-// produce the desired output.
-
-
+/// The abstract class you extend to create custom image processors that can integrate with Core Image workflows.
+///
+/// Unlike the ``CIKernel`` class and its other subclasses that allow you to create new image-processing effects 
+/// with the Core Image Kernel Language, the `CIImageProcessorKernel` class provides direct access to the underlying 
+/// bitmap image data for a step in the Core Image processing pipeline. As such, you can create subclasses of this 
+/// class to integrate other image-processing technologies—such as Metal compute shaders, Metal Performance Shaders, 
+/// Accelerate vImage operations, or your own CPU-based image-processing routines—with a Core Image filter chain.
+/// 
+/// Your custom image processing operation is invoked by your subclassed image processor kernel's 
+/// ``processWithInputs:arguments:output:error:`` method. The method can accept zero, one or more inputs. 
+/// Processors  that generate imagery (such as a noise or pattern generator) need no inputs, while kernels that 
+/// composite source images together require multiple inputs. The arguments dictionary allows the caller to pass in 
+/// additional parameter values (such as the radius of a blur) and the output contains the destination for your 
+/// image processing code to write to.
+///
+/// ## Subclassing Notes
+/// 
+/// The `CIImageProcessorKernel` class is abstract; to create a custom image processor, you define a subclass of this class.
+/// 
+/// You do not directly create instances of a custom `CIImageProcessorKernel` subclass. Image processors must not carry or 
+/// use state specific to any single invocation of the processor, so all methods (and accessors for readonly properties) 
+/// of an image processor kernel class are class methods.
+/// 
+/// Your subclass should override at least the ``processWithInputs:arguments:output:error:`` method to perform its
+/// image processing.
+/// 
+/// If your image processor needs to work with a larger or smaller region of interest in the input image than each 
+/// corresponding region of the output image (for example, a blur filter, which samples several input pixels for 
+/// each output pixel), you should also override the ``roiForInput:arguments:outputRect:`` method.
+/// 
+/// You can also override the formatForInputAtIndex: method and outputFormat property getter to customize the input 
+/// and output pixel formats for your processor (for example, as part of a multi-step workflow where you extract a 
+/// single channel from an RGBA image, apply an effect to that channel only, then recombine the channels).
+/// 
+/// ## Using a Custom Image Processor
+///
+/// To apply your custom image processor class to create a ``CIImage`` object, call the 
+/// ``applyWithExtent:inputs:arguments:error:`` class method. (Do not override this method.)
+/// 
 NS_CLASS_AVAILABLE(10_12, 10_0)
 @interface CIImageProcessorKernel : NSObject
 
-// Override this class method to implement your processor's subclass of CIImageProcessorKernel.
-// The class method will be called to produce the requested region of the output image
-// given the required regions of the input images and other arguments.
-//
-// The class method is passed two objects:
-//     'inputs’  An array of id<CIImageProcessorInput> that the block consumes to produces output.
-//               The input.region may be larger than the rect returned by 'roiForInputAtIndex'.
-//     'output'  The id<CIImageProcessorOutput> that the block must provide results to.
-//     ‘arguments’ The arguments dictionary passed to applyWithExtent:inputs:arguments:error:
-// The contents of these objects are not valid outside the scope of this method.
-//
-// Note that since this is a class method you cannot use or capture any state by accident.
-// All the parameters that affect the output results must be passed in ‘inputs’ and ‘arguments'.
-// This supports 0, 1, 2 or more input images.
-//
+/// Override this class method to implement your Core Image Processor Kernel subclass.
+/// 
+/// The class method will be called to produce the requested region of the output image
+/// given the required regions of the input images and other arguments.
+///
+/// > Important: this is a class method you cannot use or capture any state by accident.
+/// All the parameters that affect the output results must be passed to
+/// ``applyWithExtent:inputs:arguments:error:``.
+/// 
+/// - Parameters:
+///    - inputs: An array of `id<CIImageProcessorInput>` that the class consumes to produce its output.
+///              The `input.region` may be larger than the rect returned by ``roiForInput:arguments:outputRect:``.
+///    - arguments: the arguments dictionary that was passed to ``applyWithExtent:inputs:arguments:error:``.
+///    - output: The `id<CIImageProcessorOutput>` that the `CIImageProcessorKernel` must provide results to.
+///    - error: Pointer to the `NSError` object into which processing errors will be written.
+/// - Returns:
+///    Returns YES if processing succeeded, and NO if processing failed.
+/// 
 + (BOOL)processWithInputs:(nullable NSArray<id<CIImageProcessorInput>> *)inputs
                 arguments:(nullable NSDictionary<NSString*,id> *)arguments
                    output:(id <CIImageProcessorOutput>)output
                     error:(NSError **)error;
 
-// Override this class method to implement your processor’s ROI callback, the default implementation would return outputRect.
-// This will be called one or more times per render to determine what portion
-// of the input images are needed to render a given 'outputRect' of the output.
-// This will not be called if there are 0 input images.
-//
-// Note that since this is a class method you cannot use or capture any state by accident.
-// All the parameters that affect the output results must be passed in ‘inputs’ and ‘arguments’.
-//
-+ (CGRect)roiForInput:(int)input
+/// Override this class method to implement your processor’s ROI callback.
+/// 
+/// This will be called one or more times per render to determine what portion
+/// of the input images are needed to render a given 'outputRect' of the output.
+/// This will not be called if processor has no input images.
+/// 
+/// The default implementation would return outputRect.
+///
+/// > Important: this is a class method you cannot use or capture any state by accident.
+/// All the parameters that affect the output results must be passed to
+/// ``applyWithExtent:inputs:arguments:error:``.
+/// 
+/// - Parameters:
+///    - inputIndex: the index that tells you which processor input for which to return the ROI rectangle.
+///    - arguments: the arguments dictionary that was passed to ``applyWithExtent:inputs:arguments:error:``.
+///    - outputRect: the output `CGRect` that processor will be asked to output. 
+/// - Returns:
+///    The `CGRect` of the `inputIndex`th input that is required for the above `outputRect`
+///
++ (CGRect)roiForInput:(int)inputIndex
             arguments:(nullable NSDictionary<NSString*,id> *)arguments
            outputRect:(CGRect)outputRect;
 
-// Returns an array of CIVectors that specify tile regions for 'input' that are needed to satisfy 'outputRect'.
-// Each region tile in the array is a created by calling [CIVector vectorWithCGRect:roi]
-// The tiles may overlap but should fully cover the area of 'input' that is needed.
-// If a processor has multiple inputs, then each input should return the same number of region tiles.
-//
-// If the processor implements this method, then when rendered;
-//  - as CoreImage prepares for a render, this method will be called for each input to return the roiArray.
-//  - as CoreImage performs the render, the method 'processWithInputs:arguments:output:' will be called once for for each tile.
-//
-+ (NSArray<CIVector*>*) roiTileArrayForInput:(int)input
+/// Override this class method to implement your processor’s tiled ROI callback.
+/// 
+/// This will be called one or more times per render to determine what tiles
+/// of the input images are needed to render a given `outputRect` of the output.
+///
+/// If the processor implements this method, then when rendered;
+///  * as CoreImage prepares for a render, this method will be called for each input to return an ROI tile array.
+///  * as CoreImage performs the render, the method ``processWithInputs:arguments:output:error:`` will be called once for each tile.
+///
+/// > Important: this is a class method you cannot use or capture any state by accident.
+/// All the parameters that affect the output results must be passed to
+/// ``applyWithExtent:inputs:arguments:error:``.
+/// 
+/// - Parameters:
+///    - inputIndex: the index that tells you which processor input for which to return the array of ROI rectangles
+///    - arguments: the arguments dictionary that was passed to ``applyWithExtent:inputs:arguments:error:``.
+///    - outputRect: the output `CGRect` that processor will be asked to output. 
+/// - Returns:
+///    An array of ``CIVector`` that specify tile regions of the `inputIndex`'th input that is required for the above `outputRect`
+///    Each region tile in the array is a created by calling ``/CIVector/vectorWithCGRect:/``
+///    The tiles may overlap but should fully cover the area of 'input' that is needed.
+///    If a processor has multiple inputs, then each input should return the same number of region tiles.
+///
++ (NSArray<CIVector*>*) roiTileArrayForInput:(int)inputIndex
                                    arguments:(nullable NSDictionary<NSString*,id> *)arguments
                                   outputRect:(CGRect)outputRect NS_AVAILABLE(14_0, 17_0);
 
-// Override this class method if you want your any of the inputs to be in a specific supported CIPixelFormat.
-// The format must be one of kCIFormatBGRA8, kCIFormatRGBAh, kCIFormatRGBAf or kCIFormatR8.
-// On iOS 12 and macOS 10.14, the formats kCIFormatRh and kCIFormatRf are also supported.
-// If the requested inputFormat is 0, then the input will be a supported format that best
-// matches the rendering context's workingFormat.
-//
-// If a processor wants data in a colorspace other than the context workingspace,
-// then call imageByColorMatchingWorkingSpaceToColorSpace on the processor input.
-// If a processor wants it input as alpha-unpremultiplied RGBA data, then call
-// imageByUnpremultiplyingAlpha on the processor input.
-//
-+ (CIFormat)formatForInputAtIndex:(int)input;
+/// Override this class method if you want your any of the inputs to be in a specific pixel format.
+/// 
+/// The format must be one of `kCIFormatBGRA8`, `kCIFormatRGBAh`, `kCIFormatRGBAf` or `kCIFormatR8`.
+/// On iOS 12 and macOS 10.14, the formats `kCIFormatRh` and `kCIFormatRf` are also supported.
+/// 
+/// If the requested inputFormat is `0`, then the input will be a supported format that best
+/// matches the rendering context's ``/CIContext/workingFormat``.
+///
+/// If a processor wants data in a colorspace other than the context's working color space,
+/// then call ``/CIImage/imageByColorMatchingWorkingSpaceToColorSpace:`` on the processor input.
+/// If a processor wants it input as alpha-unpremultiplied RGBA data, then call
+/// ``/CIImage/imageByUnpremultiplyingAlpha`` on the processor input.
+///
++ (CIFormat)formatForInputAtIndex:(int)inputIndex;
 
-// Override this class property if you want your processor's output to be in a specific supported CIPixelFormat.
-// The format must be one of kCIFormatBGRA8, kCIFormatRGBAh, kCIFormatRGBAf or kCIFormatR8.
-// On iOS 12 and macOS 10.14, the formats kCIFormatRh and kCIFormatRf are also supported.
-// If the outputFormat is 0, then the output will be a supported format that best
-// matches the rendering context's workingFormat.
-//
-// If a processor returns data in a colorspace other than the context workingspace,
-// then call imageByColorMatchingColorSpaceToWorkingSpace on the processor output.
-// If a processor returns data as alpha-unpremultiplied RGBA data, then call,
-// imageByPremultiplyingAlpha on the processor output.
-//
-#if __has_feature(objc_class_property)
+/// Override this class property if you want your processor's output to be in a specific pixel format.
+/// 
+/// The format must be one of `kCIFormatBGRA8`, `kCIFormatRGBAh`, `kCIFormatRGBAf` or `kCIFormatR8`.
+/// On iOS 12 and macOS 10.14, the formats `kCIFormatRh` and `kCIFormatRf` are also supported.
+/// 
+/// If the outputFormat is `0`, then the output will be a supported format that best
+/// matches the rendering context's ``/CIContext/workingFormat``.
+///
+/// If a processor returns data in a color space other than the context working color space,
+/// then call ``/CIImage/imageByColorMatchingColorSpaceToWorkingSpace:`` on the processor output.
+/// If a processor returns data as alpha-unpremultiplied RGBA data, then call,
+/// ``/CIImage/imageByPremultiplyingAlpha`` on the processor output.
+///
 @property (class, readonly) CIFormat outputFormat;
-#else
-+(CIFormat)outputFormat;
-#endif
 
-// Override this class property if your processor's output stores 1.0 into the
-// alpha channel of all pixels within the output extent.
-// If not overridden, false is returned.
-//
-#if __has_feature(objc_class_property)
+/// Override this class property if your processor's output stores 1.0 into the
+/// alpha channel of all pixels within the output extent.
+/// 
+/// If not overridden, false is returned.
+///
 @property (class, readonly) bool outputIsOpaque NS_AVAILABLE(10_13, 11_0);
-#else
-+ (bool)outputIsOpaque NS_AVAILABLE(10_13, 11_0);
-#endif
 
-// Override this class property to return false if you want your processor to be given
-// CIImageProcessorInput objects that have not been synchronized for CPU access.
-//
-// Generally, if your subclass uses the GPU your should override this method to return false.
-// If not overridden, true is returned.
-//
-#if __has_feature(objc_class_property)
+/// Override this class property to return false if you want your processor to be given
+/// input objects that have not been synchronized for CPU access.
+///
+/// Generally, if your subclass uses the GPU your should override this method to return false.
+/// If not overridden, true is returned.
+///
 @property (class, readonly) bool synchronizeInputs;
-#else
-+(bool)synchronizeInputs;
-#endif
 
 
-// Call this method on your CIImageProcessorKernel subclass to create a new CIImage of the specified extent.
-// The inputs and arguments will be retained so that your subclass can be called when the image is drawn.
-// Arguments is a dictionary containing immutable objects of type NSData, NSString, NSNumber,
-// CIVector or CIColor.
-//
-// This method will return [CIImage emptyImage] if extent is empty.
-//
-// This method will return nil and an error if:
-// * calling outputFormat on your subclass returns an unsupported format
-// * calling formatForInputAtIndex: on your subclass returns an unsupported format
-// * your subclass does not implement processWithInputs:arguments:output:error:
-//
+/// Call this method on your Core Image Processor Kernel subclass to create a new image of the specified extent.
+///
+/// The inputs and arguments will be retained so that your subclass can be called when the image is drawn.
+///
+/// This method will return `nil` and an error if:
+/// * calling ``outputFormat`` on your subclass returns an unsupported format.
+/// * calling ``formatForInputAtIndex:`` on your subclass returns an unsupported format.
+/// * your subclass does not implement ``processWithInputs:arguments:output:error:``
+///
+/// - Parameters:
+///    - extent: The bounding `CGRect` of pixels that the `CIImageProcessorKernel` can produce.
+///              This method will return ``/CIImage/emptyImage`` if extent is empty.
+///    - inputs: An array of ``CIImage`` objects to use as input.
+///    - arguments: This dictionary contains any additional parameters that the processor needs to
+///                 produce its output. The argument objects can be of any type but in order for 
+///                 CoreImage  to cache intermediates, they must be of the following immutable types:
+///                 `NSArray`, `NSDictionary`, `NSNumber`, `NSValue`, `NSData`, `NSString`, `NSNull`,
+///                 ``CIVector``, ``CIColor``, `CGImage`, `CGColorSpace`, or `MLModel`.
+///    - error: Pointer to the `NSError` object into which processing errors will be written.
+/// - Returns:
+///     An autoreleased ``CIImage``
+///
 + (nullable CIImage *)applyWithExtent:(CGRect)extent
                                inputs:(nullable NSArray<CIImage*> *)inputs
-                            arguments:(nullable NSDictionary<NSString*,id> *)args
+                            arguments:(nullable NSDictionary<NSString*,id> *)arguments
                                 error:(NSError **)error;
+
 @end
 
+@interface CIImageProcessorKernel (MultipleOutputSupport)
 
+/// Override this class method of your Core Image Processor Kernel subclass if it needs to produce multiple outputs.
+///
+/// This supports 0, 1, 2 or more input images and 2 or more output images.
+///
+/// The class method will be called to produce the requested region of the output images
+/// given the required regions of the input images and other arguments.
+///
+/// > Important: this is a class method you cannot use or capture any state by accident.
+/// All the parameters that affect the output results must be passed to
+/// ``applyWithExtent:inputs:arguments:error:``.
+/// 
+/// - Parameters:
+///    - inputs: An array of `id<CIImageProcessorInput>` that the class consumes to produce its output.
+///              The `input.region` may be larger than the rect returned by ``roiForInput:arguments:outputRect:``.
+///    - arguments: the arguments dictionary that was passed to ``applyWithExtent:inputs:arguments:error:``.
+///    - outputs: An array `id<CIImageProcessorOutput>` that the `CIImageProcessorKernel` must provide results to.
+///    - error: Pointer to the `NSError` object into which processing errors will be written.
+/// - Returns:
+///    Returns YES if processing succeeded, and NO if processing failed.
+/// 
++ (BOOL)processWithInputs:(nullable NSArray<id<CIImageProcessorInput>> *)inputs
+                arguments:(nullable NSDictionary<NSString*,id> *)arguments
+                  outputs:(NSArray<id <CIImageProcessorOutput>> *)outputs
+                    error:(NSError **)error NS_AVAILABLE(16_0, 19_0);
+
+/// Override this class method if your processor has more than one output and 
+/// you want your processor's output to be in a specific supported `CIPixelFormat`.
+/// 
+/// The format must be one of `kCIFormatBGRA8`, `kCIFormatRGBAh`, `kCIFormatRGBAf` or `kCIFormatR8`.
+/// On iOS 12 and macOS 10.14, the formats `kCIFormatRh` and `kCIFormatRf` are also supported.
+/// 
+/// If the outputFormat is `0`, then the output will be a supported format that best
+/// matches the rendering context's ``/CIContext/workingFormat``.
+///
+/// - Parameters:
+///    - outputIndex: the index that tells you which processor output for which to return the desired `CIPixelFormat`
+///    - arguments: the arguments dictionary that was passed to ``applyWithExtent:inputs:arguments:error:``.
+/// - Returns:
+///    Return the desired `CIPixelFormat`
+///
++ (CIFormat)outputFormatAtIndex:(int)outputIndex
+                      arguments:(nullable NSDictionary<NSString*,id> *)arguments
+NS_AVAILABLE(16_0, 19_0);
+
+/// Call this method on your multiple-output Core Image Processor Kernel subclass 
+/// to create an `NSArray` of new ``CIImage``s given the specified `NSArray` of extents.
+///
+/// The inputs and arguments will be retained so that your subclass can be called when the image is drawn.
+///
+/// This method will return `nil` and an error if:
+/// * calling ``outputFormatAtIndex:arguments:`` on your subclass returns an unsupported format.
+/// * calling ``formatForInputAtIndex:`` on your subclass returns an unsupported format.
+/// * your subclass does not implement ``processWithInputs:arguments:output:error:``
+///
+/// - Parameters:
+///    - extents: The array of bounding rectangles  that the `CIImageProcessorKernel` can produce.
+///               Each rectangle in the array is an object created using ``/CIVector/vectorWithCGRect:`` 
+///               This method will return `CIImage.emptyImage` if a rectangle in the array is empty.
+///    - inputs: An array of ``CIImage`` objects to use as input.
+///    - arguments: This dictionary contains any additional parameters that the processor needs to
+///                 produce its output. The argument objects can be of any type but in order for 
+///                 CoreImage  to cache intermediates, they must be of the following immutable types:
+///                 `NSArray`, `NSDictionary`, `NSNumber`, `NSValue`, `NSData`, `NSString`, `NSNull`,
+///                 ``CIVector``, ``CIColor``, `CGImage`, `CGColorSpace`, or `MLModel`.
+///    - error: Pointer to the `NSError` object into which processing errors will be written.
+/// - Returns:
+///     An autoreleased ``CIImage``
+///
++ (nullable NSArray<CIImage*> *)applyWithExtents:(NSArray<CIVector*> *)extents
+                                          inputs:(nullable NSArray<CIImage*> *)inputs
+                                       arguments:(nullable NSDictionary<NSString*,id> *)arguments
+                                           error:(NSError **)error NS_AVAILABLE(16_0, 19_0);
+
+@end
+
+
 NS_CLASS_AVAILABLE(10_12, 10_0)
 @protocol CIImageProcessorInput
 
-// The rectangular region of the input image that the processor block can use to provide the output.
-// This will be contain (but may be larger than) the rect returned by 'roiCallback'.
+/// The rectangular region of the input image that your Core Image Processor Kernel can use to provide the output.
+/// > Note: This will contain but may be larger than the rect returned by 'roiCallback'.
 @property (nonatomic, readonly) CGRect region;
 
 
-// The bytes per row of the input buffer that the processor block can read from.
+/// The bytes per row of the CPU memory that your Core Image Processor Kernel can read pixelsfrom.
 @property (nonatomic, readonly) size_t bytesPerRow;
 
-// The pixel format of the input buffer that the processor block can read from.
+/// The pixel format of the CPU memory that your Core Image Processor Kernel can read pixels from.
 @property (nonatomic, readonly) CIFormat format;
 
-// The base address of the input buffer that the processor block can read from.
-// This memory must not be modified by the block.
+/// The base address of CPU memory that your Core Image Processor Kernel can read pixels from.
+/// > Warning: This memory must not be modified by the ``CIImageProcessorKernel``.
 @property (readonly, nonatomic) const void *baseAddress NS_RETURNS_INNER_POINTER;
 
+
 #if COREIMAGE_SUPPORTS_IOSURFACE
-// An input IOSurface that the processor block can read from.
-// This surface must not be modified by the block.
+/// An input `IOSurface` that your Core Image Processor Kernel can read from.
+/// > Warning: This surface must not be modified by the ``CIImageProcessorKernel``.
 @property (nonatomic, readonly) IOSurfaceRef surface;
 #endif
 
-// An input CVPixelBuffer that the processor block can read from.
-// This buffer must not be modified by the block.
+/// An input `CVPixelBuffer` that your Core Image Processor Kernel can read from.
+/// > Warning: This buffer must not be modified by the ``CIImageProcessorKernel``.
 @property (nonatomic, readonly, nullable) CVPixelBufferRef pixelBuffer;
 
 
-// A MTLTexture object that can be bound as input (if processing using Metal).
-// This texture must not be modified by the block.
+/// A MTLTexture object that can be bound for input using Metal.
+/// > Warning: This texture must not be modified by the ``CIImageProcessorKernel``.
 @property (nonatomic, readonly, nullable) id<MTLTexture> metalTexture;
 
-// A 64-bit digest that uniquely describes the contents of the input to a processor.
-// This digest will change if the graph of the input changes in any way.
+/// A 64-bit digest that uniquely describes the contents of the input to a processor.
+/// 
+/// This digest will change if the graph of the input changes in any way.
 @property (nonatomic, readonly) uint64_t digest NS_AVAILABLE(13_0, 16_0);
 
-// For processors that implement 'roiTileArrayForInput:arguments:outputRect:'
+/// This property tell processors that implement ``/CIImageProcessorKernel/roiTileArrayForInput:arguments:outputRect:`` 
+/// which input tile index is being processed.
+/// 
+/// This can be useful if the processor needs to clear the ``CIImageProcessorOutput`` before the first tile is processed.
 @property (nonatomic, readonly) NSUInteger roiTileIndex NS_AVAILABLE(14_0, 17_0);
+
+/// This property tell processors that implement ``/CIImageProcessorKernel/roiTileArrayForInput:arguments:outputRect:`` 
+/// how many input tiles will be processed.
+/// 
+/// This can be useful if the processor needs to do work ``CIImageProcessorOutput`` after the last tile is processed.
 @property (nonatomic, readonly) NSUInteger roiTileCount NS_AVAILABLE(14_0, 17_0);
 
 @end
@@ -198,36 +351,39 @@
 NS_CLASS_AVAILABLE(10_12, 10_0)
 @protocol CIImageProcessorOutput
 
-// The rectangular region of the output image that the processor block must provide.
+/// The rectangular region of the output image that your Core Image Processor Kernel must provide.
+/// > Note: This may be different (larger or smaller) than the `extent` that was passed to 
+/// ``/CIImageProcessorKernel/applyWithExtent:inputs:arguments:error:``.
 @property (nonatomic, readonly) CGRect region;
 
-
-// The bytes per row of the output buffer that the processor block can write to.
+/// The bytes per row of the CPU memory that your Core Image Processor Kernel can write pixels to.
 @property (nonatomic, readonly) size_t bytesPerRow;
 
-// The pixel format of the output buffer that the processor block can write to.
+/// The pixel format of the CPU memory that your Core Image Processor Kernel can write pixels to.
 @property (nonatomic, readonly) CIFormat format;
 
-// The base address of the output buffer that the processor block can write output pixels to.
+/// The base address of CPU memory that your Core Image Processor Kernel can write pixels to.
 @property (readonly, nonatomic) void *baseAddress NS_RETURNS_INNER_POINTER;
 
+
 #if COREIMAGE_SUPPORTS_IOSURFACE
-// An output IOSurface that the processor block can write to.
+/// An output `IOSurface` that your Core Image Processor Kernel can write to.
 @property (nonatomic, readonly) IOSurfaceRef surface;
 #endif
 
-// A output CVPixelBuffer that the processor block can write to.
+/// An output `CVPixelBuffer` that your Core Image Processor Kernel can write to.
 @property (nonatomic, readonly, nullable) CVPixelBufferRef pixelBuffer;
 
 
-// A MTLTexture object that can be bound as output (if processing using Metal).
+/// A `MTLTexture` object that can be bound for output using Metal.
 @property (nonatomic, readonly, nullable) id<MTLTexture> metalTexture;
 
-// Returns a MTLCommandBuffer that can be used for encoding commands (if rendering using Metal).
+/// Returns a `MTLCommandBuffer` that can be used for encoding commands.
 @property (nonatomic, readonly, nullable) id<MTLCommandBuffer> metalCommandBuffer;
 
-// A 64-bit digest that uniquely describes the contents of the output of a processor.
-// This digest will change if the graph up to and including the output of the processor changes in any way.
+/// A 64-bit digest that uniquely describes the contents of the output of a processor.
+/// 
+/// This digest will change if the graph up to and including the output of the processor changes in any way.
 @property (nonatomic, readonly) uint64_t digest NS_AVAILABLE(13_0, 16_0);
 
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProvider.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProvider.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProvider.h	2025-04-19 01:56:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIImageProvider.h	2025-05-24 01:53:33
@@ -14,76 +14,170 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@protocol MTLTexture, MTLCommandBuffer;
+
 @interface CIImage (CIImageProvider)
 
-/* Create a new CIImage populated when rendered with  data provided by 'p'.
- * The provider object 'p' is retained until the image is deallocated. 
- * The 'options' dictionary supports kCIImageProviderTileSize as well as
- * other options defined in CIImage.h 
- */
-+ (CIImage *)imageWithImageProvider:(id)p
+/// Create an image object based on pixels from an image provider object.
+///
+/// Core Image retains the provider object until the image is deallocated.
+/// The image provider object will not be called until the image is rendered.
+/// 
+/// - Parameters:
+///    - provider: An object that implements the `CIImageProvider` protocol. 
+///    - width: The width of the image.
+///    - height: The height of the image.
+///    - format: The ``CIFormat`` of the provided pixels.
+///    - colorSpace: The color space that the image is defined in. 
+///          If `nil`, then the pixels will not be is not color matched to the Core Image working color space. 
+///    - options: A dictionary that contains various ``CIImageOption`` keys that affect the resulting ``CIImage``.  
+///          The option ``kCIImageProviderTileSize`` controls if and how the provider object is called in tiles. 
+///          The option ``kCIImageProviderUserInfo`` allows additional state to be passed to the provider object.
+/// - Returns:
+///    An autoreleased ``CIImage`` object based on the data provider.
+///
++ (CIImage *)imageWithImageProvider:(id)provider
 							   size:(size_t)width
                                    :(size_t)height
-							 format:(CIFormat)f
-						 colorSpace:(nullable CGColorSpaceRef)cs
+							 format:(CIFormat)format
+						 colorSpace:(nullable CGColorSpaceRef)colorSpace
                             options:(nullable NSDictionary<CIImageOption,id> *)options
     NS_AVAILABLE(10_4, 9_0);
 
-- (instancetype)initWithImageProvider:(id)p
+/// Initializes an image object based on pixels from an image provider object.
+///
+/// Core Image retains the provider object until the image is deallocated.
+/// The image provider object will not be called until the image is rendered.
+/// 
+/// - Parameters:
+///    - provider: An object that implements the `CIImageProvider` protocol. 
+///    - width: The width of the image.
+///    - height: The height of the image.
+///    - format: The ``CIFormat`` of the provided pixels.
+///    - colorSpace: The color space that the image is defined in. 
+///          If `nil`, then the pixels will not be is not color matched to the Core Image working color space. 
+///    - options: A dictionary that contains various ``CIImageOption`` keys that affect the resulting ``CIImage``.  
+///          The option ``kCIImageProviderTileSize`` controls if and how the provider object is called in tiles. 
+///          The option ``kCIImageProviderUserInfo`` allows additional state to be passed to the provider object.
+/// - Returns:
+///    An initialized ``CIImage`` object based on the data provider.
+///
+- (instancetype)initWithImageProvider:(id)provider
                                  size:(size_t)width
                                      :(size_t)height
-                               format:(CIFormat)f
-                           colorSpace:(nullable CGColorSpaceRef)cs
+                               format:(CIFormat)format
+                           colorSpace:(nullable CGColorSpaceRef)colorSpace
                               options:(nullable NSDictionary<CIImageOption,id> *)options
     NS_AVAILABLE(10_4, 9_0);
 
 @end
 
-/** Informal protocol used to lazily supply image data. */
+/** Protocol used to lazily supply image data. */
+
 @interface NSObject (CIImageProvider)
 
-/* Callee should initialize the given bitmap with the subregion x,y
- * width,height of the image. (this subregion is defined in the image's
- * local coordinate space, i.e. the origin is the top left corner of
- * the image).
- *
- * By default, this method will be called to requests the full image
- * data regardless of what subregion is needed for the current render.
- * All of the image is loaded or none of it is.
- *
- * If the kCIImageProviderTileSize option is specified, then only the
- * tiles that are needed are requested.
- *
- * Changing the virtual memory mapping of the supplied buffer (e.g. using
- * vm_copy () to modify it) will give undefined behavior.
- */
+/// The method that an image provider object must implement.  
+/// This method provides pixel data when the image object is rendered.
+/// 
+/// The implementation should provide pixels for the requested sub-rect `x,y,width,height` of the image. 
+/// The sub-rect is in defined in the image's local coordinate space, 
+/// where the origin is relative to the top left corner of the image.
+/// 
+/// By default, this method will be called to request the full image
+/// regardless of what sub-rect is needed for the current render.
+/// In this case the requested `x,y,width,height` will be `0,0,imageWidth,imageHeight`
+/// 
+/// If the ``kCIImageProviderTileSize`` option is specified when the ``CIImage`` was created,
+/// then this method may be called once for each tile that is needed for the current render.
+/// 
+/// - Parameters:
+///   - data: A pointer into which the provider should copy the pixels for the requested sub-rect. 
+///   - rowbytes: The number of bytes per row for the requested pixels.
+///   - originx: The x origin of the requested sub-rect relative to the upper left corner of the image.
+///   - originy: The y origin of the requested sub-rect relative to the upper left corner of the image.
+///   - width: The width of the requested sub-rect.
+///   - height: The height of the requested sub-rect.
+///   - info: The value of the `kCIImageProviderTileSize`` option specified when calling:
+///           * ``/CIImage/imageWithImageProvider:size::format:colorSpace:options:``
+///           * ``/CIImage/initWithImageProvider:size::format:colorSpace:options:``
+///
 - (void)provideImageData:(void *)data
 			 bytesPerRow:(size_t)rowbytes
-				  origin:(size_t)x
-                        :(size_t)y
+				  origin:(size_t)originx
+                        :(size_t)originy
 					size:(size_t)width
                         :(size_t)height
 				userInfo:(nullable id)info;
 
-@end
 
-/* Options that may be supplied to image providers through the dictionary. */
+/// An optional method that an image provider object way implement.  
+/// With this method, the provider object can use the Metal API to provide pixel  
+/// data into a MTLTexture when the image object is rendered.
+/// 
+/// The implementation should provide pixels for the requested sub-rect `x,y,width,height` of the image. 
+/// The sub-rect is in defined in the image's local coordinate space, 
+/// where the origin is relative to the top left corner of the image.
+/// 
+/// The work to fill the `MTLTexture` should be encoded on the specified `commandBuffer`.  
+/// If the implementation uses its own commandBuffer, 
+/// then it should call `waitUntilCompleted` before returning. 
+/// If the texture is surface-backed then you only need to
+/// call `waitUntilScheduled` before returning.
+/// 
+/// By default, this method will be called to request the full image
+/// regardless of what sub-rect is needed for the current render.
+/// In this case the requested `x,y,width,height` will be `0,0,imageWidth,imageHeight`
+/// 
+/// If the ``kCIImageProviderTileSize`` option is specified when the ``CIImage`` was created,
+/// then this method may be called once for each tile that is needed for the current render.
+/// 
+/// - Parameters:
+///   - texture: The `<id>MTLTexture` into which the provider should copy the pixels for the requested sub-rect. 
+///   - commandBuffer: The `<id>MTLCommandBuffer` that the provider should use encoded the copy.
+///   - originx: The x origin of the requested sub-rect relative to the upper left corner of the image.
+///   - originy: The y origin of the requested sub-rect relative to the upper left corner of the image.
+///   - width: The width of the requested sub-rect.
+///   - height: The height of the requested sub-rect.
+///   - info: The value of the `kCIImageProviderTileSize`` option specified when calling:
+///           * ``/CIImage/imageWithImageProvider:size::format:colorSpace:options:``
+///           * ``/CIImage/initWithImageProvider:size::format:colorSpace:options:``
+///
+- (void)provideImageToMTLTexture:(id<MTLTexture>)texture
+                   commandBuffer:(id<MTLCommandBuffer>)commandBuffer
+                         originx:(size_t)originx
+                         originy:(size_t)originy
+                           width:(size_t)width
+                          height:(size_t)height
+                        userInfo:(nullable id)info NS_AVAILABLE(16_0,19_0);
 
-/* Specifies the the tile size that the provideImageData: method will be called for.
- * If the value is:
- *   An NSNumber, then the value specifies a square tile size.
- *
- *   An NSArray or CIVector with two values, then it specifies a rectangular tile width and height.
- *
- *   Not specified, then provideImageData: will be called for the entire image.
- *
- *   NSNull, then provideImageData: can be called for any possible origin and size.
- */
+@end
+
+/// Specifies the tile size that the Provide Image Data method will be called for.
+/// 
+/// This key and its value may be passed to:
+/// * ``/CIImage/imageWithImageProvider:size::format:colorSpace:options:``
+/// * ``/CIImage/initWithImageProvider:size::format:colorSpace:options:``
+/// 
+/// If the value of this key is:
+///   Value                      | Behavior of sub-rect passed to ``provideImageData:bytesPerRow:origin::size::userData:``
+///   -------------------------- | ----------------------------
+///   Not specified              |  the entire image
+///   `NSNumber`                 |  square tiles of size x size
+///   `NSArray` with 2 numbers   |  rectangular tiles of width x height.
+///   ``CIVector`` with 2 values |  rectangular tiles of width x height.
+///   `NSNull`                   |  can be called for any possible origin and size.
+///
 CORE_IMAGE_EXPORT CIImageOption const kCIImageProviderTileSize NS_AVAILABLE(10_4, 9_0);
 
-/* The object passed when the provideImageData: method is called.
- * It is retained until the image is deallocated.
- */
+/// A key for any data needed by the image provider object. 
+/// The associated value is an object that contains the needed data.
+/// 
+/// This key and its value may be passed to:
+/// * ``/CIImage/imageWithImageProvider:size::format:colorSpace:options:``
+/// * ``/CIImage/initWithImageProvider:size::format:colorSpace:options:``
+/// 
+/// The value object is retained until the image is deallocated.
+///
 CORE_IMAGE_EXPORT CIImageOption const kCIImageProviderUserInfo NS_AVAILABLE(10_4, 9_0);
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernel.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernel.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernel.h	2025-04-19 02:59:38
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernel.h	2025-05-24 05:19:24
@@ -44,7 +44,7 @@
  * samplerCoord() or samplerTransform() to read pixel values from input images.
  * The function must return a vec4 pixel color.
  */
-NS_CLASS_AVAILABLE(10_4, 8_0)
+NS_CLASS_AVAILABLE(10_4, 8_0) NS_SWIFT_SENDABLE
 @interface CIKernel : NSObject
 {
     void *_priv;
@@ -151,7 +151,7 @@
  * The kernel should not call sample(), samplerCoord(), or samplerTransform().
  * The function must return a vec4 pixel color.
  */
-NS_CLASS_AVAILABLE(10_11, 8_0)
+NS_CLASS_AVAILABLE(10_11, 8_0) NS_SWIFT_SENDABLE
 @interface CIColorKernel : CIKernel
 {
 }
@@ -189,7 +189,7 @@
  * The kernel should not call sample(), samplerCoord(), or samplerTransform().
  * The function must return a vec2 source location.
  */
-NS_CLASS_AVAILABLE(10_11, 8_0)
+NS_CLASS_AVAILABLE(10_11, 8_0) NS_SWIFT_SENDABLE
 @interface CIWarpKernel : CIKernel
 {
 }
@@ -236,7 +236,7 @@
  * The kernel should not call sample(), samplerCoord(), or samplerTransform().
  * The function must return a vec4 pixel color.
  */
-NS_CLASS_AVAILABLE(10_13, 11_0)
+NS_CLASS_AVAILABLE(10_13, 11_0) NS_SWIFT_SENDABLE
 @interface CIBlendKernel : CIColorKernel
 {
 }
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2025-04-19 01:56:09
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIKernelMetalLib.h	2025-05-24 05:16:39
@@ -10,27 +10,48 @@
 #if __METAL_VERSION__
 
 #ifndef __CIKERNEL_METAL_VERSION__ // if not explicitly defined already
-    #if !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \
+    #if !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)  && \
         !defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && \
-        !defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__)
+        !defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__)     && \
+        !defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__)  && \
+        !defined(__ENVIRONMENT_OS_VERSION_MIN_REQUIRED__)
         #define __CIKERNEL_METAL_VERSION__ 200 // the includer of this didn't specify a MIN_REQUIRED compatibility
-    #elif (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 120000 || \
-        __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150000 || \
-        __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ >= 150000)
-        #if __METAL_CIKERNEL__
-            #define __CIKERNEL_METAL_VERSION__ 200
-        #else
-            #define __CIKERNEL_METAL_VERSION__ 300
-        #endif
-    #elif (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400 || \
-         __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120000 || \
-         __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ >= 120000)
+    #elif (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__  >= 160000 || \
+           __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 190000 || \
+           __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__     >= 190000 || \
+           __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__  >= 110000 || \
+           (__is_target_os(visionos) && __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__==3000))
+        #define __CIKERNEL_METAL_VERSION__ 400 // compatible w/ macOS 16/iOS 19/tvOS 19 or later
+    #elif (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__  >= 120000  || \
+           __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 150000  || \
+           __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__     >= 150000  || \
+           __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__  >=  80000  || \
+           __is_target_os(visionos))
+        #define __CIKERNEL_METAL_VERSION__ 300
+    #elif (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__  >= 101400 || \
+           __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 120000 || \
+           __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__     >= 120000 || \
+           __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__  >=  50000)
         #define __CIKERNEL_METAL_VERSION__ 200 // compatible w/ macOS 10.14/iOS 12.0/tvOS 12.0 or later
     #else
         #define __CIKERNEL_METAL_VERSION__ 100 // compatible w/ macOS 10.13/iOS 11.0/tvOS 11.0 or later
     #endif
 #endif
 
+
+#if __METAL_CIKERNEL__ // If Metal CIKernel is compiled with -fcikernel
+#if  __CIKERNEL_METAL_VERSION__ >= 200
+    #undef __CIKERNEL_METAL_VERSION__
+    #define __CIKERNEL_METAL_VERSION__ 200
+#endif
+#endif
+
+#if __CIKERNEL_METAL_VERSION__ >= 200
+#define __CIKERNEL_METAL_SUPPORTS_HALF__ 1
+#define __CIKERNEL_METAL_SUPPORTS_GATHER__ 1
+#define __CIKERNEL_METAL_SUPPORTS_GROUP_DESTINATION__ 1
+#endif
+
 #include <metal_stdlib>
 
 namespace coreimage
@@ -39,23 +60,17 @@
     
     typedef float4 sample_t;
     
-#if __CIKERNEL_METAL_VERSION__ >= 200
+#ifdef __CIKERNEL_METAL_SUPPORTS_HALF__
     typedef half4 sample_h;
 #endif
     
     //MARK: - Sampler
     
-#if __CIKERNEL_METAL_VERSION__ >= 300
-    typedef struct Sampler
-    {
-        friend Sampler make_sampler(texture2d<float, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
-    private:
-        Sampler(texture2d<float, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_):t(t_), s(s_),m(m_), dc(dc_){}
-    public:
-#else
     typedef struct
+    #if __CIKERNEL_METAL_VERSION__ >= 300
+    Sampler
+    #endif
     {
-#endif
         // Returns the pixel value produced from sampler at the position p, where p is specified in sampler space.
         float4 sample(float2 p) const;
         
@@ -73,7 +88,7 @@
         inline float2 origin() const { return extent().xy; }
         inline float2 size() const { return extent().zw; }
         
-#if __CIKERNEL_METAL_VERSION__ >= 200
+#ifdef __CIKERNEL_METAL_SUPPORTS_GATHER__
         // Returns four samples (placed in CCW order starting with sample to the lower left) that would be used for bilinear interpolation when sampling at the position p,
         // where p is specified in sampler space.
         float4 gatherX(float2 p) const;
@@ -89,6 +104,12 @@
 #endif
         
     private:
+        #if __CIKERNEL_METAL_VERSION__ >= 300
+        friend Sampler make_sampler(texture2d<float, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
+        Sampler(texture2d<float, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_)
+            : t(t_), s(s_),m(m_), dc(dc_) {}
+        #endif
+        
         texture2d<float, access::sample> t;
         metal::sampler s;
         constant float4x4& m;
@@ -96,18 +117,12 @@
         
     } sampler;
     
-#if __CIKERNEL_METAL_VERSION__ >= 200
-#if __CIKERNEL_METAL_VERSION__ >= 300
-    typedef struct Sampler_h
-    {
-        friend Sampler_h make_sampler_h(texture2d<half, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
-    private:
-        Sampler_h(texture2d<half, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_):t(t_), s(s_),m(m_), dc(dc_){}
-    public:
-#else
+#ifdef __CIKERNEL_METAL_SUPPORTS_HALF__
     typedef struct
+    #if __CIKERNEL_METAL_VERSION__ >= 300
+    Sampler_h
+    #endif
     {
-#endif //__CIKERNEL_METAL_VERSION__ >= 300
         // Returns the pixel value produced from sampler at the position p, where p is specified in sampler space.
         half4 sample(float2 p) const;
         
@@ -139,6 +154,12 @@
         half4 gatherW_unordered(float2 p) const;
         
     private:
+        #if __CIKERNEL_METAL_VERSION__ >= 300
+        friend Sampler_h make_sampler(texture2d<half, access::sample> t, metal::sampler s, constant float4x4& m, float2 dc );
+        Sampler_h(texture2d<half, access::sample> t_, metal::sampler s_, constant float4x4& m_, float2 dc_)
+            : t(t_), s(s_),m(m_), dc(dc_) {}
+        #endif
+        
         texture2d<half, access::sample> t;
         metal::sampler s;
         constant float4x4& m;
@@ -180,17 +201,14 @@
         
     } destination;
     
-#if __CIKERNEL_METAL_VERSION__ >= 200
+#ifdef __CIKERNEL_METAL_SUPPORTS_GROUP_DESTINATION__
     namespace group
     {
-#if __CIKERNEL_METAL_VERSION__ >= 300
-        typedef struct Destination
-        {
-                Destination(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<float, access::write> t_):c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
-#else
         typedef struct
+        #if __CIKERNEL_METAL_VERSION__ >= 300
+        Destination
+        #endif
         {
-#endif //__CIKERNEL_METAL_VERSION__ >= 300
             // 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.
             inline float2 coord() const { return c; }
@@ -199,6 +217,11 @@
             void write(float4 v0, float4 v1, float4 v2, float4 v3);
             
         private:
+            #if __CIKERNEL_METAL_VERSION__ >= 300
+            friend group::Destination make_destination (float2 c, uint2 gid, float4 r, float4x4 m, metal::texture2d<float, access::write> t );
+            Destination(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<float, access::write> t_) : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
+            #endif
+            
             float2 c;
             uint2 gid;
             float4 r;
@@ -207,14 +230,11 @@
             
         } __attribute__((packed)) destination;
         
-#if __CIKERNEL_METAL_VERSION__ >= 300
-        typedef struct Destination_h
-        {
-                Destination_h(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<half, access::write> t_):c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
-#else
         typedef struct
+        #if __CIKERNEL_METAL_VERSION__ >= 300
+        Destination_h
+        #endif
         {
-#endif //__CIKERNEL_METAL_VERSION__ >= 300
             // 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.
             inline float2 coord() const { return c; }
@@ -223,6 +243,11 @@
             void write(half4 v0, half4 v1, half4 v2, half4 v3);
             
         private:
+            #if __CIKERNEL_METAL_VERSION__ >= 300
+            friend group::Destination_h make_destination (float2 c, uint2 gid, float4 r, float4x4 m, metal::texture2d<half, access::write> t );
+            Destination_h(float2 c_, uint2 gid_, float4 r_, float4x4 m_, texture2d<half, access::write> t_) : c(c_), gid(gid_), r(r_), m(m_), t(t_) {}
+            #endif
+            
             float2 c;
             uint2 gid;
             float4 r;
@@ -243,7 +268,8 @@
         
     float3 linear_to_srgb(float3 s);
     float4 linear_to_srgb(float4 s);
-#if __CIKERNEL_METAL_VERSION__ >= 200
+    
+#ifdef __CIKERNEL_METAL_SUPPORTS_HALF__
     half4 premultiply(half4 s);
     half4 unpremultiply(half4 s);
 
@@ -262,7 +288,7 @@
     float3 compare(float3 x, float3 y, float3 z);
     float4 compare(float4 x, float4 y, float4 z);
     
-#if __CIKERNEL_METAL_VERSION__ >= 200
+#ifdef __CIKERNEL_METAL_SUPPORTS_HALF__
     half   compare(half   x, half   y, half   z);
     half2  compare(half2  x, half2  y, half2  z);
     half3  compare(half3  x, half3  y, half3  z);
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h	2025-04-19 05:08:12
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRAWFilter.h	2025-05-24 01:53:33
@@ -25,6 +25,8 @@
 
 typedef NSString* CIRAWDecoderVersion NS_TYPED_ENUM;
 CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersionNone;
+CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersion9;
+CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersion9DNG;
 CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersion8;
 CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersion8DNG;
 CORE_IMAGE_EXPORT CIRAWDecoderVersion const CIRAWDecoderVersion7;
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h	2025-04-19 05:08:12
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIRenderDestination.h	2025-05-24 07:16:18
@@ -184,6 +184,13 @@
 // This is false by default.
 @property BOOL blendsInDestinationColorSpace;
 
+/// Tell the next using this destination to capture a Metal trace.
+/// 
+/// If this property is set to a file-based URL, then the next render using this 
+/// destination will capture a Metal trace, deleting any existing file if present.
+/// This property is nil by default.
+@property (nullable, nonatomic, retain) NSURL* captureTraceURL NS_AVAILABLE(16_0, 19_0);
+
 @end
 
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIVector.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIVector.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIVector.h	2025-04-19 01:56:10
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIVector.h	2025-05-24 05:41:33
@@ -15,7 +15,17 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-NS_CLASS_AVAILABLE(10_4, 5_0)
+/// The Core Image class that defines a vector object.
+///
+/// A `CIVector` can store one or more `CGFloat` in one object. They can store a group of float values
+/// for a variety of different uses such as coordinate points, direction vectors, geometric rectangles, 
+/// transform matrices, convolution weights, or just a list a parameter values. 
+///
+/// You use `CIVector` objects in conjunction with other Core Image classes, such as ``CIFilter-class`` 
+/// and ``CIKernel``.  Many of the built-in Core Image filters have one or more `CIVector` inputs that 
+/// you can set to affect the filter's behavior.
+///
+NS_CLASS_AVAILABLE(10_4, 5_0) NS_SWIFT_SENDABLE
 @interface CIVector : NSObject <NSCopying, NSSecureCoding>
 {
     size_t _count;
@@ -29,60 +39,221 @@
 
 /* Create a new vector object. */
 
+/// Create a Core Image vector object that is initialized with the specified values.
+/// - Parameters:
+///   - values: The pointer `CGFloat` values to initialize the vector with.
+///   - count: The number of `CGFloats` specified by the `values` parameter.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length `count`.
 + (instancetype)vectorWithValues:(const CGFloat *)values count:(size_t)count;
 
+/// Create a Core Image vector object that is initialized with one value.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 1.
 + (instancetype)vectorWithX:(CGFloat)x;
+
+/// Create a Core Image vector object that is initialized with two values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 2.
 + (instancetype)vectorWithX:(CGFloat)x Y:(CGFloat)y;
+
+/// Create a Core Image vector object that is initialized with three values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+///   - z: The value for the third position in the vector.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 3.
 + (instancetype)vectorWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z;
+
+/// Create a Core Image vector object that is initialized with four values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+///   - z: The value for the third position in the vector.
+///   - w: The value for the forth position in the vector.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 4.
 + (instancetype)vectorWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z W:(CGFloat)w;
 
-/* the CGPoint x and y values are stored in the first X and Y values of the CIVector. */
+/// Create a Core Image vector object that is initialized with two values provided by a `CGPoint` structure.
+/// 
+/// The `CGRect` structure’s `y` and `y` values 
+/// are stored in the vector’s two values.
+/// - Parameters:
+///   - p: The `CGPoint` structure.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 2.
 + (instancetype)vectorWithCGPoint:(CGPoint)p NS_AVAILABLE(10_9, 5_0);
 
-/* the CGRect x, y, width, height values are stored in the first X, Y, Z, W values of the CIVector. */
+/// Create a Core Image vector object that is initialized with four values provided by a `CGRect` structure.
+/// 
+/// The `CGRect` structure’s `x`, `y`, `height` and `width` values 
+/// are stored in the vector’s four values.
+/// - Parameters:
+///   - r: The `CGRect` structure.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 4.
 + (instancetype)vectorWithCGRect:(CGRect)r NS_AVAILABLE(10_9, 5_0);
 
-/* the CGAffineTransform's six values are stored in the first six values of the CIVector. */
+/// Create a Core Image vector object that is initialized with six values provided by a `CGAffineTransform` structure.
+/// 
+/// The `CGAffineTransform` structure’s `a`, `b`, `c`, `d`, `tx` and `ty` values 
+/// are stored in the vector’s six values.
+/// - Parameters:
+///   - t: The `CGAffineTransform` structure.
+/// - Returns:
+///    An autoreleased ``CIVector`` object of length 6.
 + (instancetype)vectorWithCGAffineTransform:(CGAffineTransform)t NS_AVAILABLE(10_9, 5_0);
 
+/// Create a Core Image vector object with values provided in a string representation.
+/// - Parameters:
+///   - representation: A string that is in one of the formats returned by the `stringRepresentation` method.
+/// - Returns:
+///    An autoreleased ``CIVector`` object.
 + (instancetype)vectorWithString:(NSString *)representation;
 
 /* Initializers. */
 
+/// Initialize a Core Image vector object with the specified the values.
+/// - Parameters:
+///   - values: A pointer `CGFloat` values for vector.
+///   - count: The number of `CGFloats` specified by the `values` parameter.
+/// - Returns:
+///    An initialized ``CIVector`` object of length `count`.
 - (instancetype)initWithValues:(const CGFloat *)values count:(size_t)count NS_DESIGNATED_INITIALIZER;
 
+/// Initialize a Core Image vector object with one value.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 1.
 - (instancetype)initWithX:(CGFloat)x;
+
+/// Initialize a Core Image vector object with two values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 2.
 - (instancetype)initWithX:(CGFloat)x Y:(CGFloat)y;
+
+/// Initialize a Core Image vector object with three values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+///   - z: The value for the third position in the vector.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 3.
 - (instancetype)initWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z;
+
+/// Initialize a Core Image vector object with four values.
+/// - Parameters:
+///   - x: The value for the first position in the vector.
+///   - y: The value for the second position in the vector.
+///   - z: The value for the third position in the vector.
+///   - w: The value for the forth position in the vector.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 4.
 - (instancetype)initWithX:(CGFloat)x Y:(CGFloat)y Z:(CGFloat)z W:(CGFloat)w;
+
+/// Initialize a Core Image vector object with two values provided by a `CGPoint` structure.
+/// 
+/// The `CGRect` structure’s `y` and `y` values 
+/// are stored in the vector’s two values.
+/// - Parameters:
+///   - p: The `CGPoint` structure.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 2.
 - (instancetype)initWithCGPoint:(CGPoint)p NS_AVAILABLE(10_9, 5_0);
+
+/// Initialize a Core Image vector object with four values provided by a `CGRect` structure.
+/// 
+/// The `CGRect` structure’s `x`, `y`, `height` and `width` values 
+/// are stored in the vector’s four values.
+/// - Parameters:
+///   - r: The `CGRect` structure.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 4.
 - (instancetype)initWithCGRect:(CGRect)r NS_AVAILABLE(10_9, 5_0);
-- (instancetype)initWithCGAffineTransform:(CGAffineTransform)r NS_AVAILABLE(10_9, 5_0);
 
+/// Initialize a Core Image vector object with six values provided by a `CGAffineTransform` structure.
+/// 
+/// The `CGAffineTransform` structure’s `a`, `b`, `c`, `c`, `tx` and `ty` values 
+/// are stored in the vector’s six values.
+/// - Parameters:
+///   - t: The `CGAffineTransform` structure.
+/// - Returns:
+///    An initialized ``CIVector`` object of length 6.
+- (instancetype)initWithCGAffineTransform:(CGAffineTransform)t NS_AVAILABLE(10_9, 5_0);
+
+/// Initialize a Core Image vector object with values provided in a string representation.
+/// - Parameters:
+///   - representation: A string that is in one of the formats returned by the `stringRepresentation` method.
+/// - Returns:
+///    An initialized ``CIVector`` object.
 - (instancetype)initWithString:(NSString *)representation;
 
-/* Return the value from the vector at position 'index' (zero-based).
- * Any 'index' value is valid, if the component would otherwise be
- * undefined, zero is returned. */
+/// Returns a value from a specific position in the vector.
+/// 
+/// The numbering of elements in a vector begins with zero.
+/// - Parameters:
+///   - index: The position in the vector of the value that you want to retrieve.
+/// - Returns:
+///    The value retrieved from the vector or `0` if the position is undefined.
 - (CGFloat)valueAtIndex:(size_t)index;
 
-/* Return the number of values stored in the vector. */
+/// The number of items in the vector.
 @property (readonly) size_t count;
 
 /* Properties. */
 
+/// The value located in the first position in the vector.
 @property (readonly) CGFloat X;
+
+/// The value located in the second position in the vector.
 @property (readonly) CGFloat Y;
+
+/// The value located in the third position in the vector.
 @property (readonly) CGFloat Z;
+
+/// The value located in the forth position in the vector.
 @property (readonly) CGFloat W;
+
+/// Returns the values in the vector as a `CGPoint` structure.
+/// - Returns:
+///    Reading this property returns a `CGPoint` structure 
+///    from the `X` and `Y` values from the vector.
 @property (readonly) CGPoint CGPointValue NS_AVAILABLE(10_9, 5_0);
+
+/// Returns the values in the vector as a `CGRect` structure.
+/// - Returns:
+///    Reading this property creates a `CGRect` structure 
+///    whose origin is the `X`, `Y`, `Z` and `W` values from the vector.
 @property (readonly) CGRect CGRectValue NS_AVAILABLE(10_9, 5_0);
+
+/// Returns the values in the vector as a `CGAffineTransformValue` structure.
+/// - Returns:
+///    Reading this property creates a `CGAffineTransformValue` structure 
+///    from the first six values in the vector.
 @property (readonly) CGAffineTransform CGAffineTransformValue NS_AVAILABLE(10_9, 5_0);
 
-/* Returns a formatted string with the components of the vector.
- * The string is suitable for passing to [CIVector vectorWithString:].
- * This property is not KVO-safe because it returns a new NSString each time.
- * The value of the NSString will be the same each time it is called. */
+/// Returns a formatted string with all the values of a `CIVector`.
+///
+/// Some example string representations of vectors:
+/// 
+/// `CIVector`                               | `stringRepresentation`
+/// ---------------------------------------- | --------------
+/// `[CIVector vectorWithX:1.0 Y:0.5 Z:0.3]` | `"[1.0 0.5 0.3]"`
+/// `[CIVector vectorWithX:10.0 Y:23.0]`     | `"[10.0 23.0]"`
+/// 
+/// To create a ``CIVector`` object from a string representation, use the ``vectorWithString:`` method.
+/// 
 @property (readonly) NSString *stringRepresentation;
 
 @end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes	2025-04-19 03:36:57
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CoreImage.apinotes	2025-05-24 06:25:22
@@ -151,6 +151,10 @@
   SwiftName: auxiliaryHDRGainMap
 - Name: kCIImageContentHeadroom
   SwiftName: contentHeadroom
+- Name: kCIImageContentAverageLightLevel
+  SwiftName: contentAverageLightLevel
+- Name: kCIImageApplyCleanAperture
+  SwiftName: applyCleanAperture
 
 # CIImageRepresentationOption
 - Name: kCIImageRepresentationHDRGainMapImage
@@ -452,9 +456,18 @@
   - Selector: "imageByInsertingIntermediate:"
     MethodKind: Instance
     SwiftName: "insertingIntermediate(cache:)"
+  - Selector: "imageByInsertingTiledIntermediate"
+    MethodKind: Instance
+    SwiftName: "insertingTiledIntermediate()"
   - Selector: "imageByTaggingWithColorSpace:"
     MethodKind: Instance
     SwiftName: "tagged(with:)"
+  - Selector: "imageBySettingContentHeadroom:"
+    MethodKind: Instance
+    SwiftName: "settingContentHeadroom(_:)"
+  - Selector: "imageBySettingContentAverageLightLevel:"
+    MethodKind: Instance
+    SwiftName: "settingContentAverageLightLevel(_:)"
 - Name: CIKernel
   Methods:
   - Selector: "kernelsWithString:"
@@ -651,6 +664,10 @@
     SwiftName: kCIFormatRGBA16
   - Name: kCIFormatRGBAf
     SwiftName: kCIFormatRGBAf
+  - Name: kCIFormatRGBXh
+    SwiftName: kCIFormatRGBXh
+  - Name: kCIFormatRGBXf
+    SwiftName: kCIFormatRGBXf
   - Name: kCIFormatA8
     SwiftName: kCIFormatA8
   - Name: kCIFormatA16
Clone this wiki locally