16199 Commits

Author SHA1 Message Date
Kovid Goyal
5130089fb4 background_tint will now only applies to background image
clarify docs accordingly. It makes no sense for it to apply on
background_opacity < 1 windows, since we cant actually blend properly
with whats behind our window, only the compositor can do that. Most
decent compositors have ways to do that: macOS, KDE, Hyprland to name
some.
2025-08-09 12:42:35 +05:30
Kovid Goyal
babff704da DRYer 2025-08-09 10:03:37 +05:30
Kovid Goyal
9bdc6d61ca Draw bg image in border shader 2025-08-09 09:56:22 +05:30
Kovid Goyal
3165c5d852 Work on getting rendering of background image with background_opacity < 1 to work somewhat correctly at least 2025-08-08 14:22:12 +05:30
Kovid Goyal
7dc78046c0 ... 2025-08-08 13:03:32 +05:30
Kovid Goyal
6caad7858a Fix override_text_fg shader preprocessor branch 2025-08-08 12:46:57 +05:30
Kovid Goyal
6f0d473015 Add support for background image to border shader
Still need to do background_tint and check that background_opacity works
2025-08-08 11:54:54 +05:30
Kovid Goyal
773671a854 Draw background image behind windows
Remains to draw it in the bg shader as well
2025-08-08 08:41:08 +05:30
Kovid Goyal
eab952553c ... 2025-08-08 07:46:12 +05:30
Kovid Goyal
b298105db0 Fix gl_pos* functions for negative positions 2025-08-08 07:41:54 +05:30
Kovid Goyal
15675dd433 DRYer 2025-08-08 07:33:32 +05:30
Kovid Goyal
687791f95d Start work on porting drawing of bgimage 2025-08-07 21:05:03 +05:30
Kovid Goyal
7c341f215c Force redraw when reloading all GPU data 2025-08-07 12:41:58 +05:30
Kovid Goyal
4f3eb6bfed Port rendering of window logo 2025-08-07 09:17:20 +05:30
Kovid Goyal
ae14ca05b2 Fix rendering of under_bg_layer 2025-08-07 09:17:20 +05:30
Kovid Goyal
b9e6a12994 Work on graphics with negative z-index 2025-08-07 09:17:20 +05:30
Kovid Goyal
e108cc8539 Start work on graphics rendering 2025-08-07 09:17:20 +05:30
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