From b2dd727499800306b89dad2275e600781ef3739f Mon Sep 17 00:00:00 2001 From: ame Date: Wed, 9 Oct 2024 17:04:13 -0500 Subject: add gradient rect support --- render/fx_renderer/fx_renderer.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'render/fx_renderer/fx_renderer.c') 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"); -- cgit v1.2.3