sixel: add support for overlapping sixels
sixel: add support for overlapping sixels Writing a sixel on top of an already existing sixel currently has the following limitations in foot: * The parts of the first sixel that is covered by the new...
View Articlesixel: fix crash when splitting up an image across the scrollback
sixel: fix crash when splitting up an image across the scrollback If an image was split up across the scrollback, and the first image chunk was resized due to it being blended with an already existing...
View Articlesixel: destroy(): don’t unref a NULL pixman image
sixel: destroy(): don’t unref a NULL pixman image
View Articlesixel: calculate default bg once, in init
sixel: calculate default bg once, in init We have all information we need to calculate the default background color in sixel_init(): * Whether the image have transparency or not * The current ANSI...
View Articlesixel: avoid looking up color from palette for each sixel
sixel: avoid looking up color from palette for each sixel Instead, do the palette lookup when we receive the DECGCI (i.e. when the palette entry is selected), and store the actual color value in our...
View Articlesixel: call decsixel() directly, instead of going through sixel_put()
sixel: call decsixel() directly, instead of going through sixel_put()
View Articleterm: track cell color source
term: track cell color source Each cell now tracks it’s current color source: * default fg/bg * base16 fg/bg (maps to *both* the regular and bright colors) * base256 fg/bg * RGB Note that we don’t have...
View Articlesixel: VT state’s bg color may now be an index, rather than an actual color...
sixel: VT state’s bg color may now be an index, rather than an actual color value
View Articlesixel: resize: truncate instead of failing, when new size exceeds max size
sixel: resize: truncate instead of failing, when new size exceeds max size If the size we’re trying to set exceeds the configured max size, truncate instead of failing.
View Articlesixel: DECGRI (repeat) with a count of 0 should emit a single sixel
sixel: DECGRI (repeat) with a count of 0 should emit a single sixel
View Articlesixel: revert to default state when an invalid DECGRI character is received
sixel: revert to default state when an invalid DECGRI character is received
View Articlesixel/terminal: use the new grid and selection APIs
sixel/terminal: use the new grid and selection APIs Use grid_row_abs_to_sb() instead of manually “rebasing” row numbers. Use selection_get_{start,end}() to retrieve the current selection coordinates.
View Articlesixel: add sixel_reflow_grid()
sixel: add sixel_reflow_grid() This function reflows all sixels in the specified grid. The pre-existing sixel_reflow() function is a shortcut for sixel_reflow_grid(term, &term->normal)...
View Articlesixel: don’t crash when sixel image exceeds current sixel max height
sixel: don’t crash when sixel image exceeds current sixel max height When we try to resize a sixel past the current max height, we set col > image-width to signal this. This means ‘width’ could be...
View ArticleTag a couple variables with UNUSED, to fix warnings with clang-15
Tag a couple variables with UNUSED, to fix warnings with clang-15 Closes #1278
View Articlesixel: apply background alpha when P2=0 or P2=2, and current bg color is the...
sixel: apply background alpha when P2=0 or P2=2, and current bg color is the default bg color Closes #1360
View Articlesixel: fix cursor positioning logic
sixel: fix cursor positioning logic This adjusts the logic that positions the text cursor after emitting a sixel, when sixel scrolling mode is *enabled*. We’ve always mimicked XTerm’s behavior....
View Articlesixel: respect sixel aspect ratio
sixel: respect sixel aspect ratio That is, parse P1 when initializing a new sixel, and don’t ignore pad/pad in the raster attributes command. The default aspect ratio is 2:1, but most sixels will...
View Articlesixel: stop cropping images to the last non-transparent row
sixel: stop cropping images to the last non-transparent row
View Articlesixel: minor fixes after implementing support for non-1:1 aspect ratios
sixel: minor fixes after implementing support for non-1:1 aspect ratios * Lazy initialize image height. This is necessary to prevent garbage from being rendered for "empty" sixels. * Fix plotting of...
View Article