- Notifications
You must be signed in to change notification settings - Fork 548
QuartzCore iOS xcode26.0 b1
Rolf Bjarne Kvinge edited this page Aug 28, 2025 · 4 revisions
#QuartzCore.framework https://github.com/dotnet/macios/pull/23697
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAAnimation.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAAnimation.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAAnimation.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAAnimation.h 2025-06-02 23:06:36 @@ -1,6 +1,6 @@ /* CoreAnimation - CAAnimation.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ @@ -342,16 +342,15 @@ @property float startProgress; @property float endProgress; +/* An optional filter object implementing the transition. When set the + * `type' and `subtype' properties are ignored. The filter must + * implement `inputImage', `inputTargetImage' and `inputTime' input + * keys, and the `outputImage' output key. Optionally it may support + * the `inputExtent' key, which will be set to a rectangle describing + * the region in which the transition should run. Defaults to nil. */ - - - - - - - - - +@property(nullable, strong) id filter + API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); @end diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CABase.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CABase.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CABase.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CABase.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CABase.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifndef CABASE_H diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAConstraintLayoutManager.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAConstraintLayoutManager.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAConstraintLayoutManager.h 1969-12-31 19:00:00 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAConstraintLayoutManager.h 2025-06-01 23:52:05 @@ -0,0 +1,122 @@ +/* CoreAnimation - CAConstraintLayoutManager.h + + Copyright (c) 2006-2025, Apple Inc. + All rights reserved. */ + +#ifdef __OBJC__ + +#import <QuartzCore/CALayer.h> + +API_AVAILABLE_BEGIN(macCatalyst(13.1)) +API_UNAVAILABLE_BEGIN(ios, tvos, watchos, visionos) + +/* The constraint-based layout manager add a `constraints' layer + * property, an array of CAConstraint objects. Each object describes + * one geometry relationship between two layers. Layout is then + * performed by fetching the constraints of each sublayer and solving + * the resulting system of constraints for the frame of each sublayer + * starting from the bounds of the containing layer. + * + * The relationships between layers are linear equations of the form: + * + * u = m v + c + * + * where 'u' and 'v' are scalar values representing geometry attributes + * of the two layers (e.g. leftmost x position), and 'm' and 'c' are + * constants. + * + * Sibling layers are referenced by name, using the `name' property of + * each layer. The special name "superlayer" should be used to refer to + * the layer's superlayer. */ + +typedef NS_ENUM (int, CAConstraintAttribute) +{ + kCAConstraintMinX, + kCAConstraintMidX, + kCAConstraintMaxX, + kCAConstraintWidth, + kCAConstraintMinY, + kCAConstraintMidY, + kCAConstraintMaxY, + kCAConstraintHeight, +}; + +@class CAConstraint; + +NS_HEADER_AUDIT_BEGIN(nullability, sendability) + +/** The additions to CALayer for constraint layout. **/ + +@interface CALayer (CAConstraintLayoutManager) + +/* The layer's array of CAConstraint objects. */ + +@property(nullable, copy) NSArray<CAConstraint *> *constraints; + +/* Append 'c' to the receiver's array of constraint objects. */ + +- (void)addConstraint:(CAConstraint *)c; + +@end + +/** The constraint-based layout manager. **/ + +API_AVAILABLE(macos(10.5)) +@interface CAConstraintLayoutManager : NSObject <CALayoutManager> + +/* Returns a new layout manager object. */ + ++ (instancetype)layoutManager; + +@end + +/** The class representing a single layout constraint. **/ + +API_AVAILABLE(macos(10.5)) +@interface CAConstraint : NSObject <NSSecureCoding> +{ +@private + NSString *_srcId; + CAConstraintAttribute _srcAttr :16; + CAConstraintAttribute _attr :16; + CGFloat _scale, _offset; +}; + +/* Create a new constraint object with the specified parameters. In the + * general case the new constraint will have the form: + * + * layer.attr = m * srcLayer.srcAttr + c + * + * 'm' defaults to one when undefined; 'c' defaults to zero. */ + ++ (instancetype)constraintWithAttribute:(CAConstraintAttribute)attr + relativeTo:(NSString *)srcId attribute:(CAConstraintAttribute)srcAttr + scale:(CGFloat)m offset:(CGFloat)c; ++ (instancetype)constraintWithAttribute:(CAConstraintAttribute)attr + relativeTo:(NSString *)srcId attribute:(CAConstraintAttribute)srcAttr + offset:(CGFloat)c; ++ (instancetype)constraintWithAttribute:(CAConstraintAttribute)attr + relativeTo:(NSString *)srcId attribute:(CAConstraintAttribute)srcAttr; + +/* Designated initializer. */ + +- (instancetype)initWithAttribute:(CAConstraintAttribute)attr + relativeTo:(NSString *)srcId attribute:(CAConstraintAttribute)srcAttr + scale:(CGFloat)m offset:(CGFloat)c; + +/* Accessors. */ + +@property(readonly) CAConstraintAttribute attribute; +@property(readonly) NSString *sourceName; +@property(readonly) CAConstraintAttribute sourceAttribute; +@property(readonly) CGFloat scale; +@property(readonly) CGFloat offset; + +@end + +NS_HEADER_AUDIT_END(nullability, sendability) + +API_UNAVAILABLE_END +API_AVAILABLE_END + +#endif diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CADisplayLink.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CADisplayLink.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CADisplayLink.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CADisplayLink.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CADisplayLink.h - Copyright (c) 2009-2022, Apple Inc. + Copyright (c) 2009-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEAGLLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEAGLLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEAGLLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEAGLLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAEAGLLayer.h - Copyright (c) 2007-2022, Apple Inc. + Copyright (c) 2007-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ @@ -18,7 +18,7 @@ * the created surface. */ #ifndef GLES_SILENCE_DEPRECATION -API_DEPRECATED("OpenGLES is deprecated", ios(2.0, 12.0), tvos(9.0, 12.0)) +API_DEPRECATED("OpenGLES is deprecated. (Define GLES_SILENCE_DEPRECATION to silence these warnings)", ios(2.0, 12.0), tvos(9.0, 12.0)) API_UNAVAILABLE(macos, watchos, visionos) #else API_AVAILABLE(ios(2.0), tvos(9.0)) API_UNAVAILABLE(macos, watchos, visionos) diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEDRMetadata.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEDRMetadata.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEDRMetadata.h 2025-04-19 01:46:56 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEDRMetadata.h 2025-06-03 23:36:36 @@ -1,20 +1,18 @@ /* CoreAnimation - CAEDRMetadata.h - Copyright (c) 2018-2022, Apple Inc. + Copyright (c) 2018-2025, Apple Inc. All rights reserved. */ #ifndef CAEDRMetadata_h #define CAEDRMetadata_h - - #ifdef __OBJC__ #include <Foundation/NSObject.h> NS_HEADER_AUDIT_BEGIN(nullability, sendability) -API_AVAILABLE(macos(10.15), ios(16.0)) API_UNAVAILABLE(watchos) +API_AVAILABLE(macos(10.15), ios(16.0)) API_UNAVAILABLE(tvos, watchos) @interface CAEDRMetadata : NSObject<NSCopying, NSSecureCoding> { @private @@ -115,7 +113,5 @@ NS_HEADER_AUDIT_END(nullability, sendability) #endif /* __OBJC__ */ - - #endif /* CAEDRMetadata_h */ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterCell.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterCell.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterCell.h 2025-04-19 02:47:46 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterCell.h 2025-06-02 23:01:48 @@ -1,6 +1,6 @@ /* CoreAnimation - CAEmitterCell.h - Copyright (c) 2007-2022, Apple Inc. + Copyright (c) 2007-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterLayer.h 2025-04-19 03:19:47 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAEmitterLayer.h 2025-05-28 02:13:56 @@ -1,6 +1,6 @@ /* CoreAnimation - CAEmitterLayer.h - Copyright (c) 2007-2022, Apple Inc. + Copyright (c) 2007-2025, Apple Inc. All rights reserved. */ /* Particle emitter layer. diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAFrameRateRange.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAFrameRateRange.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAFrameRateRange.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAFrameRateRange.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAFrameRateRange.h - Copyright (c) 2020-2022, Apple Inc. + Copyright (c) 2020-2025, Apple Inc. All rights reserved. */ #ifndef CAFRAMERATERANGE_H diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAGradientLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAGradientLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAGradientLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAGradientLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAGradientLayer.h - Copyright (c) 2008-2022, Apple Inc. + Copyright (c) 2008-2025, Apple Inc. All rights reserved. */ /* The gradient layer draws a color gradient over its background color, diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h 2025-04-19 04:34:09 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h 2025-06-02 23:06:36 @@ -1,6 +1,6 @@ /* CoreAnimation - CALayer.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ @@ -14,10 +14,8 @@ @class NSEnumerator, CAAnimation, CALayerArray; @protocol CAAction, CALayerDelegate; +@protocol CALayoutManager; - - - NS_HEADER_AUDIT_BEGIN(nullability, sendability) typedef NSString * CALayerContentsGravity NS_TYPED_ENUM API_AVAILABLE(macos(10.5), ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos); @@ -25,22 +23,19 @@ typedef NSString * CALayerContentsFilter NS_TYPED_ENUM API_AVAILABLE(macos(10.5), ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos); typedef NSString * CALayerCornerCurve NS_TYPED_ENUM API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos); +/* Bit definitions for `autoresizingMask' property. */ +typedef NS_OPTIONS (unsigned int, CAAutoresizingMask) +{ + kCALayerNotSizable = 0, + kCALayerMinXMargin = 1U << 0, + kCALayerWidthSizable = 1U << 1, + kCALayerMaxXMargin = 1U << 2, + kCALayerMinYMargin = 1U << 3, + kCALayerHeightSizable = 1U << 4, + kCALayerMaxYMargin = 1U << 5 +} API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); - - - - - - - - - - - - - - /* Options that control when to tone map CALayer contents and CAMetalLayer drawables. Defaults to CAToneMapModeAutomatic. */ typedef NSString * CAToneMapMode NS_TYPED_ENUM NS_SWIFT_NAME(CALayer.ToneMapMode) @@ -60,6 +55,44 @@ extern CAToneMapMode const CAToneMapModeIfSupported NS_SWIFT_NAME(ifSupported) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); +/* Options that control how to tone map the CGColors and contents of the layer. */ + +typedef NSString * CADynamicRange NS_TYPED_ENUM NS_SWIFT_NAME(CALayer.DynamicRange) +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); + +/* Automatic dynamic range. The system will decide how much dynamic range to use. + * If the `contents' of the layer or CGColors on the layer contain headroom + * tagging above 1.0, then the system will engage EDR mode. If you want to + * render the content in an SDR form, you should explicitly use + * CADynamicRangeStandard. If user will be primarily focused on this view, such + * as a fullscreen layer or an editing canvas, you may explicitly set + * CADynamicRangeHigh. */ + +extern CADynamicRange const CADynamicRangeAutomatic NS_SWIFT_NAME(automatic) +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); + +/* Standard dynamic range. Any tonemapped images or colors with headroom tagging + * will be tonemapped to a maximum pixel value of 1.0. */ + +extern CADynamicRange const CADynamicRangeStandard NS_SWIFT_NAME(standard) +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); + +/* Uses extended dynamic range, but brightness is modulated to optimize for + * co-existence with other composited content. For best results, images should + * contain contentAverageLightLevel metadata. Refer to CGImage API for more + * details. */ + +extern CADynamicRange const CADynamicRangeConstrainedHigh NS_SWIFT_NAME(constrainedHigh) +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); + +/* High dynamic range. Provides the best HDR quality. This should be reserved + * for situations where the user is expected to be focused on the media, such as + * larger views in an image editing/viewing app, or annotating/drawing with HDR colors. */ + +extern CADynamicRange const CADynamicRangeHigh NS_SWIFT_NAME(high) +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); + + /* Bit definitions for `edgeAntialiasingMask' property. */ typedef NS_OPTIONS (unsigned int, CAEdgeAntialiasingMask) @@ -128,7 +161,6 @@ /** Property methods. **/ - /* CALayer implements the standard NSKeyValueCoding protocol for all * Objective C properties defined by the class and its subclasses. It * dynamically implements missing accessor methods for properties @@ -143,27 +175,9 @@ * CGPoint NSValue * CGSize NSValue * CGRect NSValue - * CGAffineTransform NSValue + * CGAffineTransform NSValue (NSAffineTransform on macOS) * CATransform3D NSValue */ - - - - - - - - - - - - - - - - - - /* Returns the default value of the named property, or nil if no * default value is known. Subclasses that override this method to * define default values for their own properties should call `super' @@ -422,35 +436,61 @@ @property(copy) CALayerContentsFormat contentsFormat API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0)) API_UNAVAILABLE(watchos); - /* If YES, contents of the layer can be displayed up to its NSScreen's * maximumExtendedDynamicRangeColorComponentValue or UIScreen's * currentEDRHeadroom. If NO, contents are clipped or tonemapped to 1.0 (SDR). * `contents` with a CGColorSpaceRef conforming to ITU-R 2100 - * (CGColorSpaceUsesITUR_2100TF) will be tonemapped. Setting this value to - * YES may have a significant impact on power consumption and therefore - * should only be set when displaying EDR contents. The default value is NO. */ + * (CGColorSpaceUsesITUR_2100TF) will be tonemapped. This only effects the + * tonemapping of the receiving layer. + + * Setting this value to YES may have a significant impact on power consumption + * and therefore should only be set when displaying EDR contents. + * It is recommended to migrate to 'preferredDynamicRange', which requires that + * the layer contain a CGColor or `contents' with headroom tagging greater + * than 1.0 in order to activate EDR. If 'preferredDynamicRange' is set to a + * value other than 'CADynamicRangeStandard', contents will not be tone mapped + * to SDR, even if 'wantsExtendedDynamicRangeContent' is set to NO. + * + * The default value is NO. + */ @property BOOL wantsExtendedDynamicRangeContent - API_AVAILABLE(macos(14.0), ios(17.0), macCatalyst(17.0)) API_UNAVAILABLE(tvos, watchos); +API_DEPRECATED("Use preferredDynamicRange instead", macos(14.0, 26.0), ios(17.0, 26.0)) +API_UNAVAILABLE(tvos, watchos); - /* Options that control when to tone map CALayer contents and CAMetalLayer drawables. */ @property(copy) CAToneMapMode toneMapMode API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); +/* Controls the dynamic range used to render CGColors and `contents' of the + * layer that have headroom tagging greater thah 1.0. This only effects the + * tonemapping of the receiving layer (not ancestors or descendants). Defaults + * to CADynamicRangeAutomatic. Applications that were compiled against SDKs + * prior to macOS 16 or iOS 19 default to CADynamicRangeStandard. */ +@property(copy) CADynamicRange preferredDynamicRange +API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); +/* The amount of EDR headroom used by `contents' of the layer. Setting this + * property can help reduce the power impact when using a limited amount of + * dynamic range. If the `contents' is a CGImageRef with content headroom, or + * an IOSurfaceRef with kIOSurfaceContentHeadroom, this property does not need + * to be set. CAMetalLayers can use this value to define how much headroom is + * needed by their MTLDrawables. Defaults to 0, which means untagged. Values + * greater than 0, and less than 1.0 are undefined. */ +@property CGFloat contentsHeadroom + API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) API_UNAVAILABLE(watchos); +/* If YES, allows the layer's content to render at arbitrary integer scales + to preserve high-quality vector graphics. This only affects content drawn + through -drawLayerInContext or -drawInContext. Changing this value will + trigger an explicit `setNeedsDisplay`. The default value is NO. */ +@property BOOL wantsDynamicContentScaling + API_AVAILABLE(visionos(1.0)) API_UNAVAILABLE(macos, ios, tvos, watchos); - - - - - /* The filter types to use when rendering the `contents' property of * the layer. The minification filter is used when to reduce the size * of image data, the magnification filter to increase the size of @@ -535,24 +575,15 @@ @property CAEdgeAntialiasingMask edgeAntialiasingMask; - /* When true this layer is allowed to antialias its edges, as requested * by the value of the edgeAntialiasingMask property. * - * The default value is read from the boolean UIViewEdgeAntialiasing - * property in the main bundle's Info.plist. If no value is found in - * the Info.plist the default value is NO. */ + * The default value is read from the CALayerAllowsEdgeAntialiasing + * property in the main bundle's Info.plist. On iOS, if that property + * is not found, the UIViewEdgeAntialiasing property will be used + * instead. If no value is found in the Info.plist the default value is + * YES on macOS and NO on iOS. */ - - - - - - - - - - @property BOOL allowsEdgeAntialiasing API_AVAILABLE(macos(10.10), ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos); @@ -603,30 +634,18 @@ @property float opacity; - /* When true, and the layer's opacity property is less than one, the * layer is allowed to composite itself as a group separate from its * parent. This gives the correct results when the layer contains * multiple opaque components, but may reduce performance. * - * The default value of the property is read from the boolean - * UIViewGroupOpacity property in the main bundle's Info.plist. If no - * value is found in the Info.plist the default value is YES for - * applications linked against the iOS 7 SDK or later and NO for - * applications linked against an earlier SDK. */ + * The default value is read from the CALayerAllowsGroupOpacity + * property in the main bundle's Info.plist. On iOS, if that property + * is not found, the UIViewGroupOpacity property will be used instead. + * If no value is found in the Info.plist the default value is YES on + * macOS and iOS applications linked against the iOS 7 SDK or later, + * and NO for iOS applications linked against an earlier SDK. */ - - - - - - - - - - - - @property BOOL allowsGroupOpacity API_AVAILABLE(macos(10.10), ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos); @@ -709,23 +728,21 @@ /** Layout methods. **/ +/* A bitmask defining how the layer is resized when the bounds of its + * superlayer changes. See the CAAutoresizingMask enum for the bit + * definitions. Default value is zero. */ +@property CAAutoresizingMask autoresizingMask + API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); +/* The object responsible for assigning frame rects to sublayers, + * should implement methods from the CALayoutManager informal protocol. + * When nil (the default value) only the autoresizing style of layout + * is done (unless a subclass overrides -layoutSublayers). */ +@property(nullable, strong) id <CALayoutManager> layoutManager + API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); - - - - - - - - - - - - - /* Returns the preferred frame size of the layer in the coordinate * space of the superlayer. The default implementation calls the layout * manager if one exists and it implements the -preferredSizeOfLayer: @@ -764,17 +781,18 @@ - (void)layoutSublayers; +/* NSView-style springs and struts layout. -resizeSublayersWithOldSize: + * is called when the layer's bounds rect is changed. It calls + * -resizeWithOldSuperlayerSize: to resize the sublayer's frame to + * match the new superlayer bounds based on the sublayer's autoresizing + * mask. */ +- (void)resizeSublayersWithOldSize:(CGSize)size + API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); +- (void)resizeWithOldSuperlayerSize:(CGSize)size + API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos); - - - - - - - - /** Action methods. **/ /* An "action" is an object that responds to an "event" via the @@ -899,32 +917,31 @@ @end +/** Layout manager protocol. **/ +API_AVAILABLE(macCatalyst(13.1)) API_UNAVAILABLE(ios, tvos, watchos, visionos) +@protocol CALayoutManager <NSObject> +@optional +/* Called when the preferred size of 'layer' may have changed. The + * receiver is responsible for recomputing the preferred size and + * returning it. */ +- (CGSize)preferredSizeOfLayer:(CALayer *)layer; +/* Called when the preferred size of 'layer' may have changed. The + * receiver should invalidate any cached state. */ +- (void)invalidateLayoutOfLayer:(CALayer *)layer; +/* Called when the sublayers of 'layer' may need rearranging (e.g. if + * something changed size). The receiver is responsible for changing + * the frame of each sublayer that needs a new layout. */ +- (void)layoutSublayersOfLayer:(CALayer *)layer; +@end - - - - - - - - - - - - - - - - - /** Action (event handler) protocol. **/ API_AVAILABLE(macos(10.5), ios(2.0), tvos(9.0)) API_UNAVAILABLE(watchos) @@ -1023,6 +1040,8 @@ API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0)) API_UNAVAILABLE(watchos); CA_EXTERN CALayerContentsFormat const kCAContentsFormatGray8Uint /* Grayscale with alpha (if not opaque) UInt8 per component */ API_AVAILABLE(macos(10.12), ios(10.0), tvos(10.0)) API_UNAVAILABLE(watchos); +CA_EXTERN CALayerContentsFormat const kCAContentsFormatAutomatic NS_SWIFT_NAME (automatic) /* Automatically choose optimal format for CG drawing commands */ + API_AVAILABLE(macos(10.14), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos); /** Contents filter names. **/ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTiming.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTiming.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTiming.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTiming.h 2025-06-01 23:52:06 @@ -1,6 +1,6 @@ /* CoreAnimation - CAMediaTiming.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTimingFunction.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTimingFunction.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTimingFunction.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMediaTimingFunction.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAMediaTimingFunction.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalDisplayLink.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalDisplayLink.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalDisplayLink.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalDisplayLink.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAMetalDisplayLink.h - Copyright (c) 2023, Apple Inc. + Copyright (c) 2023-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalLayer.h 2025-04-19 02:22:18 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAMetalLayer.h 2025-06-02 23:06:36 @@ -1,6 +1,6 @@ /* CoreAnimation - CAMetalLayer.h - Copyright (c) 2013-2022, Apple Inc. + Copyright (c) 2013-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ @@ -8,17 +8,14 @@ #if __has_include(<Metal/MTLDrawable.h>) #import <QuartzCore/CALayer.h> - - #import <QuartzCore/CAEDRMetadata.h> - - #import <Metal/MTLPixelFormat.h> #import <Metal/MTLDrawable.h> @protocol MTLDevice; @protocol MTLTexture; @protocol MTLDrawable; +@protocol MTLResidencySet; @class CAMetalLayer, NSDictionary; @@ -49,11 +46,11 @@ /* Note: The default value of the `opaque' property for CAMetalLayer * instances is true. */ - +#if TARGET_OS_SIMULATOR +API_AVAILABLE(macos(10.11), ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos) +#else API_AVAILABLE(macos(10.11), ios(8.0), tvos(9.0)) API_UNAVAILABLE(watchos) - - - +#endif @interface CAMetalLayer : CALayer { @private @@ -124,34 +121,29 @@ @property (nullable) CGColorSpaceRef colorspace; - /* If any rendering context on the screen has this enabled, all content will be * clamped to its NSScreen’s maximumExtendedDynamicRangeColorComponentValue * rather than 1.0. The default is NO. */ @property BOOL wantsExtendedDynamicRangeContent -API_AVAILABLE(macos(10.11), ios(16.0), macCatalyst(16.0)) API_UNAVAILABLE(tvos, watchos); + API_AVAILABLE(macos(10.11), ios(16.0)) API_UNAVAILABLE(tvos, watchos); - - - /* Metadata describing extended dynamic range content in the layer's drawable. * Must be set before calling nextDrawable. If non-nil, content may be * tone mapped to match the current display characteristics. If nil, samples * will be rendered without tone mapping and values above the maximum EDR value * -[NSScreen maximumExtendedDynamicRangeColorComponentValue] may be clamped. * Defaults to nil. */ -@property (strong, nullable) CAEDRMetadata *EDRMetadata API_AVAILABLE(macos(10.15), ios(16.0)) API_UNAVAILABLE(watchos); +@property (strong, nullable) CAEDRMetadata *EDRMetadata + API_AVAILABLE(macos(10.15), ios(16.0)) API_UNAVAILABLE(tvos, watchos); +/* This property controls if this layer and its drawables will be synchronized + * to the display's Vsync. The default value is YES. */ +@property BOOL displaySyncEnabled + API_AVAILABLE(macos(10.13), macCatalyst(13.1)) + API_UNAVAILABLE(ios, tvos, watchos, visionos); - - - - - - - /* Controls if `-nextDrawable' is allowed to timeout after 1 second and return * nil if * the system does not have a free drawable available. The default * value is YES. If set to NO, then `-nextDrawable' will block forever until a @@ -164,6 +156,21 @@ @property(nullable, copy) NSDictionary *developerHUDProperties API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos); + +/* Metal residency set containing resources for presenting layer's drawables + * + * Applications should use this residency set to ensure all Metal resources + * needed to render into or present drawables are resident before use. The + * residency set will be updated automatically to always track the latest + * resources. When the `device` property is changed, the previous residency + * set will be invalidated and the application must request a new instance. + * Applications must not make any modifications to this residency set. The + * residency set will not be available if the device propery is nil, or if + * it does not support residency sets. */ + +@property (readonly) id<MTLResidencySet> residencySet + API_AVAILABLE(macos(26.0), ios(26.0), tvos(26.0), visionos(26.0)) + API_UNAVAILABLE(watchos); @end diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAOpenGLLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAOpenGLLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAOpenGLLayer.h 1969-12-31 19:00:00 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAOpenGLLayer.h 2025-06-01 23:52:06 @@ -0,0 +1,101 @@ +/* CoreAnimation - CAOpenGLLayer.h + + Copyright (c) 2006-2025, Apple Inc. + All rights reserved. */ + +#ifdef __OBJC__ + +#if __has_include(<OpenGL/OpenGL.h>) + +#import <QuartzCore/CALayer.h> +#import <CoreVideo/CVBase.h> +#import <OpenGL/OpenGL.h> + +NS_HEADER_AUDIT_BEGIN(nullability, sendability) + +#ifndef GL_SILENCE_DEPRECATION +API_DEPRECATED("OpenGL is deprecated. (Define GL_SILENCE_DEPRECATION to silence these warnings)", + macos(10.5, 10.14), macCatalyst(13.1, 13.1)) +#else +API_AVAILABLE(macos(10.5), macCatalyst(13.1)) +#endif +API_UNAVAILABLE(ios, tvos, watchos, visionos) +@interface CAOpenGLLayer : CALayer +{ +@private + struct CAOpenGLLayerPrivate *_glPriv; +} + +/* When false the contents of the layer is only updated in response to + * -setNeedsDisplay messages. When true the layer is asked to redraw + * periodically with timestamps matching the display update frequency. + * The default value is NO. */ + +@property(getter=isAsynchronous) BOOL asynchronous; + +/* Called before attempting to render the frame for layer time 't'. + * When non-null 'ts' describes the display timestamp associated with + * layer time 't'. If the method returns false, the frame is skipped. The + * default implementation always returns YES. */ + +- (BOOL)canDrawInCGLContext:(CGLContextObj)ctx + pixelFormat:(CGLPixelFormatObj)pf forLayerTime:(CFTimeInterval)t + displayTime:(nullable const CVTimeStamp *)ts; + +/* Called when a new frame needs to be generated for layer time 't'. + * 'ctx' is attached to the rendering destination. It's state is + * otherwise undefined. When non-null 'ts' describes the display + * timestamp associated with layer time 't'. Subclasses should call + * the superclass implementation of the method to flush the context + * after rendering. */ + +- (void)drawInCGLContext:(CGLContextObj)ctx pixelFormat:(CGLPixelFormatObj)pf + forLayerTime:(CFTimeInterval)t displayTime:(nullable const CVTimeStamp *)ts; + +/* This method will be called by the CAOpenGLLayer implementation when + * a pixel format object is needed for the layer. Should return an + * OpenGL pixel format suitable for rendering to the set of displays + * defined by the display mask 'mask'. The default implementation + * returns a 32bpp fixed point pixel format, with NoRecovery and + * Accelerated flags set. */ + +- (CGLPixelFormatObj)copyCGLPixelFormatForDisplayMask:(uint32_t)mask; + +/* Called when the OpenGL pixel format 'pf' that was previously + * returned from -copyCGLPixelFormatForDisplayMask: is no longer + * needed. */ + +- (void)releaseCGLPixelFormat:(CGLPixelFormatObj)pf; + +/* Called by the CAOpenGLLayer implementation when a rendering context + * is needed by the layer. Should return an OpenGL context with + * renderers from pixel format 'pf'. The default implementation + * allocates a new context with a null share context. */ + +- (CGLContextObj)copyCGLContextForPixelFormat:(CGLPixelFormatObj)pf; + +/* Called when the OpenGL context 'ctx' that was previously returned + * from -copyCGLContextForPixelFormat: is no longer needed. */ + +- (void)releaseCGLContext:(CGLContextObj)ctx; + +/* The colorspace of the rendered frames. If nil, no colormatching occurs. + * If non-nil, the rendered content will be colormatched to the colorspace of + * the context containing this layer (typically the display's colorspace). */ + +@property (nullable) CGColorSpaceRef colorspace; + +/* If any rendering context on the screen has this enabled, all content will be + * clamped to its NSScreen’s maximumExtendedDynamicRangeColorComponentValue + * rather than 1.0. The default is NO. */ + +@property BOOL wantsExtendedDynamicRangeContent + API_AVAILABLE(macos(10.11)); + +@end + +NS_HEADER_AUDIT_END(nullability, sendability) + +#endif /* __has_include(<OpenGL/OpenGL.h>) */ + +#endif /* __OBJC__ */ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerClient.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerClient.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerClient.h 1969-12-31 19:00:00 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerClient.h 2025-06-01 23:52:06 @@ -0,0 +1,48 @@ +/* CoreAnimation - CARemoteLayerClient.h + + Copyright (c) 2010-2025, Apple Inc. + All rights reserved. */ + +#ifdef __OBJC__ + +#import <QuartzCore/CABase.h> +#import <Foundation/NSObject.h> +#import <mach/mach.h> + +@class CALayer; + +NS_HEADER_AUDIT_BEGIN(nullability, sendability) + +API_AVAILABLE(macos(10.7), macCatalyst(13.1)) +API_UNAVAILABLE(ios, tvos, watchos, visionos) +@interface CARemoteLayerClient : NSObject +{ +@private + id _impl; +} + +/* The designated initializer. The port must have been obtained from + * -[CARemoteLayerServer serverPort]. */ + +- (instancetype)initWithServerPort:(mach_port_t)port; + +/* Invalidate the object, i.e. delete all state from the server. This + * is called implicitly when the object is finalized. */ + +- (void)invalidate; + +/* An integer used by the server to identify the client. The value + * should be passed back to the server so it can display the client's + * root layer. */ + +@property(readonly) uint32_t clientId; + +/* The root layer. Defaults to nil. */ + +@property(nullable, strong) CALayer *layer; + +@end + +NS_HEADER_AUDIT_END(nullability, sendability) + +#endif diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerServer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerServer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerServer.h 1969-12-31 19:00:00 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARemoteLayerServer.h 2025-06-01 23:52:05 @@ -0,0 +1,44 @@ +/* CoreAnimation - CARemoteLayerServer.h + + Copyright (c) 2010-2025, Apple Inc. + All rights reserved. */ + +#ifdef __OBJC__ + +#import <QuartzCore/CALayer.h> +#import <Foundation/NSObject.h> +#import <mach/mach.h> + +NS_HEADER_AUDIT_BEGIN(nullability, sendability) + +API_AVAILABLE(macos(10.7), macCatalyst(13.1)) +API_UNAVAILABLE(ios, tvos, watchos, visionos) +@interface CARemoteLayerServer : NSObject +{ +} + +/* Return the singleton server instance. */ + ++ (CARemoteLayerServer *)sharedServer; + +/* The Mach port that the server listens for new clients on. This + * should be sent to other processes that want to export layer trees + * into the server. */ + +@property(readonly) mach_port_t serverPort; + +@end + + +@interface CALayer (CARemoteLayerServer) + +/* Returns a layer that renders the root layer of the client with the given + * identifier as an extra implicit sublayer. */ + ++ (CALayer *)layerWithRemoteClientId:(uint32_t)client_id; + +@end + +NS_HEADER_AUDIT_END(nullability, sendability) + +#endif diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARenderer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARenderer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARenderer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CARenderer.h 2025-05-30 00:49:17 @@ -1,36 +1,34 @@ /* CoreAnimation - CARenderer.h - Copyright (c) 2007-2022, Apple Inc. + Copyright (c) 2007-2025, Apple Inc. All rights reserved. */ +/* This class lets an application manually drive the rendering of a + * layer tree into an OpenGL rendering context. This is _not_ the + * best solution for real-time output, use an NSView to host a layer + * tree for that. + * + * The contract between CARenderer and the provided OpenGL context is + * as follows: + * + * 1. the context should have an orthographic projection matrix and an + * identity model-view matrix, such that vertex position (0,0) is in + * the bottom left corner. (That is, window coordinates must match + * vertex coordinates.) + * + * Sample code to initialize the OpenGL context for a window of width + * W and height H could be: + * + * glViewport (0, 0, W, H); + * glMatrixMode (GL_PROJECTION); + * glLoadIdentity (); + * glOrtho (0, W, 0, H, -1, 1); + * + * 2. all OpenGL state apart from the viewport and projection matrices + * must have their default values when -render is called. On return + * from the -render method, the default values will be preserved. + */ - - - - - - - - - - - - - - - - - - - - - - - - - - - #ifdef __OBJC__ #import <QuartzCore/CABase.h> @@ -49,19 +47,18 @@ struct CARendererPriv *_priv; } +/* Create a new renderer object. Its render target is the specified + * Core OpenGL context. 'dict' is an optional dictionary of parameters. */ - - - - - - - - - - - - ++ (CARenderer *)rendererWithCGLContext:(void *)ctx + options:(nullable NSDictionary *)dict +#ifndef GL_SILENCE_DEPRECATION + API_DEPRECATED("OpenGL is deprecated. (Define GL_SILENCE_DEPRECATION to silence these warnings)", + macos(10.5, 10.14), macCatalyst(13.1, 13.1)) +#else + API_AVAILABLE(macos(10.5), macCatalyst(13.1)) +#endif + API_UNAVAILABLE(ios, tvos, watchos, visionos); /* Create a new renderer object. Its render target is the specified * texture. 'dict' is an optional dictionary of parameters. */ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAReplicatorLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAReplicatorLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAReplicatorLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAReplicatorLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAReplicatorLayer.h - Copyright (c) 2008-2022, Apple Inc. + Copyright (c) 2008-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAScrollLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAScrollLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAScrollLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAScrollLayer.h 2025-06-01 23:52:06 @@ -1,6 +1,6 @@ /* CoreAnimation - CAScrollLayer.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAShapeLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAShapeLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAShapeLayer.h 2025-04-19 02:38:21 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAShapeLayer.h 2025-06-01 23:52:06 @@ -1,6 +1,6 @@ /* CoreAnimation - CAShapeLayer.h - Copyright (c) 2008-2022, Apple Inc. + Copyright (c) 2008-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATextLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATextLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATextLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATextLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CATextLayer.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ @@ -28,17 +28,10 @@ @property(nullable, copy) id string; - - - - - - /* The font to use, currently may be either a CTFontRef (toll-free - * bridged from UIFont), a CGFontRef, or a string naming the font. + * bridged from NSFont or UIFont), a CGFontRef, or a string naming the font. * Defaults to the Helvetica font. Only used when the `string' property * is not an NSAttributedString. */ - @property(nullable) CFTypeRef font; diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATiledLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATiledLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATiledLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATiledLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CATiledLayer.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ /* This is a subclass of CALayer providing a way to asynchronously diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransaction.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransaction.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransaction.h 2025-04-19 02:30:41 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransaction.h 2025-06-02 23:01:48 @@ -1,6 +1,6 @@ /* CoreAnimation - CATransaction.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransform3D.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransform3D.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransform3D.h 2025-04-19 02:30:40 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransform3D.h 2025-05-28 02:13:56 @@ -1,6 +1,6 @@ /* CoreAnimation - CATransform3D.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifndef CATRANSFORM_H diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransformLayer.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransformLayer.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransformLayer.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CATransformLayer.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CATransformLayer.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h 2025-04-21 00:31:04 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CAValueFunction.h 2025-06-01 23:52:05 @@ -1,6 +1,6 @@ /* CoreAnimation - CAValueFunction.h - Copyright (c) 2008-2022, Apple Inc. + Copyright (c) 2008-2025, Apple Inc. All rights reserved. */ #ifdef __OBJC__ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h 2025-04-21 00:31:03 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CoreAnimation.h 2025-06-01 23:52:04 @@ -1,6 +1,6 @@ /* CoreAnimation - CoreAnimation.h - Copyright (c) 2006-2022, Apple Inc. + Copyright (c) 2006-2025, Apple Inc. All rights reserved. */ #ifndef COREANIMATION_H @@ -14,13 +14,9 @@ #endif #import <QuartzCore/CAAnimation.h> - - - +#import <QuartzCore/CAConstraintLayoutManager.h> #import <QuartzCore/CADisplayLink.h> - #import <QuartzCore/CAEAGLLayer.h> - #import <QuartzCore/CAMetalLayer.h> #import <QuartzCore/CAMetalDisplayLink.h> #import <QuartzCore/CAEmitterCell.h> @@ -30,13 +26,9 @@ #import <QuartzCore/CALayer.h> #import <QuartzCore/CAMediaTiming.h> #import <QuartzCore/CAMediaTimingFunction.h> - - - - - - - +#import <QuartzCore/CAOpenGLLayer.h> +#import <QuartzCore/CARemoteLayerClient.h> +#import <QuartzCore/CARemoteLayerServer.h> #import <QuartzCore/CARenderer.h> #import <QuartzCore/CAReplicatorLayer.h> #import <QuartzCore/CAScrollLayer.h> @@ -47,10 +39,6 @@ #import <QuartzCore/CATransform3D.h> #import <QuartzCore/CATransformLayer.h> #import <QuartzCore/CAValueFunction.h> - - #import <QuartzCore/CAEDRMetadata.h> - - #endif /* COREANIMATION_H */ diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h --- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h 2025-04-21 00:31:03 +++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/QuartzCore.h 2025-06-01 23:52:04 @@ -1,21 +1,18 @@ /* QuartzCore.h - Copyright (c) 2004-2022, Apple Inc. + Copyright (c) 2004-2025, Apple Inc. All rights reserved. */ #ifndef QUARTZCORE_H #define QUARTZCORE_H +#if __has_include(<QuartzCore/CoreImage.h>) && !__has_feature(modules) +#include <QuartzCore/CoreImage.h> +#endif - - - - - - - - - +#if __has_include(<QuartzCore/CoreVideo.h>) && !__has_feature(modules) +#include <QuartzCore/CoreVideo.h> +#endif #include <QuartzCore/CoreAnimation.h>