Move the SetLayeredWindowAttributes call to immediately after window construction, and initialize it with per-pixel transparency settings, no color key and no global blending. The render pipeline will perform alpha blending during compositing. Cleaned up the DWM acrylic API calls some, to explicitly set to the three appropriate modes depending on opaque, transparent or blurred settings. The API internally hides versioning concerns from the caller. Set the window class background color to black, this prevents a flashbang on slow startup, e.g. debug builds on a heavily loaded system. The outcome is that the window no longer receives paint demands for underlying window updates, while also having per-pixel transparency - opaque theme elements are now correctly opaque. The transparency settings are now portable across windows and macOS having mostly similar outcomes (modulo palette differences). Small fonts may still appear to be alpha blended - this seems to be in the glyph atlas, their pixels are not actually opaque. Larger fonts (or higher DPIs) don't suffer this and are as opaque as expected. Layering the window atop one that is rendering at 120fps, the editor window can drop to its 8fps idle state, while still being composited with 120fps alpha blend in the background, in both blur and transparent modes. Updates #20400 Release Notes: - Improved transparency on Windows to be more efficient, support fully opaque elements and more closely match other platforms.
1 file changedLine totals unavailable