Skip to content

TouchController MacCatalyst xcode26.0 b6

Rolf Bjarne Kvinge edited this page Aug 19, 2025 · 1 revision

#TouchController.framework

diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCButton.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCButton.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCButton.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCButton.h	2025-08-04 09:03:39
@@ -0,0 +1,85 @@
+//
+//  TCButton.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A control that represents a single on-screen button.
+///
+/// This is mirrored by a <doc://com.apple.documentation/documentation/gamecontroller/gccontrollerbuttoninput>
+/// on the associated <doc://com.apple.documentation/documentation/gamecontroller/gccontroller>.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCButton : NSObject<TCControl, TCControlLayout>
+
+/// The contents for the button in its normal state.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// The collider shape for the button.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// Not available.  Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a button.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCButtonDescriptor : NSObject
+
+/// The label you associate with the button.
+@property (nonatomic, strong) TCControlLabel *label;
+
+/// The contents for the button in its normal state.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The anchor point that the button's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+
+/// The z-index of the button. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+
+/// The size (width, height) of the button in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The shape of collider to use for the button.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Creates a new button descriptor with default values.
+- (instancetype)init;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCColliderShape.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCColliderShape.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCColliderShape.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCColliderShape.h	2025-08-04 09:03:39
@@ -0,0 +1,24 @@
+//
+//  TCColliderShape.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Defines the shape of a control collider.
+typedef NS_ENUM(NSInteger, TCColliderShape) {
+    /// A circular collider.
+    TCColliderShapeCircle,
+    /// A rectangular collider.
+    TCColliderShapeRect,
+    /// A collider representing the left side of the view the touch controller is embedded in. Useful for thumbsticks and delta controls, so the user can easily hit the control without looking closely.
+    TCColliderShapeLeftSide,
+    /// A collider representing the right side of the view the touch controller is embedded in. Useful for thumbsticks and delta controls, so the user can easily hit the control without looking closely.
+    TCColliderShapeRightSide,
+} API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControl.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControl.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControl.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControl.h	2025-08-04 09:03:39
@@ -0,0 +1,61 @@
+//
+//  TCControl.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCColliderShape.h>
+#import <TouchController/TCControlLabel.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A protocol that defines the base properties and methods for all touch controls.
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@protocol TCControl <NSObject, TCControlLayout>
+
+@required
+
+/// The label associated with the control.
+@property (nonatomic, strong, readonly) TCControlLabel *label;
+
+/// The collider shape for the control.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// Indicates whether the control is currently pressed.
+@property (nonatomic, assign, readonly, getter=isPressed) BOOL pressed;
+
+/// A Boolean value that indicates whether the control is enabled.
+///
+/// If disabled, it won't respond to touches.
+@property (nonatomic, assign, getter=isEnabled) BOOL enabled;
+
+/// Handles a touch began event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch began.
+- (void)handleTouchBeganAtPoint:(CGPoint)point;
+
+/// Handles a touch moved event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch moved to.
+- (void)handleTouchMovedAtPoint:(CGPoint)point;
+
+/// Handles a touch ended event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch ended.
+- (void)handleTouchEndedAtPoint:(CGPoint)point;
+
+@optional
+
+/// The duration of the highlight animation.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlContents.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlContents.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlContents.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlContents.h	2025-08-04 09:03:39
@@ -0,0 +1,130 @@
+//
+//  TCControlContents.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCTouchController.h>
+#import <TouchController/TCControlLabel.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCControlImage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Defines the visual shape of a button.
+typedef NS_ENUM(NSInteger, TCControlContentsButtonShape) {
+    /// A circular button shape.
+    TCControlContentsButtonShapeCircle,
+    /// A rectangular button shape.
+    TCControlContentsButtonShapeRect,
+} NS_SWIFT_NAME(TCControlContents.ButtonShape) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// Defines the direction of a direction pad visual.
+typedef NS_ENUM(NSInteger, TCControlContentsDpadDirection) {
+    /// The up direction.
+    TCControlContentsDpadDirectionUp,
+    /// The down direction.
+    TCControlContentsDpadDirectionDown,
+    /// The left direction.
+    TCControlContentsDpadDirectionLeft,
+    /// The right direction.
+    TCControlContentsDpadDirectionRight,
+} NS_SWIFT_NAME(TCControlContents.DpadDirection) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// Defines the visual style of the individual up/down/left/right elements of a direction pad.
+typedef NS_ENUM(NSInteger, TCControlContentsDpadElementStyle) {
+    /// A circular direction pad style.
+    TCControlContentsDpadElementStyleCircle,
+    /// A pentagon direction pad style.
+    TCControlContentsDpadElementStylePentagon,
+} NS_SWIFT_NAME(TCControlContents.DpadElementStyle) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// Represents the visual contents of a touch control.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCControlContents : NSObject
+
+/// Creates a new instance with the specified images.
+///
+/// - Parameters:
+///   - images: An array of `TCControlImage` objects to use for the contents.
+/// - Returns: A new `TCControlContents` instance.
++ (instancetype)contentsWithImages:(NSArray<TCControlImage *> *)images;
+
+/// The button contents for the specified system image name, size, and shape.
+///
+/// - Parameters:
+///   - imageName: The name of the system image to use for the button.
+///   - size: The size of the button in points.
+///   - shape: The shape of the button.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the button.
++ (TCControlContents *)buttonContentsForSystemImageNamed:(NSString *)imageName size:(CGSize)size shape:(TCControlContentsButtonShape)shape controller:(TCTouchController *)controller;
+
+/// The switch contents for the specified system image name, size, and shape.
+///
+/// - Parameters:
+///   - imageName: The name of the system image to use for the switch button.
+///   - size: The size of the switch button in points.
+///   - shape: The shape of the switch button.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the switch button.
++ (TCControlContents *)switchedOnContentsForSystemImageNamed:(NSString *)imageName size:(CGSize)size shape:(TCControlContentsButtonShape)shape controller:(TCTouchController *)controller;
+
+/// The thumbstick stick contents for the specified size.
+///
+/// - Parameters:
+///   - size: The size of the thumbstick stick in points.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the thumbstick stick.
++ (TCControlContents *)thumbstickStickContentsOfSize:(CGSize)size controller:(TCTouchController *)controller NS_SWIFT_NAME(thumbstickStickContents(size:controller:));
+
+/// The thumbstick background contents for the specified size.
+///
+/// - Parameters:
+///   - size: The size of the thumbstick background in points.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the thumbstick background.
++ (TCControlContents *)thumbstickBackgroundContentsOfSize:(CGSize)size controller:(TCTouchController *)controller NS_SWIFT_NAME(thumbstickStickBackgroundContents(size:controller:));
+
+/// The throttle indicator contents for the specified size.
+///
+/// - Parameters:
+///   - size: The size of the throttle indicator in points.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the throttle indicator.
++ (TCControlContents *)throttleIndicatorContentsOfSize:(CGSize)size controller:(TCTouchController *)controller NS_SWIFT_NAME(throttleIndicatorContents(size:controller:));
+
+/// The throttle background contents for the specified size.
+///
+/// - Parameters:
+///   - size: The size of the throttle background in points.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the throttle background.
++ (TCControlContents *)throttleBackgroundContentsOfSize:(CGSize)size controller:(TCTouchController *)controller NS_SWIFT_NAME(throttleBackgroundContents(size:controller:));
+
+/// The direction pad contents for the specified label, size, style, and direction.
+///
+/// - Parameters:
+///   - label: The label for the direction pad.
+///   - size: The size of the direction pad in points.
+///   - style: The style of the direction pad.
+///   - direction: The direction of the direction pad visual.
+///   - controller: The touch controller to create control contents for.
+/// - Returns: The `TCControlContents` for the direction pad.
++ (TCControlContents *)directionPadContentsForLabel:(TCControlLabel *)label size:(CGSize)size style:(TCControlContentsDpadElementStyle)style direction:(TCControlContentsDpadDirection)direction controller:(TCTouchController *)controller NS_SWIFT_NAME(directionPadContents(label:size:style:direction:controller:));
+
+/// Not available. Use `contentsWithImages:` to create a `TCControlContents`.
+- (instancetype)init NS_UNAVAILABLE;
+
+/// The array of objects used to render the control.
+@property (nonatomic, strong, readonly) NSArray<TCControlImage *> *images;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlImage.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlImage.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlImage.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlImage.h	2025-08-04 09:03:39
@@ -0,0 +1,77 @@
+//
+//  TCControlImage.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+@class UIImage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Represents an image to be rendered using Metal.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCControlImage : NSObject
+
+/// Not available. Use designated initializer.
+- (instancetype)init NS_UNAVAILABLE;
+
+/// Creates a new image with the specified texture and size.
+///
+/// - Parameters:
+///   - texture: The Metal texture to use for the image.
+///   - size: The size of the image in points.
+/// - Returns: A new `TCControlImage` instance.
+- (instancetype)initWithTexture:(id<MTLTexture>)texture size:(CGSize)size;
+
+/// Creates a new image with the specified texture, size, highlight texture, offset, and color tint.
+///
+/// - Parameters:
+///   - texture: The Metal texture to use for the image.
+///   - size: The size of the image in points.
+///   - highlightTexture: The Metal texture to use for the image when highlighted. May be `nil`.
+///   - offset: The offset from the center of the parent control in points.
+///   - tintColor: The color tint to apply to the texture. The color ref is retained.
+/// - Returns: A new `TCControlImage` instance.
+- (instancetype)initWithTexture:(id<MTLTexture>)texture size:(CGSize)size highlightTexture:(id<MTLTexture> __nullable)highlightTexture offset:(CGPoint)offset tintColor:(CGColorRef)tintColor NS_DESIGNATED_INITIALIZER;
+
+/// Creates a new image from a CGImage.
+///
+/// - Parameters:
+///   - cgImage: The Core Graphics image to create the texture from.
+///   - size: The size of the image in points.
+///   - device: The Metal device used to create the texture.
+/// - Returns: A new `TCControlImage` instance, or `nil` if texture creation fails.
+- (nullable instancetype)initWithCGImage:(CGImageRef)cgImage size:(CGSize)size device:(id<MTLDevice>)device;
+
+/// Creates a new image from a UIImage.
+///
+/// - Parameters:
+///   - uiImage: The UIKit image to create the texture from.
+///   - size: The size of the image in points.
+///   - device: The Metal device used to create the texture.
+/// - Returns: A new `TCControlImage` instance, or `nil` if the UIImage has no backing CGImage
+///            or if texture creation fails.
+- (nullable instancetype)initWithUIImage:(UIImage *)uiImage size:(CGSize)size device:(id<MTLDevice>)device;
+
+
+/// The Metal texture to use for the image.
+@property (nonatomic, strong) id<MTLTexture> texture;
+/// The Metal texture to use for the image when highlighted. May be `nil`.
+@property (nonatomic, strong, nullable) id<MTLTexture> highlightTexture;
+/// The size of the image in points.
+@property (nonatomic, assign) CGSize size;
+/// The offset from the center of the parent control in points.
+@property (nonatomic, assign) CGPoint offset;
+/// The color tint to apply to the texture. The color ref is retained.
+@property (nonatomic, assign) CGColorRef tintColor;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlLabel.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlLabel.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlLabel.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlLabel.h	2025-08-04 09:03:39
@@ -0,0 +1,75 @@
+//
+//  TCControlLabel.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Defines the role for a control label. This determines the type of control on
+/// the touch controller's associated GCController.
+typedef NS_ENUM(NSInteger, TCControlLabelRole) {
+    /// A label for a button input controller.
+    TCControlLabelRoleButton,
+    /// A label for a direction pad controller.
+    TCControlLabelRoleDirectionPad,
+} NS_SWIFT_NAME(TCControlLabel.Role) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// A label you associate with a touch control and provides a semantic description.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCControlLabel : NSObject
+
+/// Creates a pre-configured label for the "A" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonA;
+/// Creates a pre-configured label for the "B" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonB;
+/// Creates a pre-configured label for the "X" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonX;
+/// Creates a pre-configured label for the "Y" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonY;
+/// Creates a pre-configured label for the "Menu" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonMenu;
+/// Creates a pre-configured label for the "Options" button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonOptions;
+/// Creates a pre-configured label for the left shoulder button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonLeftShoulder;
+/// Creates a pre-configured label for the left trigger button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonLeftTrigger;
+/// Creates a pre-configured label for the right shoulder button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonRightShoulder;
+/// Creates a pre-configured label for the right trigger button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *buttonRightTrigger;
+/// Creates a pre-configured label for the left thumbstick.
+@property (class, nonatomic, strong, readonly) TCControlLabel *leftThumbstick;
+/// Creates a pre-configured label for the left thumbstick button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *leftThumbstickButton;
+/// Creates a pre-configured label for the right thumbstick.
+@property (class, nonatomic, strong, readonly) TCControlLabel *rightThumbstick;
+/// Creates a pre-configured label for the right thumbstick button.
+@property (class, nonatomic, strong, readonly) TCControlLabel *rightThumbstickButton;
+/// Creates a pre-configured label for the direction pad.
+@property (class, nonatomic, strong, readonly) TCControlLabel *directionPad;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/// Creates a new instance with the provided name and type.
+///
+/// - Parameters:
+///   - name: The name of the control label. Corresponds to the input name on the game controller's physical input profile.
+///   - role: The role of the control label. Corresponds to the type of the `GCControllerElement`on the `GCController`.
+/// - Returns: A new `TCControlLabel` instance.
+- (instancetype)initWithName:(NSString *)name role:(TCControlLabelRole)role;
+
+/// The name of the control label that you use for lookup on a game controller instance.
+@property (nonatomic, retain, readonly) NSString *name;
+/// The type of the control label.
+@property (nonatomic, assign, readonly) TCControlLabelRole role;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlLayout.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlLayout.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCControlLayout.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCControlLayout.h	2025-08-04 09:03:39
@@ -0,0 +1,66 @@
+//
+//  TCControlLayout.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Defines the anchor point for a control.
+typedef NS_ENUM(NSInteger, TCControlLayoutAnchor) {
+    /// Anchors to the top-left corner, relative to the screen size.
+    TCControlLayoutAnchorTopLeft,
+    /// Anchors to the top-center, relative to the screen size.
+    TCControlLayoutAnchorTopCenter,
+    /// Anchors to the top-right corner, relative to the screen size.
+    TCControlLayoutAnchorTopRight,
+    /// Anchors to the center-left, relative to the screen size.
+    TCControlLayoutAnchorCenterLeft,
+    /// Anchors to the center, relative to the screen size.
+    TCControlLayoutAnchorCenter,
+    /// Anchors to the center-right, relative to the screen size.
+    TCControlLayoutAnchorCenterRight,
+    /// Anchors to the bottom-left corner, relative to the screen size.
+    TCControlLayoutAnchorBottomLeft,
+    /// Anchors to the bottom-center, relative to the screen size.
+    TCControlLayoutAnchorBottomCenter,
+    /// Anchors to the bottom-right corner, relative to the screen size.
+    TCControlLayoutAnchorBottomRight,
+} API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// Defines the coodinate system for an anchor point.
+typedef NS_ENUM(NSInteger, TCControlLayoutAnchorCoordinateSystem) {
+    /// Anchors are positioned relative to the device's screen size.
+    /// - On larger devices, the coordinate system is shrunk for easier handling.
+    /// - On smaller devices, this is equivalent to `TCControlLayoutAnchorCoordinateSystemAbsolute`.
+    TCControlLayoutAnchorCoordinateSystemRelative,
+    /// Anchors are positioned according to the absolute edges of the sceren.
+    TCControlLayoutAnchorCoordinateSystemAbsolute,
+} API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// A protocol defining the controlLayout properties for a control.
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@protocol TCControlLayout <NSObject>
+
+@required
+
+/// The anchor point of the control.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+/// The offset from the anchor point.
+@property (nonatomic, assign) CGPoint offset;
+/// The z-index of the controlLayout, used for z-ordering.
+@property (nonatomic, assign) NSInteger zIndex;
+/// The size of the control in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The calculated position of the control.
+@property (nonatomic, assign, readonly) CGPoint position;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCDirectionPad.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCDirectionPad.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCDirectionPad.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCDirectionPad.h	2025-08-04 09:03:39
@@ -0,0 +1,164 @@
+//
+//  TCDirectionPad.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// An object that represents a direction pad.
+///
+/// You can configure this object to behave as either a composite direction pad (mirrored by a
+/// `GCControllerDirectionPad` on the associated `GCController` instance) or as four separate
+/// buttons.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCDirectionPad : NSObject<TCControl, TCControlLayout>
+
+/// A composite control label.
+///
+/// If set, the control will behave as a `GCControllerDirectionPad`; otherwise, it behaves as separate buttons.
+@property (nonatomic, strong, nullable) TCControlLabel *compositeLabel;
+/// The label for the up button, if the control isn't a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *upLabel;
+/// The label for the down button, if the control isn't a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *downLabel;
+/// The label for the left button, if the control isn't a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *leftLabel;
+/// The label for the right button, if the control isn't a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *rightLabel;
+
+/// The contents for the up button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *upContents;
+
+/// The contents for the down button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *downContents;
+
+/// The contents for the left button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *leftContents;
+
+/// The contents for the right button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *rightContents;
+
+/// The collider shape for the direction pad.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+
+/// A Boolean value that indicates whether the control behaves as a swipeable radial button.
+///
+/// If `YES`, the control behaves as a swipable radial button, rather than a collection of 4 separate buttons.
+@property (nonatomic, assign, getter=isRadial) BOOL radial;
+
+/// A Boolean value that indicates whether the control behaves as a digital button.
+///
+/// If `YES`, dpad buttons will report 1 or 0. Ignored if radial is set, as button presses will always be digital.
+@property (nonatomic, assign, getter=isDigital) BOOL digital;
+
+/// A Boolean value that indicates whether the control has mutally exclusive input.
+///
+/// If `YES`, only one element of the direction pad can be pressed at a time.
+@property (nonatomic, assign, getter=inputIsMutuallyExclusive) BOOL mutuallyExclusiveInput;
+
+/// Not available. Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a directional pad.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCDirectionPadDescriptor : NSObject
+
+/// A composite control label.
+///
+/// If set, the control will behave as a `GCControllerDirectionPad`. Otherwise, it will behave as separate buttons.
+@property (nonatomic, strong, nullable) TCControlLabel *compositeLabel;
+/// The label for the up button, if the control isn't a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *upLabel;
+/// The label for the down button, if the control is not a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *downLabel;
+/// The label for the left button, if the control is not a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *leftLabel;
+/// The label for the right button, if the control is not a composite direction pad.
+@property (nonatomic, strong, nullable) TCControlLabel *rightLabel;
+
+/// The contents for the up button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *upContents;
+/// The contents for the down button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *downContents;
+/// The contents for the left button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *leftContents;
+/// The contents for the right button.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *rightContents;
+
+/// The anchor point that the direction pad's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+/// The z-index of the direction pad. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+/// The size (width, height) of the direction pad in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The shape of collider to use for the direction pad.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// A Boolean value that indicates whether the control behaves as a swipeable radial button.
+///
+/// If `YES`, the control behaves as a swipable radial button, rather than a collection of 4 separate buttons.
+@property (nonatomic, assign, getter=isRadial) BOOL radial;
+
+/// A Boolean value that indicates whether the control behaves as a digital button.
+///
+/// If `YES`, dpad buttons will report 1 or 0. Ignored if radial is set, as button presses will always be digital.
+@property (nonatomic, assign, getter=isDigital) BOOL digital;
+
+/// A Boolean value that indicates whether the control has mutally exclusive input.
+///
+/// If `YES`, only one element of the direction pad can be pressed at a time.
+@property (nonatomic, assign, getter=inputIsMutuallyExclusive) BOOL mutuallyExclusiveInput;
+
+/// Creates a new instance with default values.
+- (instancetype)init;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCSwitch.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCSwitch.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCSwitch.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCSwitch.h	2025-08-04 09:03:39
@@ -0,0 +1,98 @@
+//
+//  TCSwitch.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A control that represents a single on-screen switch.
+///
+/// This is mirrored by a <doc://com.apple.documentation/documentation/gamecontroller/gccontrollerbuttoninput>
+/// on the associated <doc://com.apple.documentation/documentation/gamecontroller/gccontroller>.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCSwitch : NSObject<TCControl, TCControlLayout>
+
+/// The contents for the switch in its normal state.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The contents for the switch when it is switched on.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *switchedOnContents;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// A Boolean value that indicates whether the switch is currently switched on.
+@property (nonatomic, assign, readonly, getter=isSwitchedOn) BOOL switchedOn;
+
+/// The collider shape for the switch.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// Not available.  Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a switch.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCSwitchDescriptor : NSObject
+
+/// The label you associate with the switch.
+@property (nonatomic, strong) TCControlLabel *label;
+
+/// The contents for the switch in its normal state.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The contents for the switch when it is switched on.
+///
+/// This value can be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *switchedOnContents;
+
+/// The anchor point that the switch's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+
+/// The z-index of the switch. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+
+/// The size (width, height) of the switch in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The shape of collider to use for the switch.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Creates a new switch descriptor with default values.
+- (instancetype)init;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCThrottle.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCThrottle.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCThrottle.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCThrottle.h	2025-08-04 09:03:39
@@ -0,0 +1,128 @@
+//
+//  TCThrottle.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Defines the orientation of the throttle.
+typedef NS_ENUM(NSInteger, TCThrottleOrientation) {
+    /// A vertical throttle.
+    TCThrottleOrientationVertical,
+    /// A horizontal throttle.
+    TCThrottleOrientationHorizontal,
+} NS_SWIFT_NAME(TCThrottle.Orientation) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// Represents a single on-screen throttle - a one axis input.
+///
+/// This is mirrored by a `GCControllerButtonInput` on the associated `GCController` instance.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCThrottle : NSObject<TCControl, TCControlLayout>
+
+/// The contents for the background of the throttle.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *backgroundContents;
+/// The contents for the indicator of the throttle.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *indicatorContents;
+
+/// The orientation of the throttle.
+@property (nonatomic, assign, readonly) TCThrottleOrientation orientation;
+
+/// A Boolean value that indicates whether the control reverts to it's base value.
+///
+/// If `YES`, the control's value will revert to its base value when no longer pressed.
+@property (nonatomic, assign) BOOL snapsToBaseValue;
+
+/// The initial value of this control.
+@property (nonatomic, assign) CGFloat baseValue;
+
+/// The size (width, height) of the indicator itself in points.
+@property (nonatomic, assign) CGSize indicatorSize;
+
+/// The size (width, height) of the throttle itself, providing boundaries for the indicator, in points.
+@property (nonatomic, assign) CGSize throttleSize;
+
+/// The collider shape for the throttle.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Not available. Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a throttle.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCThrottleDescriptor : NSObject
+
+/// The label associated with the throttle.
+@property (nonatomic, strong) TCControlLabel *label;
+
+/// The contents for the background of the throttle.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *backgroundContents;
+/// The contents for the indicator of the throttle.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *indicatorContents;
+
+/// The size (width, height) of the throttle in points.
+@property (nonatomic, assign) CGSize size;
+/// The size (width, height) of the indicator itself in points.
+@property (nonatomic, assign) CGSize indicatorSize;
+/// The size (width, height) of the throttle itself, providing boundaries for the indicator, in points.
+@property (nonatomic, assign) CGSize throttleSize;
+
+/// The orientation of the throttle.
+@property (nonatomic, assign) TCThrottleOrientation orientation;
+/// A Boolean value that indicates whether the control reverts to it's base value.
+///
+/// If `YES`, the control's value will revert to its base value when no longer pressed.
+@property (nonatomic, assign) BOOL snapsToBaseValue;
+/// The initial value of this control.
+@property (nonatomic, assign) CGFloat baseValue;
+
+/// The anchor point that the throttle's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+/// The z-index of the throttle. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+
+/// The shape of collider to use for the throttle.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Creates a new throttle descriptor with default values.
+- (instancetype)init;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCThumbstick.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCThumbstick.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCThumbstick.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCThumbstick.h	2025-08-04 09:03:39
@@ -0,0 +1,104 @@
+//
+//  TCThumbstick.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Represents a single on-screen thumbstick.
+///
+/// This is mirrored by a `GCControllerDirectionPad` on the associated `GCController` instance.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCThumbstick : NSObject<TCControl, TCControlLayout>
+
+/// The contents for the background of the thumbstick.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *backgroundContents;
+
+/// The contents for the thumbstick itself.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *stickContents;
+
+/// A Boolean value that indicates whether to hide the thumbstick when it is not being pressed.
+@property (nonatomic, assign) BOOL hidesWhenNotPressed;
+
+/// The size (width, height) of the thumbstick stick itself in points.
+@property (nonatomic, assign) CGSize stickSize;
+
+/// The collider shape for the thumbstick.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Not available. Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a thumbstick.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCThumbstickDescriptor : NSObject
+
+/// The label associated with the thumbstick.
+@property (nonatomic, strong) TCControlLabel *label;
+
+/// The contents for the background of the thumbstick.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *backgroundContents;
+
+/// The contents for the thumbstick itself.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *stickContents;
+
+/// Whether to hide the thumbstick when it is not being pressed.
+@property (nonatomic, assign) BOOL hidesWhenNotPressed;
+
+/// The size (width, height) of the thumbstick stick itself in points.
+@property (nonatomic, assign) CGSize stickSize;
+/// The size (width, height) of the thumbstick in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The anchor point that the thumbstick's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+/// The z-index of the thumbstick. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+
+/// The shape of collider to use for the thumbstick.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// Creates a new thumbstick descriptor with default values.
+- (instancetype)init;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchController.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchController.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchController.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchController.h	2025-08-04 09:03:39
@@ -0,0 +1,206 @@
+//
+//  TCTouchController.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+#import <Metal/Metal.h>
+#import <GameController/GameController.h>
+
+#import <TouchController/TCControl.h>
+
+@class TCButton;
+@class TCButtonDescriptor;
+
+@class TCSwitch;
+@class TCSwitchDescriptor;
+
+@class TCThumbstick;
+@class TCThumbstickDescriptor;
+
+@class TCDirectionPad;
+@class TCDirectionPadDescriptor;
+
+@class TCTouchpad;
+@class TCTouchpadDescriptor;
+
+@class TCThrottle;
+@class TCThrottleDescriptor;
+
+@class TCTouchControllerDescriptor;
+
+NS_ASSUME_NONNULL_BEGIN
+
+__attribute__((visibility ("default"))) extern NSString *const TCGameControllerProductCategoryTouchController API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos);
+
+/// An object that allows you to create and customize on-screen touch controls for a game that uses Metal.
+///
+/// The controller exposes controls through a <doc://com.apple.documentation/documentation/gamecontroller/gccontroller>
+/// instance, and enables seamless integration with the <doc://com.apple.documentation/documentation/gamecontroller>
+/// framework.
+///
+/// This class manages the lifecycle of touch controls, handles user interaction, renders the controls using Metal,
+/// and provides a `GCController` instance that reflects the state of the on-screen controls.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCTouchController : NSObject
+
+/// Whether touch controllers are supported for the device.
+///
+/// Attempting to create a touch controller on an unsupported device will result in a fatal error.
+@property (class, nonatomic, readonly, getter=isSupported) BOOL supported;
+
+/// The Metal device the touch control uses for rendering the touch controls.
+@property (nonatomic, readonly) id<MTLDevice> device;
+
+/// An array containing all the touch controls managed by this controller.
+@property (nonatomic, readonly) NSArray<id<TCControl>> *controls;
+
+/// An array containing all the button controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCButton *> *buttons;
+
+/// An array containing all the switch controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCSwitch *> *switches;
+
+/// An array containing all the thumbstick controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCThumbstick *> *thumbsticks;
+
+/// An array containing all the direction pad controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCDirectionPad *> *directionPads;
+
+/// An array containing all the throttle controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCThrottle *> *throttles;
+
+/// An array containing all the touchpad controls managed by this controller.
+@property (nonatomic, readonly) NSArray<TCTouchpad *> *touchpads;
+
+/// The size of the view the touch controller's drawable is embedded in, in points.
+@property (nonatomic, readwrite, assign) CGSize size;
+
+/// The size of the drawable to which the touch controller's contents be drawn, in native pixels.
+@property (nonatomic, readwrite, assign) CGSize drawableSize;
+
+/// Creates a new instance with the provided descriptor.
+///
+/// - Parameters:
+///   - descriptor: The `TCTouchControllerDescriptor` containing the configuration for the touch controller.
+/// - Returns: A new `TCTouchController` instance.
+- (instancetype)initWithDescriptor:(TCTouchControllerDescriptor *)descriptor;
+
+/// Automatically lays out the provided control labels, creating them if needed.
+///
+/// - Parameters:
+///   - labels: An array of `TCControlLabel` objects to be laid out.
+- (void)automaticallyLayoutControlsForLabels:(NSArray<TCControlLabel *> *)labels;
+
+// MARK: Layout
+
+/// Creates a new button control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCButtonDescriptor` containing the configuration for the button.
+/// - Returns: A new `TCButton` instance.
+- (TCButton *)addButtonWithDescriptor:(TCButtonDescriptor *)descriptor NS_SWIFT_NAME(addButton(descriptor:));
+
+/// Creates a new switch control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCSwitchDescriptor` containing the configuration for the switch.
+/// - Returns: A new `TCSwitch` instance.
+- (TCSwitch *)addSwitchWithDescriptor:(TCSwitchDescriptor *)descriptor NS_SWIFT_NAME(addSwitch(descriptor:));
+
+/// Creates a new thumbstick control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCThumbstickDescriptor` containing the configuration for the thumbstick.
+/// - Returns: A new `TCThumbstick` instance.
+- (TCThumbstick *)addThumbstickWithDescriptor:(TCThumbstickDescriptor *)descriptor NS_SWIFT_NAME(addThumbstick(descriptor:));
+
+/// Creates a new direction pad control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCDirectionPadDescriptor` containing the configuration for the direction pad.
+/// - Returns: A new `TCDirectionPad` instance.
+- (TCDirectionPad *)addDirectionPadWithDescriptor:(TCDirectionPadDescriptor *)descriptor NS_SWIFT_NAME(addDirectionPad(descriptor:));
+
+/// Creates a new throttle control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCThrottleDescriptor` containing the configuration for the throttle.
+/// - Returns: A new `TCThrottle` instance.
+- (TCThrottle *)addThrottleWithDescriptor:(TCThrottleDescriptor *)descriptor NS_SWIFT_NAME(addThrottle(descriptor:));
+
+/// Creates a new touchpad control with the provided descriptor, and adds it to the touch controller.
+///
+/// - Parameters:
+///   - descriptor: The `TCTouchpadDescriptor` containing the configuration for the touchpad.
+/// - Returns: A new `TCTouchpad` instance.
+- (TCTouchpad *)addTouchpadWithDescriptor:(TCTouchpadDescriptor *)descriptor NS_SWIFT_NAME(addTouchpad(descriptor:));
+
+/// Removes all controls from the touch controller.
+- (void)removeAllControls;
+
+/// Removes the control from the touch controller.
+- (void)removeControl:(id<TCControl>)control;
+
+// MARK: User Interaction
+
+/// The control at the specified point, if any.
+///
+/// - Parameters:
+///   - point: The point to check for a control.
+/// - Returns: The control at the specified point, or `nil` if no control is found.
+- (nullable id<TCControl>)controlAtPoint:(CGPoint)point;
+
+/// Handles a touch began event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch began.
+///   - index: An integer representing a unique index for the touch
+/// - Returns: `YES` if the touch was handled by a control; otherwise `NO`.
+- (BOOL)handleTouchBeganAtPoint:(CGPoint)point index:(NSInteger)index;
+
+/// Handles a touch moved event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch moved to.
+///   - index: An integer representing a unique index for the touch
+/// - Returns: `YES` if the touch was handled by a control, `NO` otherwise.
+- (BOOL)handleTouchMovedAtPoint:(CGPoint)point index:(NSInteger)index;
+
+/// Handles a touch ended event at the specified point.
+///
+/// - Parameters:
+///   - point: The point where the touch ended.
+///   - index: An integer representing a unique index for the touch
+/// - Returns: `YES` if the touch was handled by a control, `NO` otherwise.
+- (BOOL)handleTouchEndedAtPoint:(CGPoint)point index:(NSInteger)index;
+
+// MARK: Rendering
+
+/// Renders the touch controls using the provided Metal render command encoder.
+///
+/// - Parameters:
+///   - encoder: The `MTLRenderCommandEncoder` to use for rendering.
+- (void)renderUsingRenderCommandEncoder:(id<MTLRenderCommandEncoder>)encoder;
+
+// MARK: Game Controller
+
+/// A Boolean value that indicates whether the touch controller is connected to the Game Controller framework.
+@property (nonatomic, assign, readonly, getter=isConnected) BOOL connected;
+
+/// Connects the touch controller to the app, allowing its controls to be drawn and an associated `GCController` to be created.
+- (void)connect;
+
+/// Disconnects the touch controller from the app, preventing its controls from being drawn.
+- (void)disconnect;
+
+/// The game controller instance associated with this touch controller.
+@property (nonatomic, strong, readonly) GCController *controller;
+
+@end
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchControllerDescriptor.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchControllerDescriptor.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchControllerDescriptor.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchControllerDescriptor.h	2025-08-04 09:03:39
@@ -0,0 +1,48 @@
+//
+//  TCTouchControllerDescriptor.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+
+#import <Metal/Metal.h>
+
+@class MTKView;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A descriptor for configuring a touch controller.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCTouchControllerDescriptor : NSObject
+
+/// The Metal device to use for rendering.
+@property (nonatomic, readwrite, strong) id<MTLDevice> device;
+
+/// The size of the view the touch controller's drawable is embedded in, in points.
+@property (nonatomic, readwrite, assign) CGSize size;
+
+/// The size of the drawable to which the touch controller's contents be drawn, in native pixels.
+@property (nonatomic, readwrite, assign) CGSize drawableSize;
+
+/// The pixel format for the drawable texture.
+@property (nonatomic, readwrite, assign) MTLPixelFormat colorPixelFormat;
+
+/// The pixel format for the depth attachment.
+@property (nonatomic, readwrite, assign) MTLPixelFormat depthAttachmentPixelFormat;
+
+/// The pixel format for the stencil attachment.
+@property (nonatomic, readwrite, assign) MTLPixelFormat stencilAttachmentPixelFormat;
+
+/// The number of samples per pixel for multisampling.
+@property (nonatomic, readwrite, assign) NSUInteger sampleCount;
+
+- (instancetype)init NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithMTKView:(MTKView *)mtkView;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchpad.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchpad.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TCTouchpad.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TCTouchpad.h	2025-08-04 09:03:39
@@ -0,0 +1,91 @@
+//
+//  TCTouchpad.h
+//  TouchController
+//
+
+#if !TARGET_OS_OSX
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import <Metal/Metal.h>
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlContents.h>
+
+@class TCTouchController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Represents a single on-screen touchpad that reports absolute coordinates or delta movements.
+///
+/// This is mirrored by a `GCControllerDirectionPad` on the associated `GCController` instance.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCTouchpad : NSObject<TCControl, TCControlLayout>
+
+/// The contents for the touchpad. May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The collider shape for the touchpad.
+@property (nonatomic, assign, readonly) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// A Boolean value that represents the touchpad reports deltas.
+///
+/// If `YES`, the touchpad will report relative delta changes between frames as touch moves instead of absolute positions.
+@property (nonatomic, assign) BOOL reportsRelativeValues;
+
+/// Not available. Create the control via a `TCTouchController`.
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+
+/// A descriptor for configuring a touchpad.
+__attribute__((visibility ("default")))
+API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macCatalyst, visionos)
+@interface TCTouchpadDescriptor : NSObject
+
+/// The label associated with the touchpad.
+@property (nonatomic, strong) TCControlLabel *label;
+
+/// The contents for the touchpad.
+///
+/// May be `nil`.
+@property (nonatomic, strong, nullable) TCControlContents *contents;
+
+/// The anchor point that the touchpad's offset is relative to.
+@property (nonatomic, assign) TCControlLayoutAnchor anchor;
+
+/// The coordinate system for the control's anchor point.
+@property (nonatomic, assign) TCControlLayoutAnchorCoordinateSystem anchorCoordinateSystem;
+/// The control's offset from the anchor, which determines its position.
+@property (nonatomic, assign) CGPoint offset;
+/// The z-index of the touchpad. A lower z-index is drawn first.
+@property (nonatomic, assign) NSInteger zIndex;
+
+/// The size (width, height) of the touchpad in points.
+@property (nonatomic, assign) CGSize size;
+
+/// The shape of collider to use for the touchpad.
+@property (nonatomic, assign) TCColliderShape colliderShape;
+
+/// The time it takes for a highlight to fade away, in seconds.
+@property (nonatomic, assign) NSTimeInterval highlightDuration;
+
+/// A Boolean value that represents the touchpad reports deltas.
+///
+/// If `YES`, the touchpad will report delta values as touch moves instead of absolute positions.
+@property (nonatomic, assign) BOOL reportsRelativeValues;
+
+/// Creates a new touchpad descriptor with default values.
+- (instancetype)init;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
+#endif
diff -ruN /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TouchController.h /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TouchController.h
--- /Applications/Xcode_26.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksTouchController.framework/Headers/TouchController.h	1970-01-01 01:00:00
+++ /Applications/Xcode_26.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/TouchController.framework/Headers/TouchController.h	2025-08-04 09:03:38
@@ -0,0 +1,22 @@
+//
+//  TCTouchControllerPublic.h
+//  TCTouchController
+//
+
+#import <TouchController/TCControlLayout.h>
+#import <TouchController/TCColliderShape.h>
+
+#import <TouchController/TCControlContents.h>
+#import <TouchController/TCControlImage.h>
+
+#import <TouchController/TCControl.h>
+#import <TouchController/TCControlLabel.h>
+#import <TouchController/TCButton.h>
+#import <TouchController/TCSwitch.h>
+#import <TouchController/TCThumbstick.h>
+#import <TouchController/TCDirectionPad.h>
+#import <TouchController/TCTouchpad.h>
+#import <TouchController/TCThrottle.h>
+
+#import <TouchController/TCTouchControllerDescriptor.h>
+#import <TouchController/TCTouchController.h>
Clone this wiki locally