aboutsummaryrefslogtreecommitdiff
path: root/font/src/ft
Commit message (Collapse)AuthorAge
* Rename font crate to crossfontChristian Duerr2020-07-18
|
* Fix freetype 26.6 format conversioncynecx2020-07-14
| | | | | | | | | | | | | | | | | 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>
* Remove alacritty.yml mentions from font crate errorsKirill Chibisov2020-07-11
|
* Set default FreeType propertiesKirill Chibisov2020-07-10
| | | | | | In addition it also starts respecting Fontconfig's `autohint` and `hinting` options. Fixes #3534.
* Fix compilation on 32bit targetsKirill Chibisov2020-07-04
| | | Fixes #3915.
* Remove copyright notice from filesChristian Duerr2020-06-06
| | | | | | | | | | | | | | 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.
* Add support for Fontconfig embolden and matrix optionsKirill Chibisov2020-05-14
| | | Fixes #1754.
* Extend style guideline documentationChristian Duerr2020-05-05
|
* Use font style for fontconfig fallbackKirill Chibisov2020-03-17
|
* Run clippy on oldest supported versionChristian Duerr2020-03-12
| | | | | 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.
* Fix selection with invisible start and endChristian Duerr2020-03-07
| | | | | 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.
* Fix caching of variable font facesKirill Chibisov2020-03-06
|
* Revert caching of font pixelsizeKirill Chibisov2020-02-27
| | | | | | | | We can't reliably do that, because some fonts are bitmap, but marked as scalable by Fontconfig. Fixes #3387.
* Add FreeType face cacheKirill Chibisov2020-02-26
|
* Fix Fontconfig's font size queryKirill Chibisov2020-02-23
| | | 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.
* Fix discarding of FreeType loading flagsKirill Chibisov2020-02-20
| | | | | | Fixes regression introduced in 6b327b6f8f0f308ff8f46cdf551ce0d0f3eda60b. Fixes #3355.
* Fix non-scalable font resize issueKirill Chibisov2020-02-03
| | | Fixes resize regression from 15cc07c069b09f109ed18fb94e02e9650be7fa33.
* Fix handling of OpenType variable fontsKirill Chibisov2020-01-31
| | | | Fixes #3257.
* Rework Fontconfig fallback to use cached list from font_sortKirill Chibisov2020-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix underline position for bitmap fontsKirill Chibisov2020-01-22
| | | | Fixes #3235.
* Replace `.nth(0)` with `.next()`Cole Helbling2020-01-17
| | | | | 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
* Update font crate to 2018 editionDavid Hewitt2020-01-15
|
* Replace deprecated Error methodssterlingjensen2020-01-03
|
* Add support for colored emojis on Linux/BSDKirill Chibisov2019-12-09
| | | Fixes #153.
* Update dependenciesKirill Chibisov2019-10-23
|
* Update to winit/glutin EventLoop 2.0Christian Duerr2019-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Respect fontconfig's embeddedbitmap settingRoman Holovin2019-07-23
| | | | Fixes #2655.
* Fix compiler warningsMatthias Krüger2019-06-09
|
* Bump minimum supported Rust version to 1.32.0Christian Duerr2019-06-08
|
* Fix cursor colorsChristian Duerr2019-04-20
| | | | | | | | | | 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.
* Set maximum Rust version to 1.31.0Christian Duerr2019-04-09
| | | | | | | | | | | | | 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.
* Bump dependenciesChristian Duerr2019-04-03
|
* Add rustfmt style guideChristian Duerr2019-03-30
|
* Normalize Log Message StringsNathan Lilienthal2019-01-07
| | | | | | The general style for errors, warnings and info messages is to start with a capitalized letter and end without a period. The main exception is when dealing with nouns that are clearer with special case handling, e.g. "macOS failed to work" or "ioctl is borked".
* Fix line metricsChristian Duerr2018-12-31
| | | | | | | | | | | | | | Since bitmap fonts do not provide their own underline metrics, the self-calculated metrics which have been used for rusttype are now also used for bitmap fonts with freetype. The rusttype and bitmap fallback metrics have incorrectly offset the underline by the underline height. Since the position is already defined as the center point, that is not necessary. All rounding and clamping has also been removed from the font library, so that the raw values are reported now. The clamping and rounding is now done in the line renderer.
* Add proper underline and strikeout supportChristian Duerr2018-12-22
| | | | | This makes use of the new rectangle rendering methods used to display the colored visual bell to add proper underline and strikeout support to Alacritty.
* Upgrade to Rust 2018Joe Wilm2018-12-10
| | | | | This resolves a lot of NLL issues, however full NLL will be necessary to handle a couple of remaining issues.
* Upgrade Glutin to v0.19.0Matt Keeler2018-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some changes include: • Use the with_hardware_acceleration function on the ContextBuilder to not require the discrete GPU • Remove the LMenu and RMenu virtual key codes (winit 0.16.0 removed these because Windows now generates LAlt and RAlt instead • Replace set_cursor_state with hide_cursor (winit 0.16.0 removed the set_cursor_state function) • Replace GlWindow::hidpi_factor with GlWindow::get_hidpi_factor and change to expecting an f64 • Use the glutin/winit dpi size and position types where possible Glutin's dpi change event has been implemented. All size events now return logical sizes. As a result of that, the logical sizes are translated in the `display::handle_rezize` method so DPI scaling works correctly. When the DPI is changed, the glyph cache is updated to make use of the correct font size again. Moving a window to a different screen which is a different DPI caused a racing condition where the logical size of the event was sent to the `handle_resize` method in `src/display.rs`, however if there was a DPI change event before `handle_resize` is able to process this message, it would incorrectly use the new DPI to scale the resize event. To solve this issue instead of sending the logical size to the `handle_resize` method and then converting it to a physical size in there, the `LogicalSize` of the resize event is transformed into a `PhysicalSize` as soon as it's received. This fixes potential racing conditions since all events are processed in order. The padding has been changed so it's also scaled by DPR. The `scale_with_dpi` config option has been removed. If it's not present a warning will be emitted. The `winit` dependency on Windows has been removed. All interactions with winit in Alacritty are handled through glutin.
* Fix clippy issuesChristian Duerr2018-11-04
| | | | This resolves all existing clippy issues and removes some old `allow` annotations which aren't neccesary anymore.
* Add support for Windows (#1374)Zac Pullar-Strecker2018-10-16
| | | | | | | | | | | | | | | Initial support for Windows is implemented using the winpty translation layer. Clipboard support for Windows is provided through the `clipboard` crate, and font rasterization is provided by RustType. The tty.rs file has been split into OS-specific files to separate standard pty handling from the winpty implementation. Several binary components are fetched via build script on windows including libclang and winpty. These could be integrated more directly in the future either by building those dependencies as part of the Alacritty build process or by leveraging git lfs to store the artifacts. Fixes #28.
* Bump fontconfig dependenciesJon Gjengset2018-09-30
| | | | | The patch uses the Cargo.toml patch section to force a single downstream choice of freetype-sys instead of relying on forks of other crates. It also bumps the fontconfig/freetype dependencies in the process.
* Fix style issuesMatthias Krüger2018-09-17
|
* Fix clippy lints and run font tests on travisMatthias Krüger2018-07-25
| | | | | | This fixes some existing clippy issues and runs the `font` tests through travis. Testing of copypasta crate was omitted due to problens when running on headless travis-ci environment (x11 clipboard would fail).
* Add support for LCD-V pixel modeyshui2018-07-21
|
* Enable clippy in font/copypasta cratesMatthias Krüger2018-07-02
| | | | | Enabled clippy in the sub-crates font and copypasta. All issues that were discovered by this change have also been fixed.
* Fix clippy issuesChristian Duerr2018-07-01
|
* Move to cargo clippyChristian Duerr2018-06-17
| | | | | | | | | | | | | | Using clippy as a library has been deprecated, instead the `cargo clippy` command should be used instead. To comply with this change clippy has been removed from the `Cargo.toml` and is now installed with cargo when building in CI. This has also lead to a few new clippy issues to show up, this includes everything in the `font` subdirectory. This has been fixed and `font` should now be covered by clippy CI too. This also upgrades all dependencies, as a result this fixes #1341 and this fixes #1344.
* Better character cell width with FreeType (#1029)Rachel K2018-01-21
| | | This should fix #1020, #710, and #902
* Move custom cursor block on ftChristian Dürr2017-12-24
| | | | | Moved the custom cursor block on ft to the top, so no unnecessary operations are executed when trying to draw a custom cursor glyph.
* Use font_key provided with cursor glyphsChristian Dürr2017-12-24
| | | | | | | Previously it was assumed that the font_key for the normal font is always 0, because this assumption was a bit of a stretch, now the font_key provided with the glyph is used. This is always the bold, italics or normal font associated with the cell.