GPUI AccessKit integration
This PR is replacing #51097 , and is much more limited in scope. This PR
*ONLY* adds AccessKit support to GPUI, and doesn't touch Zed. Once this
lands, we can start adding aria attributes to Zed's components.
This PR is the first step to addressing #41138 .
Release Notes:
- N/A or Added/Fixed/Improved ...
---------
Co-authored-by: John Tur <john-tur@outlook.com>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Introduces a `win-legacy-compat` Cargo feature (forwarded from `gpui_platform`) that
gates all Windows Server 2016 / pre-Windows 10 1809 workarounds behind a compile-time
flag, preserving exact upstream behaviour and performance when the flag is absent.
Changes when `win-legacy-compat` is enabled:
- directx_devices.rs: use IDXGIFactory2 (DXGI 1.2, Win8+) instead of IDXGIFactory6
- direct_write.rs: use IDWriteFactory4 + IDWriteFontSetBuilder (Server 2016) instead of
Factory5 + in-memory font loader; fall back to temp files for custom font loading
- directx_renderer.rs: runtime is_pre_1809 check gates SRV FirstElement workaround;
draw_* functions accept scene: &Scene for per-batch buffer re-upload on pre-1809;
standard alpha blend replaces dual-source SRC1_COLOR for subpixel pipeline;
MSAA quality 0 replaces D3D11_STANDARD_MULTISAMPLE_PATTERN (D3D11.1 sentinel);
SM_REMOTESESSION check disables DirectComposition on RDP sessions
- shaders.hlsl: #ifdef WIN_LEGACY_COMPAT collapses per-channel ClearType mask to
scalar alpha for standard SRC_ALPHA/INV_SRC_ALPHA blending
- build.rs: pass /D WIN_LEGACY_COMPAT to fxc (release); pass D3D_SHADER_MACRO define
to D3DCompileFromFile (debug); fix /D argument order (must precede input filename);
add rerun-if-env-changed for CARGO_FEATURE_WIN_LEGACY_COMPAT
- gpui_platform/Cargo.toml: forward win-legacy-compat → gpui_windows/win-legacy-compat
#2874 on steroids
Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
Release Notes:
- N/A
---------
Co-authored-by: Eric Holk <eric@zed.dev>