zed/crates/gpui_platform/Cargo.toml
kevin-mai 3f1e4afd77 gpui_windows: add win-legacy-compat feature flag for Windows Server 2016 / pre-1809 back-compat
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
2026-05-27 21:10:07 +08:00

39 lines
1.1 KiB
TOML

[package]
name = "gpui_platform"
version = "0.1.0"
edition.workspace = true
publish.workspace = true
license = "Apache-2.0"
[lints]
workspace = true
[lib]
path = "src/gpui_platform.rs"
[features]
default = []
font-kit = ["gpui_macos/font-kit"]
test-support = ["gpui/test-support", "gpui_macos/test-support"]
screen-capture = ["gpui/screen-capture", "gpui_macos/screen-capture", "gpui_windows/screen-capture", "gpui_linux/screen-capture"]
win-legacy-compat = ["gpui_windows/win-legacy-compat"]
runtime_shaders = ["gpui_macos/runtime_shaders"]
wayland = ["gpui_linux/wayland"]
x11 = ["gpui_linux/x11"]
[dependencies]
gpui.workspace = true
[target.'cfg(target_os = "macos")'.dependencies]
gpui_macos.workspace = true
[target.'cfg(target_os = "windows")'.dependencies]
gpui_windows.workspace = true
gpui = { workspace = true, features = ["windows-manifest"] }
[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
gpui_linux.workspace = true
[target.'cfg(target_family = "wasm")'.dependencies]
gpui_web.workspace = true
console_error_panic_hook = "0.1.7"