aboutsummaryrefslogtreecommitdiff
path: root/font
AgeCommit message (Collapse)Author
2020-07-18Rename font crate to crossfontChristian Duerr
2020-07-14Fix freetype 26.6 format conversioncynecx
This resolves a rounding issue when converting to the 26.6 format used by freetype for character sizes. This rounding behavior is taken from cairo: https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/src/cairo-ft-font.c#L900-903 There are various different implementations of the F26Dot6 conversion online, but the rounding that cairo does seems to be the most common. Since cairo is very commonly used, it should produce good results compared with the rest of Linux text rendering. Fixes #2780. Co-authored-by: Christian Duerr <contact@christianduerr.com> Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
2020-07-11Remove alacritty.yml mentions from font crate errorsKirill Chibisov
2020-07-10Set default FreeType propertiesKirill Chibisov
In addition it also starts respecting Fontconfig's `autohint` and `hinting` options. Fixes #3534.
2020-07-10Fail compilation if Fontconfig is not installed on Linux/BSDKirill Chibisov
Statically linking Fontconfig was leading to slow startup and various errors, so forcing the use of system's library.
2020-07-04Fix compilation on 32bit targetsKirill Chibisov
Fixes #3915.
2020-06-06Remove copyright notice from filesChristian Duerr
Keeping the license as part of every file bloats up the files unnecessarily and introduces an additional overhead to the creation of new modules. Since cargo already provides excellent dependency management, most of the code-reuse of Alacritty should occur through Rust's dependency management instead of copying it source. If code is copied partially, copying the license from the main license file should be just as easy as copying from the top of the file and making some adjustments based on where it is used is likely necessary anyways.
2020-06-04Fix font rendering regression on macOSJade Michael Thornton
This fixes a regression introduced in 77f2d6e853f1ad54e6dc844a811b78daeb463e76. Fixes #3809.
2020-05-27Fix build warnings on macOS/WindowsKirill Chibisov
2020-05-17Add subpixel anti-aliasing support on macOS 10.14+Casper Rogild Storm
2020-05-16Bump winit to 0.22.2Christian Duerr
Fixes #2601. Fixes #2475.
2020-05-14Add support for Fontconfig embolden and matrix optionsKirill Chibisov
Fixes #1754.
2020-05-12Fix emojis being blended with backgroundlbonn
Fixes #1864.
2020-05-05Extend style guideline documentationChristian Duerr
2020-04-21Fix code formattingChristian Duerr
2020-04-16Add Windows font fallbackDavid Hewitt
2020-03-25Update Linux/BSD font dependenciesChristian Duerr
This updates font dependencies to make use of the newly unified freetype-sys crate, allowing us to get rid of Alacritty's patch section in the Cargo.toml.
2020-03-17Use font style for fontconfig fallbackKirill Chibisov
2020-03-12Run clippy on oldest supported versionChristian Duerr
Since there were some problems with clippy suggesting changes that were not yet available in the oldest supported Rust compiler of Alacritty, the clippy stage has been moved from stable to 1.37.0.
2020-03-07Fix selection with invisible start and endChristian Duerr
This resolves an issue with the selection clamping, where no selection would be rendered at all when the start was above the viewport while the end was below it.
2020-03-06Fix caching of variable font facesKirill Chibisov
2020-02-27Revert caching of font pixelsizeKirill Chibisov
We can't reliably do that, because some fonts are bitmap, but marked as scalable by Fontconfig. Fixes #3387.
2020-02-26Add FreeType face cacheKirill Chibisov
2020-02-23Fix Fontconfig's font size queryKirill Chibisov
Previously we were rounding pattern's `pixelsize` before `fc_sort`, however we were using not rounded one in `get_glyph`, so bitmap fonts could look a bit smaller when used in a mix with scalable fonts.
2020-02-20Fix discarding of FreeType loading flagsKirill Chibisov
Fixes regression introduced in 6b327b6f8f0f308ff8f46cdf551ce0d0f3eda60b. Fixes #3355.
2020-02-03Fix non-scalable font resize issueKirill Chibisov
Fixes resize regression from 15cc07c069b09f109ed18fb94e02e9650be7fa33.
2020-01-31Fix handling of OpenType variable fontsKirill Chibisov
Fixes #3257.
2020-01-27Rework Fontconfig fallback to use cached list from font_sortKirill Chibisov
Previous implementation was querying Fontconfig using `charset` in a pattern, which was leading to unpredictable fallbacks in some cases, since Fontconfig was picking the font with the most coverage for a given charset, regardless of user configuration. Moreover all fallback was based on font_match which is extremely slow for such performance sensitive task as a fallback, so alacritty had a hard times on vtebench's unicode-random-write. The new approach is to use some internal fallback list from font_sort and iterate over it to get a proper fallback font, since it matches the following example query from `fc-match`: `fc-match -s "monospace:pixelsize=X:style=Y" That being said it's more intuitive for users to setup their system Fontconfig fallback, and also most applications are doing similar things. Moreover the new implementation uses internal caches over Fontconfig API when possible and performs font matches only once during load of requested font with font_sort, which leads to dramatically improved performance on already mentioned vtebench's unicode-random-write. Fixes #3176. Fixes #3134. Fixes #2657. Fixes #1560. Fixes #965. Fixes #511.
2020-01-22Fix underline position for bitmap fontsKirill Chibisov
Fixes #3235.
2020-01-17Replace `.nth(0)` with `.next()`Cole Helbling
Clippy[1] says that `.next()` is more readable than `.nth(0)`. [1]: https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero
2020-01-15Update font crate to 2018 editionDavid Hewitt
2020-01-11Move Alacritty to organizationChristian Duerr
This fixes various outdated links pointing to the old jwilm/alacritty repository. Since `copypasta` now has its own github repository at https://github.com/alacritty/copypasta, the sources have been removed from Alacritty.
2020-01-03Replace deprecated Error methodssterlingjensen
2019-12-09Add support for colored emojis on Linux/BSDKirill Chibisov
Fixes #153.
2019-10-23Update dependenciesKirill Chibisov
2019-10-05Update to winit/glutin EventLoop 2.0Christian Duerr
This takes the latest glutin master to port Alacritty to the EventLoop 2.0 rework. This changes a big part of the event loop handling by pushing the event loop in a separate thread from the renderer and running both in parallel. Fixes #2796. Fixes #2694. Fixes #2643. Fixes #2625. Fixes #2618. Fixes #2601. Fixes #2564. Fixes #2456. Fixes #2438. Fixes #2334. Fixes #2254. Fixes #2217. Fixes #1789. Fixes #1750. Fixes #1125.
2019-09-21Remove outdated TODO/FIXME commentsChristian Duerr
2019-08-18Update depedenciesBastien Orivel
2019-07-30Bump minimum supported Rust version to 1.34.0Christian Duerr
2019-07-23Respect fontconfig's embeddedbitmap settingRoman Holovin
Fixes #2655.
2019-07-14Query DirectWrite for the rendering mode to useAlex
2019-07-06Use Menlo as fallback font on macOSLê Viết Hoàng Dũng
This commit makes alacritty use Menlo as a fallback font on macOS if the config specified font family isn't found.
2019-06-09Fix compiler warningsMatthias Krüger
2019-06-08Bump minimum supported Rust version to 1.32.0Christian Duerr
2019-04-23Add DirectWrite font rasterizerBen Pye
This adds a DirectWrite font rasterizer for Windows and enables subpixel rendering and hinting. It also completely replaces rusttype for font rendering on Windows, allowing Alacritty to use the native font stacks on all operating systems. Fixes #1673. Fixes #2316.
2019-04-20Fix cursor colorsChristian Duerr
This fixes a recent regression in cfc20d4f34dca535654cc32df18e785296af4cc5 which broke cursor colors when specified in the `colors.cursor` field in the config. It also removes a lot of unneeded code from the font crate related to the cursor rendering. This fixes #2338.
2019-04-19Fix cursor dimensions with font offsetChristian Duerr
Previously cursor dimensions were not calculated correctly when a font offset was specified, since the font offset was completely ignored. This has been fixed by moving all the cursor logic from the font into the Alacritty crate, applying the config's offsets before rasterizing the cursors. This has also fixed an issue with some cursors not being rendered as double-width correctly when over double-width glyphs. This fixes #2209.
2019-04-14Fix duplicate resize eventsChristian Duerr
If a resize event is identical to the current size, it is no longer propagated but the resize is discarded immediately. To further prevent resizes when not necessary, the list of monitors is enumerated and the DPR of the first display is assumed to be the target DPR. This allows spawning a window with dimensions when the config has columns and lines specified and the window only needs to be resized if the estimated DPR is not correct. Fixes #1825. Fixes #204.
2019-04-09Set maximum Rust version to 1.31.0Christian Duerr
By setting the minimum Rust version and enforcing it with CI, Alacritty should hopefully make it possible for maintainers to package the application even on distributions which are not rolling release. The 1.31.0 target has been chosen here because it's the first version of the Rust 2018 release. Bumping this version in the future should be considered to be a breaking change and should only be done with caution and in consideration of the supported Rust versions of the major distributions available. This fixes #2277.
2019-04-03Bump dependenciesChristian Duerr