-
Notifications
You must be signed in to change notification settings - Fork 571
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,