Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Go to file
张小白 c0259a448d
windows: Slightly improve font rendering quality (#12015)
Upper before this PR, lower after.

![Screenshot 2024-05-20
144852](https://github.com/zed-industries/zed/assets/14981363/88995482-3a98-41be-9c2c-6b781bef6ad2)

This PR manually applies a MSAA to the font atlas. Before this PR, the
font may seem aliased ( espeacially on low DPI monitors ), that's
because `DirectWrite` and `CoreText` ( on which currently `Zed` built
the whole text system ) uses different anti-aliasing strategy. The
different anti-aliasing approach used by `DirectWrite` and `CoreText`:

![Screenshot 2024-05-20
151114](https://github.com/zed-industries/zed/assets/14981363/21a2fc1e-48a2-4cff-a9d1-41602eff3658)

The upper is `VSCode` font rendering result, middle `macOS`, lower this
PR ( pic captured with same font face, same font size, same DPI, same
physical resolution, same editor theme, and same magnification rate ).

This PR brings a quality similiar to `CoreText`. What's more, from the
`VSCode` image, you can see how `DirectWrite` sub-pixel anti-aliasing is
performed on the edge of the glyph. Can we achieve the same rendering
quality? Currently, No. `Zed` use a grayscale image to render glyph, and
a sub-pixel anti-aliasing `DirectWrite` requires all RGB channels and
the foreground color of the rendering glyph, which `Zed` dose not
provide.

So, to achieve the quality of `VSCode` font rendering, the text system
of `Zed` needs much much more efforts to refactor the codes.


Release Notes:

- N/A
2024-05-26 16:41:55 -07:00
.cargo Enable tokio-console (#8897) 2024-03-05 10:56:14 -07:00
.cloudflare Remove 2 removal (#11867) 2024-05-15 11:06:05 -06:00
.config tests: Test 'db' package sequentially (#2654) 2023-06-28 15:00:43 +02:00
.github Deploy install.sh to cloudflare (#11866) 2024-05-15 10:35:30 -06:00
.zed Remove wiring for assistant2 (#11940) 2024-05-16 18:32:53 -04:00
assets Improve context expansion (#10957) 2024-05-26 16:30:09 -07:00
crates windows: Slightly improve font rendering quality (#12015) 2024-05-26 16:41:55 -07:00
docs docs: Update Ruby docs (#12283) 2024-05-25 10:50:54 -04:00
extensions php/ruby: bump version to 0.0.5 (#12330) 2024-05-27 00:07:33 +02:00
script Enable manual worktree organization (#11504) 2024-05-24 12:15:48 +03:00
tooling/xtask xtask: Check for licenses that are duplicated instead of being symlinked (#11777) 2024-05-13 19:13:09 -04:00
.dockerignore Add serialized versions of themes (#6885) 2024-01-27 13:35:43 -05:00
.gitattributes Prevent GitHub from displaying comments within JSON files as errors (#7043) 2024-01-29 23:11:25 -05:00
.gitignore Deploy install.sh to cloudflare (#11866) 2024-05-15 10:35:30 -06:00
.mailmap Update .mailmap (#11633) 2024-05-09 19:03:34 -04:00
Cargo.lock php/ruby: bump version to 0.0.5 (#12330) 2024-05-27 00:07:33 +02:00
Cargo.toml Fix some warnings/issues uncovered by the new cfg checking (#12310) 2024-05-26 12:50:20 +02:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md (#4239) 2024-01-23 22:31:39 -05:00
CONTRIBUTING.md Remove stray word in CONTRIBUTING.md 2024-04-15 16:30:18 -04:00
debug.plist WIP 2023-12-14 09:25:14 -07:00
docker-compose.sql Add config files for running Postgres inside Docker Compose (#3637) 2023-12-13 17:25:07 -05:00
docker-compose.yml Add LiveKit server to Docker Compose (#7907) 2024-02-16 10:49:48 -05:00
Dockerfile Rust 1.78 (#11314) 2024-05-05 15:02:50 +02:00
LICENSE-AGPL chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
LICENSE-APACHE chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
LICENSE-GPL Licenses: change license fields in Cargo.toml to AGPL-3.0-or-later. (#5535) 2024-01-27 13:51:16 +01:00
livekit.yaml Add LiveKit server to Docker Compose (#7907) 2024-02-16 10:49:48 -05:00
Procfile Revert change to tracing (#10578) 2024-04-15 14:00:56 -06:00
README.md Fix README links (#11382) 2024-05-03 19:53:22 -04:00
rust-toolchain.toml Rust 1.78 (#11314) 2024-05-05 15:02:50 +02:00
typos.toml Restore vim docs (#11491) 2024-05-07 09:24:00 -06:00

Zed

CI

Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.

Installation

You can download Zed today for macOS (v10.15+).

Support for additional platforms is on our roadmap:

For macOS users, you can also install Zed using Homebrew:

brew install --cask zed

Alternatively, to install the Preview release:

brew install --cask zed@preview

Developing Zed

Contributing

See CONTRIBUTING.md for ways you can contribute to Zed.

Also... we're hiring! Check out our jobs page for open roles.

Licensing

License information for third party dependencies must be correctly provided for CI to pass.

We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:

  • Is it showing a no license specified error for a crate you've created? If so, add publish = false under [package] in your crate's Cargo.toml.
  • Is the error failed to satisfy license requirements for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to the accepted array in script/licenses/zed-licenses.toml.
  • Is cargo-about unable to find the license for a dependency? If so, add a clarification field at the end of script/licenses/zed-licenses.toml, as specified in the cargo-about book.