summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2023-01-18 01:49:26 -0500
committerGitHub <[email protected]>2023-01-18 01:49:26 -0500
commit588ea8e290a61a8a98e72617fd679689891e2e39 (patch)
tree128bf22c2f419c793e1a6b84ee03c91af4253629 /include
parent1baba77c74302b8c1f212e851f194deae0fae46b (diff)
feat: Add box shadows (#64)
Co-authored-by: Erik Reider <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/sway/commands.h3
-rw-r--r--include/sway/config.h3
-rw-r--r--include/sway/desktop/fx_renderer.h16
-rw-r--r--include/sway/tree/container.h2
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;