diff options
author | William McKinnon <[email protected]> | 2023-01-18 01:49:26 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2023-01-18 01:49:26 -0500 |
commit | 588ea8e290a61a8a98e72617fd679689891e2e39 (patch) | |
tree | 128bf22c2f419c793e1a6b84ee03c91af4253629 /include | |
parent | 1baba77c74302b8c1f212e851f194deae0fae46b (diff) |
feat: Add box shadows (#64)
Co-authored-by: Erik Reider <[email protected]>
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/commands.h | 3 | ||||
-rw-r--r-- | include/sway/config.h | 3 | ||||
-rw-r--r-- | include/sway/desktop/fx_renderer.h | 16 | ||||
-rw-r--r-- | include/sway/tree/container.h | 2 |
4 files changed, 24 insertions, 0 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h index 98b232e1..256b3506 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h @@ -178,6 +178,9 @@ sway_cmd cmd_scratchpad; sway_cmd cmd_seamless_mouse; sway_cmd cmd_set; sway_cmd cmd_shortcuts_inhibitor; +sway_cmd cmd_shadow_blur_radius; +sway_cmd cmd_shadow_color; +sway_cmd cmd_shadows; sway_cmd cmd_show_marks; sway_cmd cmd_smart_borders; sway_cmd cmd_smart_gaps; diff --git a/include/sway/config.h b/include/sway/config.h index 55aa8fbe..bcb06f0f 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -482,6 +482,9 @@ struct sway_config { float unfocused[4]; float urgent[4]; } dim_inactive_colors; + bool shadow_enabled; + int shadow_blur_sigma; + float shadow_color[4]; char *swaynag_command; struct swaynag_instance swaynag_config_errors; diff --git a/include/sway/desktop/fx_renderer.h b/include/sway/desktop/fx_renderer.h index c5bae260..1c3121cd 100644 --- a/include/sway/desktop/fx_renderer.h +++ b/include/sway/desktop/fx_renderer.h @@ -47,6 +47,8 @@ struct fx_renderer { float projection[9]; + GLuint stencil_buffer_id; + struct { bool OES_egl_image_external; } exts; @@ -84,6 +86,17 @@ struct fx_renderer { GLint half_thickness; } corner; + struct { + GLuint program; + GLint proj; + GLint color; + GLint pos_attrib; + GLint position; + GLint size; + GLint blur_sigma; + GLint corner_radius; + } box_shadow; + struct gles2_tex_shader tex_rgba; struct gles2_tex_shader tex_rgbx; struct gles2_tex_shader tex_ext; @@ -118,4 +131,7 @@ void fx_render_border_corner(struct fx_renderer *renderer, const struct wlr_box const float color[static 4], const float projection[static 9], enum corner_location corner_location, int radius, int border_thickness); +void fx_render_box_shadow(struct fx_renderer *renderer, const struct wlr_box *box, + const float color[static 4], const float projection[static 9], int radius, float blur_sigma); + #endif diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index 75a8113a..91448ac7 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h @@ -113,6 +113,8 @@ struct sway_container { // Hidden scratchpad containers have a NULL parent. bool scratchpad; + bool shadow_enabled; + float saturation; float alpha; |