aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer/text
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'vendor/master' into graphicsAyose2025-11-04
|\
| * Ignore touch gestures for enabling IMEChristian Duerr2025-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously whenever the user would use touch gestures to make selections or scroll the terminal, IME would automatically be enabled due to the focus change and reduce the terminal height. This isn't ideal when the goal is just scanning through the terminal history without making any input. This patch keeps track of pointer and touch focus and only enables IME when either the pointer is within the window or a tap touch sequence was performed to give the window 'touch focus'. The initial touch tap sequence used to enable IME is still forwarded to the terminal as a simulated click event, since otherwise touch devices without virtual keyboard would be forced into a confusing additional tap to make it work. This means that virtual keyboard users will not be able to open the virtual keyboard without creating a click event, which should still be preferable to the status quo.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2025-09-07
|\|
| * Improve builtin font ellipse renderingZnarf2025-07-31
| |
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2025-07-23
|\|
| * Migrate to 2024 editionChristian Duerr2025-07-13
| |
| * Remove cstr! macro in favor of literal notationKirill Chibisov2025-07-01
| | | | | | | | | | Also apply clippy changes while at it. Closes #8002.
| * Fix clippy warningsKirill Chibisov2025-05-28
| |
| * Apply glyph offset to strikeout positionTravis Harmon2025-04-08
| |
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2024-12-26
|\|
| * Remove unnecessary staticsIntegral2024-12-09
| |
| * Fix racing condition in hint triggeringChristian Duerr2024-11-02
| | | | | | | | | | | | | | | | | | | | | | This fixes an issue with hints where it was possible that the terminal content of highlighted hints changed between the highlighted hint update and the activation of the hint. This patch always validates the hint's text content against the hint itself to ensure that the content is still valid for the original hint which triggered the highlight. Closes #8277.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2024-07-29
|\|
| * Fix search bug with wrapline on first characterChristian Duerr2024-07-05
| | | | | | | | | | | | | | | | This fixes an issue where an inline search in the left direction would incorrectly assume that the first cell searched would not contain the `WRAPLINE` flag, causing the second search for the match end to terminate prematurely. Fixes #8060.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2024-02-11
|\|
| * Use builtin font to draw sextantsPopa Ioan Alexandru2024-01-26
| | | | | | | | | | | | Sextants are similar to quadrants and should align with them and other box drawing, thus use builtin font to align them properly. Part-of: #7422.
| * Powerline glyphs being cut for narrow fontsKirill Chibisov2023-12-31
| | | | | | Fixes #7470.
| * Update to crossfont 0.6.0Kirill Chibisov2023-12-08
| |
| * Simplify powerline drawing algorithmKirill Chibisov2023-11-19
| | | | | | | | | | | | Iterate over points in line instead of drawing it right away and then finding it in the buffer. Fixes: 4a26667060 (Use builtin font to draw powerline symbols)
| * Use builtin font to draw powerline symbolsKirill Chibisov2023-11-11
| | | | | | | | | | | | In addition to box drawing it was decided to also draw powerline symbols, since those are quite common and rather simple to draw with present box drawing infra.
| * Fix typosPavel Roskin2023-10-25
| |
| * Use ahash instead of fnv and regular hash functionKirill Chibisov2023-07-24
| | | | | | | | | | | | | | | | After evaluation of the ahash with the data alacritty uses it was discovered that it's 1.5-2x times faster when getting the already hashed values, which is the primary cases for alacritty's renderer. Given that ahash is generally faster, all the HashSet and HashMap's inside the alacritty were changed to use it as a hasher function.
| * Update bitflags to 2.2.1Kirill Chibisov2023-05-17
| |
| * Fix selection rotation on the last lineChristian Duerr2023-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | This fixes an issue with terminal resizes when the selection is on the last line. Alacritty would fail to rotate lines and keep the selection in the same line index whenever the terminal line count was grown or shrunk. This issue occurred due to the range passed to the selection's rotate function still being based on the old terminal size, which caused the initial or target state of the rotation to be outside of the terminal bounds. Closes #6698.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2023-03-01
|\|
| * Fix crash when Atlas is fullKirill Chibisov2023-02-11
| | | | | | | | | | This fixes the regression introduced by 2d27fff. Fixes #6688.
| * Make gles2 renderer actually gles2Kirill Chibisov2023-02-07
| | | | | | Fixes #6209.
| * Align quadrants with half blocks in built-in fontKirill Chibisov2023-02-05
| | | | | | Fixes #6201.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2022-12-02
|\|
| * Add 'debug.renderer' config optionKirill Chibisov2022-11-28
| | | | | | | | | | This should help trouble shooting the renderer being created and different renderer options to determine when something like dual-source rendering isn't working.
| * Fix crash with very low font sizesKirill Chibisov2022-10-21
| | | | | | Fixes #6432.
| * Fix cursor and underlines always being blackKirill Chibisov2022-10-21
| | | | | | | | | | | | | | Some old hardware doesn't like universal shader approach for all the rectangle kinds leading to ALU instruction limits. This commit fixes it by splitting the shader per rectangle kind. Fixes #6417.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2022-10-16
|\|
| * Fix clippy warningsChristian Duerr2022-10-12
| | | | | | | | | | This patch applies all clippy lints currently present on the latest clippy master than are compatible with our oldstable clippy (only exception is the `_else(||` stuff).
| * Don't enable multisamplingKirill Chibisov2022-09-11
| | | | | | | | | | It never worked in the first place, because we were never requesting it in glutin, and it provides no value given that textures are already antialiased.
| * Bump glutin to 0.29.1Kirill Chibisov2022-08-10
| | | | | | | | | | | | | | | | Fixes #6239. Fixes #5975. Fixes #5876. Fixes #5767. Fixes #4484. Fixes #3139.
* | Merge remote-tracking branch 'vendor/master' into graphicsAyose2022-08-04
|\|
| * Fix thin strokes on macOSChris Copeland2022-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the `font.use_thin_strokes` config, which only did anything on macOS and only prior to Big Sur. Instead, we will enable or disable "font smoothing" on macOS based on the `AppleFontSmoothing` user default. These changes let users get the "thin strokes" behavior by setting `AppleFontSmoothing` to 0 with: ```sh $ defaults write -g AppleFontSmoothing -int 0 ``` (Or replace `-g` with `org.alacritty` to apply this setting only to Alacritty.app, rather than the whole system.) Add a `removed` config attribute to show helpful warnings to users who are using config options that don't do anything anymore, and apply this attribute to `font.use_thin_strokes`. Bump `crossfont` to 0.5.0 to pick up the new font smoothing behavior. This release also includes a fix for a crash when trying to load a disabled font. Fixes #4616. Fixes #6108.
* | Merge with alacritty/masterAyose2022-07-12
|/ | | | | | | | | | | | | | | | | | The merge requires multiple changes in order to be compatible with the last version of Alacritty: - Textures are now always deleted on Drop. This is required because Alacritty now supports multiple windows in the same process, so we can't assume that all resources are freed when a single window is closed. This is the same approach used for the atlas textures. - The graphics feature is only compatible with OpenGL 3.3. Alacritty now supports GLES 2.2, but in order to provide a proper support for it we need a different approach, specific for that version. - Cell dimensions in pixels are re-added to the alacritty_terminal crate.
* Add support for hyperlink escape sequenceKirill Chibisov2022-07-10
| | | | | | | This commit adds support for hyperlink escape sequence `OSC 8 ; params ; URI ST`. The configuration option responsible for those is `hints.enabled.hyperlinks`. Fixes #922.
* Fix flickering during resize on WaylandKirill Chibisov2022-06-09
| | | | | This also fixes an issue of windows not being rendered while resizing. Fixes #6069.
* Support dual source blending in GLES2 rendererVasily Khoruzhick2022-06-08
| | | | | | | | | GLES2 has GL_EXT_blend_func_extended extension that enables dual-source blending, so essentially we can reuse fragment shader from GLSL3 renderer and do 1 rendering pass instead of 3 for the text. Co-authored-by: Kirill Chibisov <contact@kchibisov.com> Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Fix a few minor clippy lintsYuri Astrakhan2022-06-02
|
* Fix builtin glyphs for U+2567 and U+2568algon2022-05-20
|
* Fix gap in builtin box drawingKirill Chibisov2022-05-08
| | | | | Builtin box drawing glyphs in range from '\u{2580}' to `\u{2587}` could have gap due to missing rounding. Previously height was rounded, however not the `y` offset. This commit fixes it.
* Extract `SizeInfo` from alacritty_terminalKirill Chibisov2022-04-06
| | | | | The `SizeInfo` is a SizeInfo used for rendering, which contains information about padding, and such, however all the terminal need is number of visible lines and columns.
* Fix `font.glyph_offset` not live reloadingKirill Chibisov2022-03-11
| | | Fixes #5944.
* Add fallback GLES2 rendererKirill Chibisov2022-03-02
Currently Alacritty only works on hardware which supports OpenGL 3.3 or more, which can become problematic with older devices. This patch adds a new GLES2 renderer, since it is much more widely supported, especially on weaker hardware like phones or a Raspberry Pi. While the GLES2 renderer is slower than the OpenGL 3.3+ version, it is still significantly faster than software rendering. However because of this performance difference it is only used when necessary and there should be no difference for machines supporting OpenGL 3.3+. The two renderers are largely independent and separated in the `renderer/text/glsl3` and `renderer/text/gles2` modules. Separate shaders are also required for text rendering. The rectangle rendering for underlines and the visual bell works identically for both versions, but does have some version-specific shader code. Fixes #128. Co-authored-by: Christian Duerr <contact@christianduerr.com>