Skip to content

Latest commit

 

History

History
69 lines (47 loc) · 5.13 KB

File metadata and controls

69 lines (47 loc) · 5.13 KB

Apple Graphics Internals: Key Types and Structures

Note: This documentation (@AppleGraphicsInternals.md) is based on a dump of internal type definitions extracted from macOS Ventura. It provides insight into the private structures used by Apple's graphics and windowing systems on that OS version.

This document summarizes and organizes the most developer-relevant types and structures found in the internal Apple graphics/windowing system dump (windowserver.info). It focuses on types from Core Animation (CA), Core Graphics (CG), and related frameworks, providing a reference for reverse engineers and advanced developers.


Core Animation (CA) Types

Layers

  • CALayer: The base class for all layer types. Represents a renderable region in a layer tree.
  • CAEmitterLayer, CATiledLayer, CATransformLayer, CAReplicatorLayer, CAShapeLayer, CAProxyLayer, CAChameleonLayer, CABoxLayoutManager, CAScrollLayer, CATableLayoutManager, CAWrappedLayoutManager, CACloningTerminatorLayer, CABackdropLayer, CADistanceFieldLayer, CAPluginLayer, CAOpenGLLayer, CAEAGLLayer, CAMetalLayer, CAPortalLayer, CALayerHost, CAStateControllerLayer, CAStateElement, CAStateAddElement, CAStateRemoveElement, CAStateSetValue, CAStateTransitionElement, CAStateRemoveAnimation, CAStateAddAnimation: Specialized layer types for various rendering, effects, and layout purposes.

Animation

  • CAAnimation: Base struct for animations.
  • CAPropertyAnimation, CABasicAnimation, CAKeyframeAnimation, CASpringAnimation, CAMatchMoveAnimation, CAMatchPropertyAnimation, CATransition, CAAnimationGroup, CAExternalAnimation: Animation types for property changes, keyframes, transitions, and groups.
  • CAMediaTimingFunction, CAMediaTimingFunctionPrivate, CAMediaTimingFunctionBuiltin: Timing functions for animation pacing.

Rendering and Contexts

  • CARenderer: Represents a rendering context for drawing layer trees.
  • CAContext: Encapsulates a rendering context for remote or local drawing.
  • CAContentStream, CAContentStreamOptions, CAContentStreamFrame: Types for streaming content to displays or remote contexts.

Display and Timing

  • CADisplay, CADisplayMode, CADisplayAttributes, CADisplayPreferences, CADisplayLink, CADisplayPowerAssertion, CADisplayWallGroup, CADisplayWallConfiguration, CADisplayProperties, CADisplayPersistedData, CADisplayPersistedLatency, CADisplayPersistedPreferredMode, CAFrameRateRange, CAFrameIntervalRange, DynamicFrameRateSource, CADynamicFrameRateSource: Types for display management, modes, and timing.
  • CATimingFramePacingLatency: Frame pacing and latency info.

Metal and OpenGL

  • CAMetalLayer, CAMetalDrawable, CAMetalDisplayLink, CAMetalDisplayLinkUpdate, CAOpenGLLayer, CAEAGLLayer, CAEAGLBuffer, _CAEAGLNativeWindow: Types for Metal and OpenGL-backed layers and drawables.

Miscellaneous

  • CAFilter, CAValueFunction, CAStateController, CAStateControllerTransition, CAStateControllerUndo, CAState, CAStateTransition, CAStateControllerAnimation, CAStateControllerDelegate, CAStateControllerData, CAStateControllerLayer, CAStateElement, CAStateAddElement, CAStateRemoveElement, CAStateSetValue, CAStateTransitionElement, CAStateRemoveAnimation, CAStateAddAnimation: State management and filtering.
  • CAFrameRateRangeGroup, CAFrameRateRange, CAFrameIntervalRange, CAFrameRateRangeGroup, CAFrameRateRange, CAFrameIntervalRange: Frame rate and timing.

Core Graphics (CG) Types

Geometry and Transforms

  • CGPoint, CGSize, CGRect, CGAffineTransform, CATransform3D, CAPoint3D, CACornerRadii, CAColorMatrix: Fundamental geometric and transformation types.

Drawing and Rendering

  • CGPath, CGPathElement, CGPattern, CGColor, CGImage, CGContext: Types for paths, patterns, colors, images, and drawing contexts.
  • CGColorSpace, CGColorTRC, CGColorTRCParametric, CGColorTRCTable, CGColorTRCBoundaryExtension: Color management and transfer curve types.

Window Server and Display Management

  • CAWindowServer, CAWindowServerImpl, CAWindowServerDisplay, CAWindowServerDisplayImpl, CAWindowServerVirtualDisplay, CAWindowServerDisplayManager: Types for managing the window server and displays.
  • CABrightnessTransaction: Manages display brightness transactions.

Objective-C Runtime Integration

  • objc_object, NSObject, NSString, NSArray, NSDictionary, NSMutableArray, NSMutableSet, NSTimer: Core Objective-C types referenced by many structures.
  • __objc2_class, __objc2_class_ro, __objc2_class_rw, __objc2_class_rw1, __objc2_class_rw1_ext, __objc2_category, __objc2_meth, __objc2_meth_list, __objc2_ivar, __objc2_ivar_list, __objc2_prop, __objc2_prop_list, __objc2_prot, __objc2_prot_list: Internal Objective-C runtime structures.

Synchronization and Low-Level Types

  • Mutex, SpinLock, pthread_mutex_t, pthread_cond_t, mach_msg_header_t, mach_port_t, mach_vm_size_t, vm_address_t, vm_size_t, audit_token_t: Synchronization, Mach IPC, and memory management types.

Notes

  • Many types are internal and not documented by Apple. Use with caution.
  • This document omits purely internal, low-level, or irrelevant types for clarity.
  • For more details, refer to the original windowserver.info dump.