Skip to content

WindowServer

Austin edited this page Oct 31, 2026 · 28 revisions

Reimplementation (PPC): In Progress (2027-10-31)

image

This screenshot is a test app WindowServerTester that runs a modified WindowServer that runs in RAM. This tool is being used to test future features (like transparent windows). These windows demonstrate transparent compositing of windows.

Dependencies

#include <mach/mach_init.h>
#include <mach/message.h>
#include <dirent.h>
#include <math.h>
#include <setjmp.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

Testing Mode

You will see #if defined(WindowServerTesting) throughout the source code to signify areas where we can launch a separate WindowServer process to test connections. #if defined(WindowServerTesting) is also used in AppKit to ensure that we connect to the new WindowServerNew instead of WindowServer process.

In the testing mode, drawing is sent to a region of private memory, instead of accessing framebuffer and driver state, and will not display on screen. Testing functions are added to extract the produced image for verification.

Required Goal

  • Any ABI breaking feature is gated through defined(DistributionRhapsodyOS) to ensure it runs as expected under vanilla Mac OS X Server 1.2v3. New features should strongly not rely on that and should instead aim to ABI/API compliant.

Upgrades In Progress

  1. Transparent Window Compositing
  2. The ability to have windows move in tandem with other windows (i.e the new NSDrawers and attached Modals in AppKit.framework)
  3. Antialiased Drawing & Text
  4. Transparent Text Drawing

Future Goals

  1. PDF Style Commands (for compatibility with Mac OS X 10+), PPC, Intel, ARM

Clone this wiki locally