Window-Shading App for macOS

Apple – Core Graphics to Screen Capture Kit

Why WindowMizer Migrated to ScreenCaptureKit (SCK)

As the macOS ecosystem evolves, staying ahead of underlying system API deprecations is essential for maintaining application performance, stability, and user trust. In our latest update to WindowMizer, we completed a major architectural shift: retiring our legacy Core Graphics (CG) imaging pipeline and completely migrating to Apple’s modern ScreenCaptureKit (SCK) framework.

Here is a look behind the scenes at why this upgrade was necessary, and how it keeps WindowMizer performing beautifully on modern macOS.


The Catalyst: The Deprecation of Legacy CG APIs

For years, WindowMizer relied on foundational Core Graphics functions—specifically CGWindowListCreateImage—to capture window states, handle visual effects, and manage window previews. While this API served the developer community for over a decade, it was designed for an older era of hardware.

Starting with macOS 14, Apple officially deprecated these legacy window-listing and image-capture functions. Relying on deprecated APIs introduces technical debt and risks sudden breakage in future macOS releases. Moving to ScreenCaptureKit was a mandatory step to guarantee that WindowMizer remains fully operational and stable for years to come.


Why the Shift? Technical Benefits of ScreenCaptureKit

Migrating the codebase wasn’t just about compliance; it unlocked massive performance improvements across the app:

  • GPU Acceleration vs. CPU Bottlenecks: The old CG approach relied heavily on the CPU to copy bitmap data out of the window server. SCK leverages the Mac’s GPU via Metal. This drastically reduces CPU overhead, resulting in a cooler machine, less battery drain, and smoother system animations while WindowMizer does its job.
  • Granular Filtering Control: Previously, filtering and capturing specific windows required complex coordinate math and array filtering using CGWindowListCopyWindowInfo. SCK introduces native SCContentFilter objects. We can now cleanly isolate, include, or exclude specific applications or window hierarchies at the OS level with just a few lines of code.
  • Built-in Privacy Compliance: Modern macOS versions enforce strict screen-recording permissions. SCK is built from the ground up to respect user privacy natively. It cleanly handles modern OS-enforced security boundaries, ensuring WindowMizer operates securely and transparently without triggering unexpected system security prompts.

The Ultimate Benefit: Keeping WindowMizer “Modern”

In the macOS ecosystem, keeping an app “modern” is about delivering an optimal user experience:

  1. Apple Silicon Optimization: SCK is natively optimized for M-series chips (M1 through M4 and beyond). By embracing it, WindowMizer feels deeply integrated into modern Mac hardware, running efficiently on everything from a MacBook Air to a Mac Studio.
  2. Future-Proofing: Apps that fall behind on API adoption risk being abandoned or broken by OS updates. This upgrade ensures WindowMizer users can confidently update their Macs on day one of any new macOS release.
  3. Battery & Resource Respect: A modern app should never steal precious cycles from your active workload. Retiring the CPU-heavy Core Graphics loops means WindowMizer operates with an incredibly light footprint, preserving your battery for the apps you are actually working in.

The migration required refactoring our core rendering logic, but the result is a leaner, faster, and inherently safer WindowMizer

Thank you for your continued support as we keep evolving!

Advertisement

Related News

Comments are closed.