summaryrefslogtreecommitdiff
path: root/render/fx_renderer
diff options
context:
space:
mode:
authorame <[email protected]>2024-10-09 17:37:40 -0500
committerame <[email protected]>2024-10-09 17:37:40 -0500
commit6094bf78c30f9b636844825e208a601019bec589 (patch)
tree231d978ea17387db02e92b2b51b58bbfe71f9521 /render/fx_renderer
parent4484385da44c48521b9306082a6dc10ef5460747 (diff)
delete unused shaders
Diffstat (limited to 'render/fx_renderer')
-rw-r--r--render/fx_renderer/fx_pass.c3
-rw-r--r--render/fx_renderer/fx_renderer.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/render/fx_renderer/fx_pass.c b/render/fx_renderer/fx_pass.c
index 42e0fc7..5e6f25b 100644
--- a/render/fx_renderer/fx_pass.c
+++ b/render/fx_renderer/fx_pass.c
@@ -374,6 +374,7 @@ void fx_render_pass_add_rect_grad(struct fx_gles_render_pass *pass,
struct fx_renderer *renderer = pass->buffer->renderer;
if(renderer->shaders.quad_grad.max_len <= fx_options->gradient.count){
+ glDeleteProgram(renderer->shaders.quad_grad.program);
if(!link_quad_grad_program(&renderer->shaders.quad_grad, fx_options->gradient.count + 1)){
wlr_log(WLR_ERROR, "Could not link quad shader after updating max_len to %d. Aborting renderer", fx_options->gradient.count + 1);
abort();
@@ -487,6 +488,7 @@ void fx_render_pass_add_rounded_rect_grad(struct fx_gles_render_pass *pass,
}
if(shader->max_len <= fx_options->gradient.count){
+ glDeleteProgram(shader->program);
if(!link_quad_grad_round_program(shader, corner, fx_options->gradient.count + 1)){
wlr_log(WLR_ERROR, "Could not link quad shader after updating max_len to %d. Aborting renderer", fx_options->gradient.count + 1);
abort();
@@ -562,6 +564,7 @@ void fx_render_pass_add_rounded_grad_border_corner(struct fx_gles_render_pass *p
struct fx_renderer *renderer = pass->buffer->renderer;
if(renderer->shaders.rounded_grad_border_corner.max_len <= fx_options->gradient.count){
+ glDeleteProgram(renderer->shaders.rounded_grad_border_corner.program);
if(!link_rounded_grad_border_corner_program(&renderer->shaders.rounded_grad_border_corner, fx_options->gradient.count + 1)){
wlr_log(WLR_ERROR, "Could not link quad shader after updating max_len to %d. Aborting renderer", fx_options->gradient.count + 1);
abort();
diff --git a/render/fx_renderer/fx_renderer.c b/render/fx_renderer/fx_renderer.c
index 9c22868..3ffc2cd 100644
--- a/render/fx_renderer/fx_renderer.c
+++ b/render/fx_renderer/fx_renderer.c
@@ -651,7 +651,7 @@ static bool link_shaders(struct fx_renderer *renderer) {
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)) {
+ if (!link_quad_grad_round_program(&renderer->shaders.quad_grad_round_tl, SHADER_SOURCE_QUAD_ROUND_TOP_LEFT, 16)) {
wlr_log(WLR_ERROR, "Could not link quad shader");
goto error;
}
@@ -718,7 +718,7 @@ static bool link_shaders(struct fx_renderer *renderer) {
}
// border corner shader with gradients
- if (!link_rounded_grad_border_corner_program(&renderer->shaders.rounded_grad_border_corner, 2)) {
+ if (!link_rounded_grad_border_corner_program(&renderer->shaders.rounded_grad_border_corner, 16)) {
wlr_log(WLR_ERROR, "Could not link quad shader");
goto error;
}