diff options
author | William McKinnon <[email protected]> | 2024-04-15 01:32:22 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-15 01:32:22 -0400 |
commit | e1f4bc5996b1c77c7fa8536b7c03d9eb4140227d (patch) | |
tree | 3fa8045ca37131acc96c88cec4a2f920de6113fb /include/render/fx_renderer/shaders.h | |
parent | 7e723f983b074e62e676caffe21cd5527b524587 (diff) |
feat: add functions required by SwayFX (#35)
Diffstat (limited to 'include/render/fx_renderer/shaders.h')
-rw-r--r-- | include/render/fx_renderer/shaders.h | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/include/render/fx_renderer/shaders.h b/include/render/fx_renderer/shaders.h index 226dd36..94aa029 100644 --- a/include/render/fx_renderer/shaders.h +++ b/include/render/fx_renderer/shaders.h @@ -20,6 +20,14 @@ enum fx_tex_shader_source { SHADER_SOURCE_TEXTURE_EXTERNAL = 3, }; +enum fx_rounded_quad_shader_source { + SHADER_SOURCE_QUAD_ROUND = 1, + SHADER_SOURCE_QUAD_ROUND_TOP_LEFT = 2, + SHADER_SOURCE_QUAD_ROUND_TOP_RIGHT = 3, + SHADER_SOURCE_QUAD_ROUND_BOTTOM_RIGHT = 4, + SHADER_SOURCE_QUAD_ROUND_BOTTOM_LEFT = 5, +}; + struct quad_shader { GLuint program; GLint proj; @@ -29,6 +37,18 @@ struct quad_shader { bool link_quad_program(struct quad_shader *shader); +struct quad_round_shader { + GLuint program; + GLint proj; + GLint color; + GLint pos_attrib; + GLint size; + GLint position; + GLint radius; +}; + +bool link_quad_round_program(struct quad_round_shader *shader, enum fx_rounded_quad_shader_source source); + struct tex_shader { GLuint program; GLint proj; @@ -39,16 +59,35 @@ struct tex_shader { GLint size; GLint position; GLint radius; + GLint has_titlebar; GLint discard_transparent; + GLint dim; + GLint dim_color; }; bool link_tex_program(struct tex_shader *shader, enum fx_tex_shader_source source); -struct stencil_mask_shader { +struct rounded_border_corner_shader { GLuint program; GLint proj; GLint color; GLint pos_attrib; + GLint is_top_left; + GLint is_top_right; + GLint is_bottom_left; + GLint is_bottom_right; + GLint position; + GLint radius; + GLint half_size; + GLint half_thickness; +}; + +bool link_rounded_border_corner_program(struct rounded_border_corner_shader *shader); + +struct stencil_mask_shader { + GLuint program; + GLint proj; + GLint pos_attrib; GLint half_size; GLint position; GLint radius; |