From 2977e91aed49ff5f14603e3659d847a74130a089 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 11 Oct 2019 10:16:39 +0200 Subject: [PATCH] gl renderer: Grow unblurred outset shadow outline on the gpu --- gsk/gl/gskglrenderer.c | 2 -- gsk/resources/glsl/unblurred_outset_shadow.fs.glsl | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index 64c9a116f6..137f64d3ea 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -1391,8 +1391,6 @@ render_unblurred_outset_shadow_node (GskGLRenderer *self, GskRoundedRect r = *gsk_outset_shadow_node_peek_outline (node); RenderOp *op; - gsk_rounded_rect_shrink (&r, -spread, -spread, -spread, -spread); - ops_set_program (builder, &self->unblurred_outset_shadow_program); op = ops_begin (builder, OP_CHANGE_UNBLURRED_OUTSET_SHADOW); rgba_to_float (gsk_outset_shadow_node_peek_color (node), op->unblurred_outset_shadow.color); diff --git a/gsk/resources/glsl/unblurred_outset_shadow.fs.glsl b/gsk/resources/glsl/unblurred_outset_shadow.fs.glsl index 1ae48ecb49..f859123d52 100644 --- a/gsk/resources/glsl/unblurred_outset_shadow.fs.glsl +++ b/gsk/resources/glsl/unblurred_outset_shadow.fs.glsl @@ -12,9 +12,10 @@ void main() { f.x += u_viewport.x; f.y = (u_viewport.y + u_viewport.w) - f.y; - RoundedRect outline = RoundedRect(vec4(u_outline.xy, u_outline.xy + u_outline.zw), + RoundedRect inside = RoundedRect(vec4(u_outline.xy, u_outline.xy + u_outline.zw), u_corner_widths, u_corner_heights); - RoundedRect inside = rounded_rect_shrink(outline, vec4(u_spread)); + + RoundedRect outline = rounded_rect_shrink(inside, vec4(- u_spread)); vec2 offset = vec2(u_offset.x, - u_offset.y); vec4 color = vec4(u_color.rgb * u_color.a, u_color.a); -- 2.30.2