gsk: Use private box shadow api

This commit is contained in:
Matthias Clasen
2024-08-04 08:21:07 -04:00
parent cdb61923af
commit d3b9eb7fc8

View File

@@ -2274,9 +2274,9 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
GskRenderNode *node)
{
float spread, blur_radius;
const GdkRGBA *rgba;
const GdkColor *color;
rgba = gsk_inset_shadow_node_get_color (node);
color = gsk_inset_shadow_node_get_color2 (node);
spread = gsk_inset_shadow_node_get_spread (node);
blur_radius = gsk_inset_shadow_node_get_blur_radius (node);
@@ -2285,7 +2285,7 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
GdkColor colors[4];
for (int i = 0; i < 4; i++)
gdk_color_init_from_rgba (&colors[i], rgba);
gdk_color_init_copy (&colors[i], color);
gsk_gpu_border_op (self->frame,
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
@@ -2298,14 +2298,11 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
(float[4]) { spread, spread, spread, spread },
colors);
for (int i = 0; i < 4; i++)
gdk_color_finish (&colors[i]);
for (int i = 0; i < 4; i++)
gdk_color_finish (&colors[i]);
}
else
{
GdkColor color;
gdk_color_init_from_rgba (&color, rgba);
gsk_gpu_box_shadow_op (self->frame,
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
self->ccs,
@@ -2318,8 +2315,7 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
gsk_inset_shadow_node_get_dy (node)),
spread,
blur_radius,
&color);
gdk_color_finish (&color);
color);
}
}
@@ -2328,9 +2324,9 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
GskRenderNode *node)
{
float spread, blur_radius, dx, dy;
const GdkRGBA *rgba;
const GdkColor *color;
rgba = gsk_outset_shadow_node_get_color (node);
color = gsk_outset_shadow_node_get_color2 (node);
spread = gsk_outset_shadow_node_get_spread (node);
blur_radius = gsk_outset_shadow_node_get_blur_radius (node);
dx = gsk_outset_shadow_node_get_dx (node);
@@ -2341,13 +2337,13 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
GskRoundedRect outline;
GdkColor colors[4];
for (int i = 0; i < 4; i++)
gdk_color_init_from_rgba (&colors[i], rgba);
gsk_rounded_rect_init_copy (&outline, gsk_outset_shadow_node_get_outline (node));
gsk_rounded_rect_shrink (&outline, -spread, -spread, -spread, -spread);
graphene_rect_offset (&outline.bounds, dx, dy);
for (int i = 0; i < 4; i++)
gdk_color_init_copy (&colors[i], color);
gsk_gpu_border_op (self->frame,
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
self->ccs,
@@ -2357,14 +2353,12 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
&GRAPHENE_POINT_INIT (-dx, -dy),
(float[4]) { spread, spread, spread, spread },
colors);
for (int i = 0; i < 4; i++)
gdk_color_finish (&colors[i]);
}
else
{
GdkColor color;
gdk_color_init_from_rgba (&color, rgba);
gsk_gpu_box_shadow_op (self->frame,
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
self->ccs,
@@ -2376,8 +2370,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
&GRAPHENE_POINT_INIT (dx, dy),
spread,
blur_radius,
&color);
gdk_color_finish (&color);
color);
}
}