Commit Graph

16182 Commits

Author SHA1 Message Date
Kovid Goyal
59aefea2e9 More unused code
clamping position to pixels not needed since we now work in pixels
not floating point co-ords.
2025-08-07 09:17:20 +05:30
Kovid Goyal
905f739826 Remove unneeded code
Since we use viewport based rendering now, there is no need
to pass pre calculated dx/dy/xstart/ystart around.

xstart and ystart are fixed at -1, 1
dx and dy are trivially calculated from lines/cols

...
2025-08-07 09:17:20 +05:30
Kovid Goyal
0c87239a79 Move some finished tasks out of TODO 2025-08-07 09:17:20 +05:30
Kovid Goyal
e2bd32bb86 Fix rendering during live resize 2025-08-07 09:17:20 +05:30
Kovid Goyal
8adc838aed Allow redirecting rendering to a FBO 2025-08-07 09:17:20 +05:30
Kovid Goyal
2eb5d4deca Properly cancel visual select mode on OS window close request 2025-08-07 09:17:20 +05:30
Kovid Goyal
c1e16210b9 Port rendering of window numbers 2025-08-07 09:17:20 +05:30
Kovid Goyal
12858c0663 Port rendering of hyperlink target bar 2025-08-07 09:17:20 +05:30
Kovid Goyal
948d2e6e9c Spelling 2025-08-07 09:17:20 +05:30
Kovid Goyal
23b3c83a84 Port rendering of scroll indicator 2025-08-07 09:17:20 +05:30
Kovid Goyal
a9585d7324 Function to save RGBA data as PNG 2025-08-07 09:17:19 +05:30
Kovid Goyal
2946ff18da Port visual bell to new layer framework
Use a separate layer for UI like visual bell, scroll indicator, etc.
2025-08-07 09:17:19 +05:30
Kovid Goyal
ec42f5c2b9 Update glad generated bindings 2025-08-07 09:17:19 +05:30
Kovid Goyal
a1966acca7 Start transition to using glViewport in draw_cells
This will make everything much simpler since all co-ordinates are now
relative to the viewport position. However, it does mean an extensive
re-write of various bits of code, most especially the graphics render
data.
2025-08-07 09:17:19 +05:30
Kovid Goyal
c93ba694b2 Store layer sizes as well 2025-08-07 09:17:19 +05:30
Kovid Goyal
7d428f03e7 Implement layer support in the cell shader 2025-08-07 09:17:19 +05:30
Kovid Goyal
9438dc9035 Allow running cell shader for intermediate output 2025-08-07 09:17:19 +05:30
Kovid Goyal
31bf08d78b Start work on integrating graphics layers into cell shader 2025-08-07 09:17:19 +05:30
Kovid Goyal
2679911fd8 Add uniforms for the three graphics layers 2025-08-07 09:17:19 +05:30
Kovid Goyal
67fa0f9043 Remove note in docs about non-linear opacity as it no longer applies 2025-08-07 09:17:19 +05:30
Kovid Goyal
99b7da63a8 Do sRGB premult correct blending in the border shader as well 2025-08-07 09:17:19 +05:30
Kovid Goyal
df69fca0f1 Use an explicit sentinel to iterate over cell programs 2025-08-07 09:17:19 +05:30
Kovid Goyal
560b909190 We dont need the alpha channel adjustment hack anymore as far as I can tell
Will need further testing
2025-08-07 09:17:19 +05:30
Kovid Goyal
04335f14f8 Restore transparent rendering
As a further optimization, use opaque rendering when no transparent
background colors are present.

Still have to test/fix the fringing issues.
2025-08-07 09:17:18 +05:30
Kovid Goyal
8345975050 Get rid of transparency specialisation in cell shader
It's not a significant optimisation anymore as it only
elides call to adjust_alpha_for_incorrect_blending_by_compositor,
which will probably not be needed anymore anyway.
2025-08-07 09:17:18 +05:30
Kovid Goyal
774d53debe Start work on shader refactor for correct linear blending 2025-08-07 09:17:18 +05:30
Kovid Goyal
c86ec79e32 macOS: Add default mapping and global menubar action to erase last command
This is "Cmd+L" from Terminal.app
2025-08-07 09:15:12 +05:30
Kovid Goyal
b0439d4183 Function to erase the last command and its output 2025-08-07 08:45:45 +05:30
Kovid Goyal
97f1d7f436 Implement session command to set layout state 2025-08-06 20:43:12 +05:30
Kovid Goyal
bc8fc6642c Cross link scrollback fill enlarged window option in zoom action docs 2025-08-06 09:58:28 +05:30
Kovid Goyal
02301e80ef ... 2025-08-06 09:47:07 +05:30
Kovid Goyal
c0c3a48b4a Cleanup previous PR 2025-08-04 20:31:31 +05:30
Kovid Goyal
b84849a0ab Merge branch 'kitten-desktop-ui-portal-xdg-compat' of https://github.com/azertyfun/kitty 2025-08-04 20:24:46 +05:30
Nathan Monfils
dd7fa6b25a kitten desktop-ui: Do not create an empty *-portals.conf file
In the case where a portals.conf file does not exist in the user
configuration, there is nothing to patch; we should default to defining
the relevant portals for kitty.
2025-08-04 16:44:08 +02:00
Nathan Monfils
ff1c8ab917 kitten desktop-ui portal.go: Compat with XDG spec
1. Make sure we coalesce XDG_DATA_HOME as per the spec
  On my machine /etc/profile.d/flatpak.sh sets
  XDG_DATA_DIRS=$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
  but XDG_DATA_HOME is unset.

2. Update directory creation logic to find-or-create
   `enable_portal`'s current behavior is to first find a writable directory and
   write the portal definition to it, then fall back to creating a directory
   in the first available configuration directory.
   This is incorrect in the case where one of the locations in
   XDG_DATA_DIRS already has a directory, we should still prioritize
   XDG_DATA_HOME.
2025-08-04 16:41:58 +02:00
Kovid Goyal
b95b4164fc Add a couple of password manager kitty integrations 2025-08-04 19:05:44 +05:30
Kovid Goyal
bdf3b9300e Make creation of window_id_map generic 2025-08-04 16:28:06 +05:30
Kovid Goyal
16e659c477 DRYer 2025-08-04 16:16:55 +05:30
Kovid Goyal
1665b06d59 Implement set_layout_state for a few remaining layouts 2025-08-04 16:02:19 +05:30
Kovid Goyal
e6f35571a5 Implement full serialization/unserialization for layouts
Need to go over all the non-split layouts and see if they need
any TLC
2025-08-04 15:51:46 +05:30
Kovid Goyal
6d2b17d877 opts serialization is done by base class 2025-08-02 12:49:06 +05:30
Kovid Goyal
bbbeeb8206 More rigorous set layout state sanity check 2025-08-02 12:48:04 +05:30
Kovid Goyal
c4ed1d3b69 Implement unserialization for splits layout
Also cleanup the serialization code.
2025-08-02 12:12:40 +05:30
Kovid Goyal
f64182e16c Scroll indicator should usepremult blending whenever draw_cells_simple uses it 2025-07-31 21:24:17 +05:30
Kovid Goyal
8b9d802206 Specify the color space on Wayland surfaces
Uses sRGB with the sRGB transfer function. Seems to give identical
results as not specifying a color space. But sadly does not get the
compositor to blend in linear space, we need another wayland protocol
extension for that I suppose. Sigh.
2025-07-31 19:18:09 +05:30
Kovid Goyal
2ffa8cd7c2 Apparently gamma22 gives incorrect colors or at least colors different from rendering without color management. srgb transfer function gives expected colors. 2025-07-31 19:07:28 +05:30
Kovid Goyal
caa654b6b8 Also track needed color manager features 2025-07-31 18:53:24 +05:30
Kovid Goyal
12c6d799b7 ... 2025-07-31 18:34:29 +05:30
Kovid Goyal
d37bd7afcf Create the sRGB colorspace description we need 2025-07-31 18:30:47 +05:30
Kovid Goyal
df22e8c9b7 Only report missing features when color manager itself is supported 2025-07-31 15:41:17 +05:30