diff options
author | ame <[email protected]> | 2024-10-09 17:04:13 -0500 |
---|---|---|
committer | ame <[email protected]> | 2024-10-09 17:04:13 -0500 |
commit | b2dd727499800306b89dad2275e600781ef3739f (patch) | |
tree | 57dc10dbe85f46ccc573f4eee2497be5ebc4ef6c /render/fx_renderer/fx_renderer.c | |
parent | f05626176636c49ba27c3ba2b69658f50c9b5730 (diff) |
add gradient rect support
Diffstat (limited to 'render/fx_renderer/fx_renderer.c')
-rw-r--r-- | render/fx_renderer/fx_renderer.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/render/fx_renderer/fx_renderer.c b/render/fx_renderer/fx_renderer.c index d2ab366..9c22868 100644 --- a/render/fx_renderer/fx_renderer.c +++ b/render/fx_renderer/fx_renderer.c @@ -639,6 +639,38 @@ static bool link_shaders(struct fx_renderer *renderer) { goto error; } + // quad fragment shader with gradients + if (!link_quad_grad_program(&renderer->shaders.quad_grad, 16)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + + // rounded quad fragment shaders + if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round, SHADER_SOURCE_QUAD_ROUND, 16)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // rounded quad fragment shaders + if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round_tl, SHADER_SOURCE_QUAD_ROUND_TOP_LEFT, 2)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // rounded quad fragment shaders + if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round_tr, SHADER_SOURCE_QUAD_ROUND_TOP_RIGHT, 16)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // rounded quad fragment shaders + if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round_bl, SHADER_SOURCE_QUAD_ROUND_BOTTOM_LEFT, 16)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // rounded quad fragment shaders + if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round_br, SHADER_SOURCE_QUAD_ROUND_BOTTOM_RIGHT, 16)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // rounded quad fragment shaders if (!link_quad_round_program(&renderer->shaders.quad_round, SHADER_SOURCE_QUAD_ROUND)) { wlr_log(WLR_ERROR, "Could not link quad shader"); @@ -685,6 +717,12 @@ static bool link_shaders(struct fx_renderer *renderer) { goto error; } + // border corner shader with gradients + if (!link_rounded_grad_border_corner_program(&renderer->shaders.rounded_grad_border_corner, 2)) { + wlr_log(WLR_ERROR, "Could not link quad shader"); + goto error; + } + // box shadow shader if (!link_box_shadow_program(&renderer->shaders.box_shadow)) { wlr_log(WLR_ERROR, "Could not link box shadow shader"); |