Repository navigation
WindowServer
Reimplementation (PPC): In Progress (2026-11-04)
The source is now compiling for both Intel and PPC. PPC remains the test environment until I can get a better environment for Intel.
This screenshot demonstrates WindowServer(new) running with -DWindowServerTesting environment which allows us to use RAM to do all of our drawing so we can test new features. This runs WindowServer in a simulator. AppKit has been rebuilt with a -DWindowServerTesting so all of its draw commands go to the WindowServer(new). This example has an AppKit app running with the MacOSXInterfaceStyle, NSMacintoshInterfaceStyle is still supported and will remain supported. Windows95 and NextStep are also fully supported. I chose to test with MacOSXInterfaceStyle because it has a lot of transparency/translucency. Anti-aliased fonts are now drawing, we now have transparent text.
#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>
- FreeType (code incorporated into the project)
- 2026-11-04 Preparing Drop-In-Replacement of the WindowServer. This is a huge step. In-pass, bug fixing.
- 2026-11-03 Testing All Drawing Commands
- 2026-11-02 Incorporating Window Transparency
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.
- No ABI/Interface breaking changes. Any upgrades to the server need to make sure older apps can still send draw commands that work.
- Font Hinting (In Progress)
On Rhapsody/NeXTStep, fonts often have bitmaps for smaller sizes available because supplied fonts do not hint well at lower sizes. We are currently keeping those optimizations in place.
- Antialiased Drawing & Text (In Progress)
- The ability to have windows move in tandem with other windows (i.e the new NSDrawers and attached Modals in AppKit.framework)
- Transparent Text Drawing
- Transparent Window Compositing (DONE)
- Compatibility with both Mac OS X 10.4 while maintaining Rhapsody OS, RhapsodiOS and OpenNext
- PDF Style Commands (for compatibility with Mac OS X 10+), PPC, Intel, ARM
- Updated DisplayPostscript emulation.
History
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). The fake windows you see rendered in the window demonstrate transparent compositing of windows. The next step is to build a version of AppKit and our AppKitTester that send all drawing to WindowServerNew and have it appear in that embedded WindowServer view.