Per application color saturation support (#21)

* Initial implementation without fullscreen support

* Limit saturation to 2

* Fixed saturation not working for fullscreen applications like CSGO

* Fixed saturation ignoring border radius

* Updated README and sway.5 man page

* Rebased from Master

* Added command to README

* Fixed nitpicks
This commit is contained in:
Erik Reider 2022-11-12 01:38:09 +01:00 committed by GitHub
parent 8c907a0bcb
commit 1881b01d3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 137 additions and 25 deletions

View file

@ -159,6 +159,7 @@ sway_cmd cmd_new_float;
sway_cmd cmd_new_window;
sway_cmd cmd_nop;
sway_cmd cmd_opacity;
sway_cmd cmd_saturation;
sway_cmd cmd_new_float;
sway_cmd cmd_new_window;
sway_cmd cmd_no_focus;

View file

@ -16,6 +16,7 @@ struct gles2_tex_shader {
GLint size;
GLint position;
GLint radius;
GLint saturation;
GLint has_titlebar;
};
@ -79,10 +80,10 @@ void fx_renderer_scissor(struct wlr_box *box);
bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, struct wlr_texture *wlr_texture,
const struct wlr_fbox *src_box, const struct wlr_box *dst_box, const float matrix[static 9],
float alpha, int radius, const bool has_titlebar);
float alpha, int radius, float saturation, const bool has_titlebar);
bool fx_render_texture_with_matrix(struct fx_renderer *renderer, struct wlr_texture *wlr_texture,
const struct wlr_box *dst_box, const float matrix[static 9], float alpha, int radius,
const struct wlr_box *dst_box, const float matrix[static 9], float alpha, int radius, float saturation,
const bool has_titlebar);
void fx_render_rect(struct fx_renderer *renderer, const struct wlr_box *box,

View file

@ -113,6 +113,8 @@ struct sway_container {
// Hidden scratchpad containers have a NULL parent.
bool scratchpad;
float saturation;
float alpha;
int corner_radius;