Skip to content

CompositorServices macOS xcode27.0 b1

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

#CompositorServices.framework

diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/CompositorServices.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/CompositorServices.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/CompositorServices.h	2026-04-19 02:43:16
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/CompositorServices.h	2026-05-23 15:05:16
@@ -8,10 +8,13 @@
 #import <CoreFoundation/CoreFoundation.h>
 #import <simd/simd.h>
 
+#undef CP_ARKIT_AVAILABLE
+#define CP_ARKIT_AVAILABLE (TARGET_OS_VISION || TARGET_OS_OSX)
+
 #import <CompositorServices/cp_conditionals.h>
 
 #ifdef __OBJC__
-#if TARGET_OS_IOS || TARGET_OS_VISION
+#if (TARGET_OS_IOS || TARGET_OS_VISION) && !TARGET_OS_MACCATALYST
 #import <UIKit/UIKit.h>
 #endif
 #import <Metal/Metal.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_base.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_base.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_base.h	2026-04-19 02:43:16
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_base.h	2026-05-29 01:12:13
@@ -51,7 +51,7 @@
 
 #ifdef __swift__
     #define CP_STRUCT_REF_BASE_SWIFT_COMPATIBLE(object, swift_define, api_availability) \
-        typedef struct object ## _t { struct object _Nullable *opaque_pointer CF_REFINED_FOR_SWIFT; } swift_define api_availability object ## _t
+        typedef struct object ## _t { struct object *_Nullable opaque_pointer CF_REFINED_FOR_SWIFT; } swift_define api_availability object ## _t
     #define CP_STRUCT_REF_3(object, swift_name, api_availability) \
         CP_STRUCT_REF_BASE_SWIFT_COMPATIBLE(object, CF_SWIFT_NAME(swift_name), api_availability)
     #define CP_NULLABLE_STRUCT_REF
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_conditionals.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_conditionals.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_conditionals.h	2026-04-19 02:43:16
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/cp_conditionals.h	2026-05-23 15:05:16
@@ -9,7 +9,10 @@
 #ifndef cp_conditionals_h
 #define cp_conditionals_h
 
-#define CP_ARKITCORE_AVAILABLE ((TARGET_OS_VISION && !TARGET_OS_SIMULATOR) || TARGET_OS_OSX)
+// TODO: Remove the the workaround for TARGET_OS_MACCATALYST
+// rdar://165627547 (remove ar_device_anchor_t workaround for TARGET_OS_MACCATALYST) after
+// rdar://163150992 (CompositorServices drawable.h references ar_device_anchor_t but does not import a header where that is defined)
+#define CP_ARKITCORE_AVAILABLE ((TARGET_OS_VISION && !TARGET_OS_SIMULATOR) || TARGET_OS_OSX) && !TARGET_OS_MACCATALYST
 #define CP_MTL4_AVAILABLE      !TARGET_OS_SIMULATOR
 
 #endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/drawable.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/drawable.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/drawable.h	2026-04-18 23:53:11
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/drawable.h	2026-05-23 15:05:16
@@ -280,7 +280,14 @@
 /// ``cp_frame_timing_get_presentation_time`` function to get the presentation
 /// time for the frame.
 void
+#if (CP_ARKIT_AVAILABLE || CP_ARKITCORE_AVAILABLE) && !TARGET_OS_MACCATALYST
 cp_drawable_set_device_anchor(cp_drawable_t drawable, _Nullable ar_device_anchor_t device_anchor)
+#else
+// TODO: Remove the the workaround for TARGET_OS_MACCATALYST
+// rdar://165627547 (remove ar_device_anchor_t workaround for TARGET_OS_MACCATALYST) after
+// rdar://163150992 (CompositorServices drawable.h references ar_device_anchor_t but does not import a header where that is defined)
+cp_drawable_set_device_anchor(cp_drawable_t drawable, _Nullable id device_anchor)
+#endif
 CF_REFINED_FOR_SWIFT API_AVAILABLE(visionos(1.0), macosx(26.0));
 
 /// Returns the predicted device anchor information you specified for the frame.
@@ -289,7 +296,14 @@
 ///    - drawable: The drawable for a frame.
 /// - Returns: The current device anchor for the frame, or ``null``
 /// if you didn't specify a device anchor.
+#if (CP_ARKIT_AVAILABLE || CP_ARKITCORE_AVAILABLE) && !TARGET_OS_MACCATALYST
 _Nullable ar_device_anchor_t
+#else
+// TODO: Remove the the workaround for TARGET_OS_MACCATALYST
+// rdar://165627547 (remove ar_device_anchor_t workaround for TARGET_OS_MACCATALYST) after
+// rdar://163150992 (CompositorServices drawable.h references ar_device_anchor_t but does not import a header where that is defined)
+_Nullable id
+#endif
 cp_drawable_get_device_anchor(cp_drawable_t drawable)
 CF_REFINED_FOR_SWIFT API_AVAILABLE(visionos(1.0), macosx(26.0));
 
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/frame.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/frame.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/frame.h	2026-04-18 23:51:42
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CompositorServices.framework/Headers/frame.h	2026-05-29 01:12:13
@@ -228,7 +228,7 @@
 /// for CompositorServices and Metal renderers which has a counter-clockwise winding order.
 ///
 /// To avoid false positives during culling, transform should have broader tangents and depth range compared to one
-/// will be used for rendering. As the the time performing culling becomes more distant from `presentation time`,
+/// will be used for rendering. As the time performing culling becomes more distant from `presentation time`,
 /// renderer should request for wider tangents/depth.
 simd_float4x4
 cp_frame_monocular_frustum_matrix_for_drawable_target(cp_frame_t frame,
@@ -246,19 +246,16 @@
 /// before calling into ``cp_frame_end_submission``. Renderer should not utilize this transform for actual rendering output.
 ///
 /// @code
-///                 /
+///
 ///                /
-///               / Monocular eye
-///              /------
-///  Binocular  /
-///     eye    |
-///             \     ╱
-///              \   ╱
-///               \ ╱
-///                \ Monocular eye
-///                 ╲
-///                  ╲
-///                   ╲
+///               / Left eye
+///              /\ frustrum
+///  Binocular  /  \
+///  frustrum   |
+///             \  /
+///              \/ Right eye
+///               \ frustrum
+///                \
 ///@endcode
 ///
 /// - Parameters:
@@ -288,7 +285,7 @@
 /// It computes corresponding binocular view relative to views, for defined transforms and projection matrix.
 ///
 /// To avoid false positives during culling, transform should have broader tangents and depth range compared to one
-/// will be used for rendering. As the the time performing culling becomes more distant from `presentation time`,
+/// will be used for rendering. As the time performing culling becomes more distant from `presentation time`,
 /// renderer should request for wider tangents/depth.
 ///
 /// ``cp_frame_get_drawable_target_view_count`` for given target should be more than 1 view.
@@ -351,7 +348,7 @@
 /// for CompositorServices and Metal renderers which has a counter-clockwise winding order.
 ///
 /// To avoid false positives during culling, transform should have broader tangents and depth range compared to one
-/// will be used for rendering. As the the time performing culling becomes more distant from `presentation time`,
+/// will be used for rendering. As the time performing culling becomes more distant from `presentation time`,
 /// renderer should request for wider tangents/depth.
 simd_float4x4
 cp_frame_monocular_frustum_matrix(cp_frame_t frame,
@@ -368,19 +365,16 @@
 /// before calling into ``cp_frame_end_submission``. Renderer should not utilize this transform for actual rendering output.
 ///
 /// @code
-///                 /
+///
 ///                /
-///               / Monocular eye
-///              /------
-///  Binocular  /
-///     eye    |
-///             \     ╱
-///              \   ╱
-///               \ ╱
-///                \ Monocular eye
-///                 ╲
-///                  ╲
-///                   ╲
+///               / Left eye
+///              /\ frustrum
+///  Binocular  /  \
+///  frustrum   |
+///             \  /
+///              \/ Right eye
+///               \ frustrum
+///                \
 ///@endcode
 ///
 /// - Parameters:
@@ -409,7 +403,7 @@
 /// It computes corresponding binocular view relative to views, for defined transforms and projection matrix.
 ///
 /// To avoid false positives during culling, transform should have broader tangents and depth range compared to one
-/// will be used for rendering. As the the time performing culling becomes more distant from `presentation time`,
+/// will be used for rendering. As the time performing culling becomes more distant from `presentation time`,
 /// renderer should request for wider tangents/depth.
 simd_float4x4
 cp_frame_binocular_frustum_matrix(cp_frame_t frame,

Clone this wiki locally