mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 05:31:07 +00:00
gsk: Switch box shadow nodes to use offsets
Instead of float dx; float dy; have a graphene_point_t offset; in the object and in all APIs relating to them.
This commit is contained in:
parent
2ee16e5dd9
commit
d6322c6389
@ -2293,8 +2293,7 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
self->opacity,
|
self->opacity,
|
||||||
&self->offset,
|
&self->offset,
|
||||||
gsk_inset_shadow_node_get_outline (node),
|
gsk_inset_shadow_node_get_outline (node),
|
||||||
&GRAPHENE_POINT_INIT (gsk_inset_shadow_node_get_dx (node),
|
gsk_inset_shadow_node_get_offset (node),
|
||||||
gsk_inset_shadow_node_get_dy (node)),
|
|
||||||
(float[4]) { spread, spread, spread, spread },
|
(float[4]) { spread, spread, spread, spread },
|
||||||
colors);
|
colors);
|
||||||
|
|
||||||
@ -2311,8 +2310,7 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
TRUE,
|
TRUE,
|
||||||
&node->bounds,
|
&node->bounds,
|
||||||
gsk_inset_shadow_node_get_outline (node),
|
gsk_inset_shadow_node_get_outline (node),
|
||||||
&GRAPHENE_POINT_INIT (gsk_inset_shadow_node_get_dx (node),
|
gsk_inset_shadow_node_get_offset (node),
|
||||||
gsk_inset_shadow_node_get_dy (node)),
|
|
||||||
spread,
|
spread,
|
||||||
blur_radius,
|
blur_radius,
|
||||||
color);
|
color);
|
||||||
@ -2323,14 +2321,14 @@ static void
|
|||||||
gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
|
gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
|
||||||
GskRenderNode *node)
|
GskRenderNode *node)
|
||||||
{
|
{
|
||||||
float spread, blur_radius, dx, dy;
|
float spread, blur_radius;
|
||||||
const GdkColor *color;
|
const GdkColor *color;
|
||||||
|
const graphene_point_t *offset;
|
||||||
|
|
||||||
color = gsk_outset_shadow_node_get_color2 (node);
|
color = gsk_outset_shadow_node_get_color2 (node);
|
||||||
spread = gsk_outset_shadow_node_get_spread (node);
|
spread = gsk_outset_shadow_node_get_spread (node);
|
||||||
blur_radius = gsk_outset_shadow_node_get_blur_radius (node);
|
blur_radius = gsk_outset_shadow_node_get_blur_radius (node);
|
||||||
dx = gsk_outset_shadow_node_get_dx (node);
|
offset = gsk_outset_shadow_node_get_offset (node);
|
||||||
dy = gsk_outset_shadow_node_get_dy (node);
|
|
||||||
|
|
||||||
if (blur_radius < 0.01)
|
if (blur_radius < 0.01)
|
||||||
{
|
{
|
||||||
@ -2339,7 +2337,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
|
|
||||||
gsk_rounded_rect_init_copy (&outline, gsk_outset_shadow_node_get_outline (node));
|
gsk_rounded_rect_init_copy (&outline, gsk_outset_shadow_node_get_outline (node));
|
||||||
gsk_rounded_rect_shrink (&outline, -spread, -spread, -spread, -spread);
|
gsk_rounded_rect_shrink (&outline, -spread, -spread, -spread, -spread);
|
||||||
graphene_rect_offset (&outline.bounds, dx, dy);
|
graphene_rect_offset (&outline.bounds, offset->x, offset->y);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
gdk_color_init_copy (&colors[i], color);
|
gdk_color_init_copy (&colors[i], color);
|
||||||
@ -2350,7 +2348,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
self->opacity,
|
self->opacity,
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&outline,
|
&outline,
|
||||||
&GRAPHENE_POINT_INIT (-dx, -dy),
|
&GRAPHENE_POINT_INIT (- offset->x, - offset->y),
|
||||||
(float[4]) { spread, spread, spread, spread },
|
(float[4]) { spread, spread, spread, spread },
|
||||||
colors);
|
colors);
|
||||||
|
|
||||||
@ -2367,7 +2365,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
FALSE,
|
FALSE,
|
||||||
&node->bounds,
|
&node->bounds,
|
||||||
gsk_outset_shadow_node_get_outline (node),
|
gsk_outset_shadow_node_get_outline (node),
|
||||||
&GRAPHENE_POINT_INIT (dx, dy),
|
offset,
|
||||||
spread,
|
spread,
|
||||||
blur_radius,
|
blur_radius,
|
||||||
color);
|
color);
|
||||||
|
@ -2324,8 +2324,7 @@ struct _GskInsetShadowNode
|
|||||||
|
|
||||||
GskRoundedRect outline;
|
GskRoundedRect outline;
|
||||||
GdkColor color;
|
GdkColor color;
|
||||||
float dx;
|
graphene_point_t offset;
|
||||||
float dy;
|
|
||||||
float spread;
|
float spread;
|
||||||
float blur_radius;
|
float blur_radius;
|
||||||
};
|
};
|
||||||
@ -2650,7 +2649,7 @@ gsk_inset_shadow_node_draw (GskRenderNode *node,
|
|||||||
cairo_clip (cr);
|
cairo_clip (cr);
|
||||||
|
|
||||||
gsk_rounded_rect_init_copy (&box, &self->outline);
|
gsk_rounded_rect_init_copy (&box, &self->outline);
|
||||||
gsk_rounded_rect_offset (&box, self->dx, self->dy);
|
gsk_rounded_rect_offset (&box, self->offset.x, self->offset.y);
|
||||||
gsk_rounded_rect_shrink (&box, self->spread, self->spread, self->spread, self->spread);
|
gsk_rounded_rect_shrink (&box, self->spread, self->spread, self->spread, self->spread);
|
||||||
|
|
||||||
gsk_rounded_rect_init_copy (&clip_box, &self->outline);
|
gsk_rounded_rect_init_copy (&clip_box, &self->outline);
|
||||||
@ -2732,8 +2731,7 @@ gsk_inset_shadow_node_diff (GskRenderNode *node1,
|
|||||||
|
|
||||||
if (gsk_rounded_rect_equal (&self1->outline, &self2->outline) &&
|
if (gsk_rounded_rect_equal (&self1->outline, &self2->outline) &&
|
||||||
gdk_color_equal (&self1->color, &self2->color) &&
|
gdk_color_equal (&self1->color, &self2->color) &&
|
||||||
self1->dx == self2->dx &&
|
graphene_point_equal (&self1->offset, &self2->offset) &&
|
||||||
self1->dy == self2->dy &&
|
|
||||||
self1->spread == self2->spread &&
|
self1->spread == self2->spread &&
|
||||||
self1->blur_radius == self2->blur_radius)
|
self1->blur_radius == self2->blur_radius)
|
||||||
return;
|
return;
|
||||||
@ -2782,7 +2780,7 @@ gsk_inset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
gdk_color_init_from_rgba (&color2, color);
|
gdk_color_init_from_rgba (&color2, color);
|
||||||
node = gsk_inset_shadow_node_new2 (outline,
|
node = gsk_inset_shadow_node_new2 (outline,
|
||||||
&color2,
|
&color2,
|
||||||
dx, dy,
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
spread, blur_radius);
|
spread, blur_radius);
|
||||||
gdk_color_finish (&color2);
|
gdk_color_finish (&color2);
|
||||||
|
|
||||||
@ -2793,8 +2791,7 @@ gsk_inset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
* gsk_inset_shadow_node_new2:
|
* gsk_inset_shadow_node_new2:
|
||||||
* @outline: outline of the region containing the shadow
|
* @outline: outline of the region containing the shadow
|
||||||
* @color: color of the shadow
|
* @color: color of the shadow
|
||||||
* @dx: horizontal offset of shadow
|
* @offset: offset of shadow
|
||||||
* @dy: vertical offset of shadow
|
|
||||||
* @spread: how far the shadow spreads towards the inside
|
* @spread: how far the shadow spreads towards the inside
|
||||||
* @blur_radius: how much blur to apply to the shadow
|
* @blur_radius: how much blur to apply to the shadow
|
||||||
*
|
*
|
||||||
@ -2804,18 +2801,18 @@ gsk_inset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
* Returns: (transfer full) (type GskInsetShadowNode): A new `GskRenderNode`
|
* Returns: (transfer full) (type GskInsetShadowNode): A new `GskRenderNode`
|
||||||
*/
|
*/
|
||||||
GskRenderNode *
|
GskRenderNode *
|
||||||
gsk_inset_shadow_node_new2 (const GskRoundedRect *outline,
|
gsk_inset_shadow_node_new2 (const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius)
|
||||||
float blur_radius)
|
|
||||||
{
|
{
|
||||||
GskInsetShadowNode *self;
|
GskInsetShadowNode *self;
|
||||||
GskRenderNode *node;
|
GskRenderNode *node;
|
||||||
|
|
||||||
g_return_val_if_fail (outline != NULL, NULL);
|
g_return_val_if_fail (outline != NULL, NULL);
|
||||||
g_return_val_if_fail (color != NULL, NULL);
|
g_return_val_if_fail (color != NULL, NULL);
|
||||||
|
g_return_val_if_fail (offset != NULL, NULL);
|
||||||
g_return_val_if_fail (blur_radius >= 0, NULL);
|
g_return_val_if_fail (blur_radius >= 0, NULL);
|
||||||
|
|
||||||
self = gsk_render_node_alloc (GSK_INSET_SHADOW_NODE);
|
self = gsk_render_node_alloc (GSK_INSET_SHADOW_NODE);
|
||||||
@ -2825,8 +2822,7 @@ gsk_inset_shadow_node_new2 (const GskRoundedRect *outline,
|
|||||||
|
|
||||||
gsk_rounded_rect_init_copy (&self->outline, outline);
|
gsk_rounded_rect_init_copy (&self->outline, outline);
|
||||||
gdk_color_init_copy (&self->color, color);
|
gdk_color_init_copy (&self->color, color);
|
||||||
self->dx = dx;
|
self->offset = *offset;
|
||||||
self->dy = dy;
|
|
||||||
self->spread = spread;
|
self->spread = spread;
|
||||||
self->blur_radius = blur_radius;
|
self->blur_radius = blur_radius;
|
||||||
|
|
||||||
@ -2900,7 +2896,7 @@ gsk_inset_shadow_node_get_dx (const GskRenderNode *node)
|
|||||||
{
|
{
|
||||||
const GskInsetShadowNode *self = (const GskInsetShadowNode *) node;
|
const GskInsetShadowNode *self = (const GskInsetShadowNode *) node;
|
||||||
|
|
||||||
return self->dx;
|
return self->offset.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2916,7 +2912,23 @@ gsk_inset_shadow_node_get_dy (const GskRenderNode *node)
|
|||||||
{
|
{
|
||||||
const GskInsetShadowNode *self = (const GskInsetShadowNode *) node;
|
const GskInsetShadowNode *self = (const GskInsetShadowNode *) node;
|
||||||
|
|
||||||
return self->dy;
|
return self->offset.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gsk_inset_shadow_node_get_offset:
|
||||||
|
* @node: (type GskInsetShadowNode): a `GskRenderNode` for an inset shadow
|
||||||
|
*
|
||||||
|
* Retrieves the offset of the inset shadow.
|
||||||
|
*
|
||||||
|
* Returns: an offset, in pixels
|
||||||
|
**/
|
||||||
|
const graphene_point_t *
|
||||||
|
gsk_inset_shadow_node_get_offset (const GskRenderNode *node)
|
||||||
|
{
|
||||||
|
const GskInsetShadowNode *self = (const GskInsetShadowNode *) node;
|
||||||
|
|
||||||
|
return &self->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2965,8 +2977,7 @@ struct _GskOutsetShadowNode
|
|||||||
|
|
||||||
GskRoundedRect outline;
|
GskRoundedRect outline;
|
||||||
GdkColor color;
|
GdkColor color;
|
||||||
float dx;
|
graphene_point_t offset;
|
||||||
float dy;
|
|
||||||
float spread;
|
float spread;
|
||||||
float blur_radius;
|
float blur_radius;
|
||||||
};
|
};
|
||||||
@ -2992,10 +3003,10 @@ gsk_outset_shadow_get_extents (GskOutsetShadowNode *self,
|
|||||||
float clip_radius;
|
float clip_radius;
|
||||||
|
|
||||||
clip_radius = gsk_cairo_blur_compute_pixels (ceil (self->blur_radius / 2.0));
|
clip_radius = gsk_cairo_blur_compute_pixels (ceil (self->blur_radius / 2.0));
|
||||||
*top = MAX (0, ceil (clip_radius + self->spread - self->dy));
|
*top = MAX (0, ceil (clip_radius + self->spread - self->offset.y));
|
||||||
*right = MAX (0, ceil (clip_radius + self->spread + self->dx));
|
*right = MAX (0, ceil (clip_radius + self->spread + self->offset.x));
|
||||||
*bottom = MAX (0, ceil (clip_radius + self->spread + self->dy));
|
*bottom = MAX (0, ceil (clip_radius + self->spread + self->offset.y));
|
||||||
*left = MAX (0, ceil (clip_radius + self->spread - self->dx));
|
*left = MAX (0, ceil (clip_radius + self->spread - self->offset.x));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -3035,7 +3046,7 @@ gsk_outset_shadow_node_draw (GskRenderNode *node,
|
|||||||
cairo_clip (cr);
|
cairo_clip (cr);
|
||||||
|
|
||||||
gsk_rounded_rect_init_copy (&box, &self->outline);
|
gsk_rounded_rect_init_copy (&box, &self->outline);
|
||||||
gsk_rounded_rect_offset (&box, self->dx, self->dy);
|
gsk_rounded_rect_offset (&box, self->offset.x, self->offset.y);
|
||||||
gsk_rounded_rect_shrink (&box, -self->spread, -self->spread, -self->spread, -self->spread);
|
gsk_rounded_rect_shrink (&box, -self->spread, -self->spread, -self->spread, -self->spread);
|
||||||
|
|
||||||
if (!needs_blur (blur_radius))
|
if (!needs_blur (blur_radius))
|
||||||
@ -3116,8 +3127,7 @@ gsk_outset_shadow_node_diff (GskRenderNode *node1,
|
|||||||
|
|
||||||
if (gsk_rounded_rect_equal (&self1->outline, &self2->outline) &&
|
if (gsk_rounded_rect_equal (&self1->outline, &self2->outline) &&
|
||||||
gdk_color_equal (&self1->color, &self2->color) &&
|
gdk_color_equal (&self1->color, &self2->color) &&
|
||||||
self1->dx == self2->dx &&
|
graphene_point_equal (&self1->offset, &self2->offset) &&
|
||||||
self1->dy == self2->dy &&
|
|
||||||
self1->spread == self2->spread &&
|
self1->spread == self2->spread &&
|
||||||
self1->blur_radius == self2->blur_radius)
|
self1->blur_radius == self2->blur_radius)
|
||||||
return;
|
return;
|
||||||
@ -3166,7 +3176,8 @@ gsk_outset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
gdk_color_init_from_rgba (&color2, color);
|
gdk_color_init_from_rgba (&color2, color);
|
||||||
node = gsk_outset_shadow_node_new2 (outline,
|
node = gsk_outset_shadow_node_new2 (outline,
|
||||||
&color2,
|
&color2,
|
||||||
dx, dy, spread, blur_radius);
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
|
spread, blur_radius);
|
||||||
gdk_color_finish (&color2);
|
gdk_color_finish (&color2);
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
@ -3176,8 +3187,7 @@ gsk_outset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
* gsk_outset_shadow_node_new2:
|
* gsk_outset_shadow_node_new2:
|
||||||
* @outline: outline of the region surrounded by shadow
|
* @outline: outline of the region surrounded by shadow
|
||||||
* @color: color of the shadow
|
* @color: color of the shadow
|
||||||
* @dx: horizontal offset of shadow
|
* @offset: offset of shadow
|
||||||
* @dy: vertical offset of shadow
|
|
||||||
* @spread: how far the shadow spreads towards the inside
|
* @spread: how far the shadow spreads towards the inside
|
||||||
* @blur_radius: how much blur to apply to the shadow
|
* @blur_radius: how much blur to apply to the shadow
|
||||||
*
|
*
|
||||||
@ -3187,12 +3197,11 @@ gsk_outset_shadow_node_new (const GskRoundedRect *outline,
|
|||||||
* Returns: (transfer full) (type GskOutsetShadowNode): A new `GskRenderNode`
|
* Returns: (transfer full) (type GskOutsetShadowNode): A new `GskRenderNode`
|
||||||
*/
|
*/
|
||||||
GskRenderNode *
|
GskRenderNode *
|
||||||
gsk_outset_shadow_node_new2 (const GskRoundedRect *outline,
|
gsk_outset_shadow_node_new2 (const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius)
|
||||||
float blur_radius)
|
|
||||||
{
|
{
|
||||||
GskOutsetShadowNode *self;
|
GskOutsetShadowNode *self;
|
||||||
GskRenderNode *node;
|
GskRenderNode *node;
|
||||||
@ -3209,8 +3218,7 @@ gsk_outset_shadow_node_new2 (const GskRoundedRect *outline,
|
|||||||
|
|
||||||
gsk_rounded_rect_init_copy (&self->outline, outline);
|
gsk_rounded_rect_init_copy (&self->outline, outline);
|
||||||
gdk_color_init_copy (&self->color, color);
|
gdk_color_init_copy (&self->color, color);
|
||||||
self->dx = dx;
|
self->offset = *offset;
|
||||||
self->dy = dy;
|
|
||||||
self->spread = spread;
|
self->spread = spread;
|
||||||
self->blur_radius = blur_radius;
|
self->blur_radius = blur_radius;
|
||||||
|
|
||||||
@ -3290,7 +3298,7 @@ gsk_outset_shadow_node_get_dx (const GskRenderNode *node)
|
|||||||
{
|
{
|
||||||
const GskOutsetShadowNode *self = (const GskOutsetShadowNode *) node;
|
const GskOutsetShadowNode *self = (const GskOutsetShadowNode *) node;
|
||||||
|
|
||||||
return self->dx;
|
return self->offset.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3306,7 +3314,23 @@ gsk_outset_shadow_node_get_dy (const GskRenderNode *node)
|
|||||||
{
|
{
|
||||||
const GskOutsetShadowNode *self = (const GskOutsetShadowNode *) node;
|
const GskOutsetShadowNode *self = (const GskOutsetShadowNode *) node;
|
||||||
|
|
||||||
return self->dy;
|
return self->offset.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gsk_outset_shadow_node_get_offset:
|
||||||
|
* @node: (type GskOutsetShadowNode): a `GskRenderNode` for an outset shadow
|
||||||
|
*
|
||||||
|
* Retrieves the offset of the outset shadow.
|
||||||
|
*
|
||||||
|
* Returns: an offset, in pixels
|
||||||
|
**/
|
||||||
|
const graphene_point_t *
|
||||||
|
gsk_outset_shadow_node_get_offset (const GskRenderNode *node)
|
||||||
|
{
|
||||||
|
const GskOutsetShadowNode *self = (const GskOutsetShadowNode *) node;
|
||||||
|
|
||||||
|
return &self->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1892,7 +1892,7 @@ parse_inset_shadow_node (GtkCssParser *parser,
|
|||||||
|
|
||||||
parse_declarations (parser, context, declarations, G_N_ELEMENTS (declarations));
|
parse_declarations (parser, context, declarations, G_N_ELEMENTS (declarations));
|
||||||
|
|
||||||
node = gsk_inset_shadow_node_new2 (&outline, &color, dx, dy, spread, blur);
|
node = gsk_inset_shadow_node_new2 (&outline, &color, &GRAPHENE_POINT_INIT (dx, dy), spread, blur);
|
||||||
|
|
||||||
gdk_color_finish (&color);
|
gdk_color_finish (&color);
|
||||||
|
|
||||||
@ -2306,7 +2306,7 @@ parse_outset_shadow_node (GtkCssParser *parser,
|
|||||||
|
|
||||||
parse_declarations (parser, context, declarations, G_N_ELEMENTS (declarations));
|
parse_declarations (parser, context, declarations, G_N_ELEMENTS (declarations));
|
||||||
|
|
||||||
node = gsk_outset_shadow_node_new2 (&outline, &color, dx, dy, spread, blur);
|
node = gsk_outset_shadow_node_new2 (&outline, &color, &GRAPHENE_POINT_INIT (dx, dy), spread, blur);
|
||||||
|
|
||||||
gdk_color_finish (&color);
|
gdk_color_finish (&color);
|
||||||
|
|
||||||
|
@ -123,31 +123,31 @@ _gsk_render_node_ref (GskRenderNode *node)
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
GskRenderNode * gsk_color_node_new2 (const GdkColor *color,
|
GskRenderNode * gsk_color_node_new2 (const GdkColor *color,
|
||||||
const graphene_rect_t *bounds);
|
const graphene_rect_t *bounds);
|
||||||
|
|
||||||
const GdkColor* gsk_color_node_get_color2 (const GskRenderNode *node);
|
const GdkColor * gsk_color_node_get_color2 (const GskRenderNode *node);
|
||||||
|
|
||||||
GskRenderNode * gsk_border_node_new2 (const GskRoundedRect *outline,
|
GskRenderNode * gsk_border_node_new2 (const GskRoundedRect *outline,
|
||||||
const float border_width[4],
|
const float border_width[4],
|
||||||
const GdkColor border_color[4]);
|
const GdkColor border_color[4]);
|
||||||
const GdkColor *gsk_border_node_get_colors2 (const GskRenderNode *node);
|
const GdkColor * gsk_border_node_get_colors2 (const GskRenderNode *node);
|
||||||
|
|
||||||
GskRenderNode * gsk_inset_shadow_node_new2 (const GskRoundedRect *outline,
|
GskRenderNode * gsk_inset_shadow_node_new2 (const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius);
|
||||||
float blur_radius);
|
const GdkColor * gsk_inset_shadow_node_get_color2 (const GskRenderNode *node);
|
||||||
const GdkColor *gsk_inset_shadow_node_get_color2 (const GskRenderNode *node);
|
const graphene_point_t *gsk_inset_shadow_node_get_offset (const GskRenderNode *node);
|
||||||
|
|
||||||
GskRenderNode * gsk_outset_shadow_node_new2 (const GskRoundedRect *outline,
|
GskRenderNode * gsk_outset_shadow_node_new2 (const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius);
|
||||||
float blur_radius);
|
const GdkColor * gsk_outset_shadow_node_get_color2 (const GskRenderNode *node);
|
||||||
const GdkColor *gsk_outset_shadow_node_get_color2 (const GskRenderNode *node);
|
const graphene_point_t *gsk_outset_shadow_node_get_offset (const GskRenderNode *node);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -623,7 +623,8 @@ gtk_css_shadow_value_snapshot_outset (const GtkCssValue *value,
|
|||||||
|
|
||||||
gtk_snapshot_append_outset_shadow2 (snapshot, border_box,
|
gtk_snapshot_append_outset_shadow2 (snapshot, border_box,
|
||||||
&color,
|
&color,
|
||||||
dx, dy, spread, radius);
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
|
spread, radius);
|
||||||
gdk_color_finish (&color);
|
gdk_color_finish (&color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -719,7 +720,8 @@ gtk_css_shadow_value_snapshot_inset (const GtkCssValue *value,
|
|||||||
gtk_snapshot_append_inset_shadow2 (snapshot,
|
gtk_snapshot_append_inset_shadow2 (snapshot,
|
||||||
padding_box,
|
padding_box,
|
||||||
&color,
|
&color,
|
||||||
dx, dy, spread, radius);
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
|
spread, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
gdk_color_finish (&color);
|
gdk_color_finish (&color);
|
||||||
|
@ -2887,7 +2887,8 @@ gtk_snapshot_append_inset_shadow (GtkSnapshot *snapshot,
|
|||||||
gtk_snapshot_append_inset_shadow2 (snapshot,
|
gtk_snapshot_append_inset_shadow2 (snapshot,
|
||||||
outline,
|
outline,
|
||||||
&color2,
|
&color2,
|
||||||
dx, dy, spread, blur_radius);
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
|
spread, blur_radius);
|
||||||
gdk_color_finish (&color2);
|
gdk_color_finish (&color2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2896,21 +2897,19 @@ gtk_snapshot_append_inset_shadow (GtkSnapshot *snapshot,
|
|||||||
* @snapshot: a `GtkSnapshot`
|
* @snapshot: a `GtkSnapshot`
|
||||||
* @outline: outline of the region surrounded by shadow
|
* @outline: outline of the region surrounded by shadow
|
||||||
* @color: color of the shadow
|
* @color: color of the shadow
|
||||||
* @dx: horizontal offset of shadow
|
* @offset: offset of shadow
|
||||||
* @dy: vertical offset of shadow
|
|
||||||
* @spread: how far the shadow spreads towards the inside
|
* @spread: how far the shadow spreads towards the inside
|
||||||
* @blur_radius: how much blur to apply to the shadow
|
* @blur_radius: how much blur to apply to the shadow
|
||||||
*
|
*
|
||||||
* Appends an inset shadow into the box given by @outline.
|
* Appends an inset shadow into the box given by @outline.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gtk_snapshot_append_inset_shadow2 (GtkSnapshot *snapshot,
|
gtk_snapshot_append_inset_shadow2 (GtkSnapshot *snapshot,
|
||||||
const GskRoundedRect *outline,
|
const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius)
|
||||||
float blur_radius)
|
|
||||||
{
|
{
|
||||||
GskRenderNode *node;
|
GskRenderNode *node;
|
||||||
GskRoundedRect real_outline;
|
GskRoundedRect real_outline;
|
||||||
@ -2919,14 +2918,15 @@ gtk_snapshot_append_inset_shadow2 (GtkSnapshot *snapshot,
|
|||||||
g_return_if_fail (snapshot != NULL);
|
g_return_if_fail (snapshot != NULL);
|
||||||
g_return_if_fail (outline != NULL);
|
g_return_if_fail (outline != NULL);
|
||||||
g_return_if_fail (color != NULL);
|
g_return_if_fail (color != NULL);
|
||||||
|
g_return_if_fail (offset != NULL);
|
||||||
|
|
||||||
gtk_snapshot_ensure_affine (snapshot, &scale_x, &scale_y, &x, &y);
|
gtk_snapshot_ensure_affine (snapshot, &scale_x, &scale_y, &x, &y);
|
||||||
gsk_rounded_rect_scale_affine (&real_outline, outline, scale_x, scale_y, x, y);
|
gsk_rounded_rect_scale_affine (&real_outline, outline, scale_x, scale_y, x, y);
|
||||||
|
|
||||||
node = gsk_inset_shadow_node_new2 (&real_outline,
|
node = gsk_inset_shadow_node_new2 (&real_outline,
|
||||||
color,
|
color,
|
||||||
scale_x * dx,
|
&GRAPHENE_POINT_INIT (scale_x * offset->x,
|
||||||
scale_y * dy,
|
scale_y * offset->y),
|
||||||
spread,
|
spread,
|
||||||
blur_radius);
|
blur_radius);
|
||||||
|
|
||||||
@ -2960,7 +2960,8 @@ gtk_snapshot_append_outset_shadow (GtkSnapshot *snapshot,
|
|||||||
gtk_snapshot_append_outset_shadow2 (snapshot,
|
gtk_snapshot_append_outset_shadow2 (snapshot,
|
||||||
outline,
|
outline,
|
||||||
&color2,
|
&color2,
|
||||||
dx, dy, spread, blur_radius);
|
&GRAPHENE_POINT_INIT (dx, dy),
|
||||||
|
spread, blur_radius);
|
||||||
gdk_color_finish (&color2);
|
gdk_color_finish (&color2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2969,21 +2970,19 @@ gtk_snapshot_append_outset_shadow (GtkSnapshot *snapshot,
|
|||||||
* @snapshot: a `GtkSnapshot`
|
* @snapshot: a `GtkSnapshot`
|
||||||
* @outline: outline of the region surrounded by shadow
|
* @outline: outline of the region surrounded by shadow
|
||||||
* @color: color of the shadow
|
* @color: color of the shadow
|
||||||
* @dx: horizontal offset of shadow
|
* @offset: offset of shadow
|
||||||
* @dy: vertical offset of shadow
|
|
||||||
* @spread: how far the shadow spreads towards the outside
|
* @spread: how far the shadow spreads towards the outside
|
||||||
* @blur_radius: how much blur to apply to the shadow
|
* @blur_radius: how much blur to apply to the shadow
|
||||||
*
|
*
|
||||||
* Appends an outset shadow node around the box given by @outline.
|
* Appends an outset shadow node around the box given by @outline.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gtk_snapshot_append_outset_shadow2 (GtkSnapshot *snapshot,
|
gtk_snapshot_append_outset_shadow2 (GtkSnapshot *snapshot,
|
||||||
const GskRoundedRect *outline,
|
const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius)
|
||||||
float blur_radius)
|
|
||||||
{
|
{
|
||||||
GskRenderNode *node;
|
GskRenderNode *node;
|
||||||
GskRoundedRect real_outline;
|
GskRoundedRect real_outline;
|
||||||
@ -2992,14 +2991,15 @@ gtk_snapshot_append_outset_shadow2 (GtkSnapshot *snapshot,
|
|||||||
g_return_if_fail (snapshot != NULL);
|
g_return_if_fail (snapshot != NULL);
|
||||||
g_return_if_fail (outline != NULL);
|
g_return_if_fail (outline != NULL);
|
||||||
g_return_if_fail (color != NULL);
|
g_return_if_fail (color != NULL);
|
||||||
|
g_return_if_fail (offset != NULL);
|
||||||
|
|
||||||
gtk_snapshot_ensure_affine (snapshot, &scale_x, &scale_y, &x, &y);
|
gtk_snapshot_ensure_affine (snapshot, &scale_x, &scale_y, &x, &y);
|
||||||
gsk_rounded_rect_scale_affine (&real_outline, outline, scale_x, scale_y, x, y);
|
gsk_rounded_rect_scale_affine (&real_outline, outline, scale_x, scale_y, x, y);
|
||||||
|
|
||||||
node = gsk_outset_shadow_node_new2 (&real_outline,
|
node = gsk_outset_shadow_node_new2 (&real_outline,
|
||||||
color,
|
color,
|
||||||
scale_x * dx,
|
&GRAPHENE_POINT_INIT (scale_x * offset->x,
|
||||||
scale_y * dy,
|
scale_y * offset->y),
|
||||||
spread,
|
spread,
|
||||||
blur_radius);
|
blur_radius);
|
||||||
|
|
||||||
|
@ -45,21 +45,19 @@ void gtk_snapshot_append_border2 (GtkSnapshot
|
|||||||
const float border_width[4],
|
const float border_width[4],
|
||||||
const GdkColor border_color[4]);
|
const GdkColor border_color[4]);
|
||||||
|
|
||||||
void gtk_snapshot_append_inset_shadow2 (GtkSnapshot *snapshot,
|
void gtk_snapshot_append_inset_shadow2 (GtkSnapshot *snapshot,
|
||||||
const GskRoundedRect *outline,
|
const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius);
|
||||||
float blur_radius);
|
|
||||||
|
|
||||||
void gtk_snapshot_append_outset_shadow2 (GtkSnapshot *snapshot,
|
void gtk_snapshot_append_outset_shadow2 (GtkSnapshot *snapshot,
|
||||||
const GskRoundedRect *outline,
|
const GskRoundedRect *outline,
|
||||||
const GdkColor *color,
|
const GdkColor *color,
|
||||||
float dx,
|
const graphene_point_t *offset,
|
||||||
float dy,
|
float spread,
|
||||||
float spread,
|
float blur_radius);
|
||||||
float blur_radius);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -121,13 +121,12 @@ replay_inset_shadow_node (GskRenderNode *node, GtkSnapshot *snapshot)
|
|||||||
{
|
{
|
||||||
const GskRoundedRect *outline = gsk_inset_shadow_node_get_outline (node);
|
const GskRoundedRect *outline = gsk_inset_shadow_node_get_outline (node);
|
||||||
const GdkColor *color = gsk_inset_shadow_node_get_color2 (node);
|
const GdkColor *color = gsk_inset_shadow_node_get_color2 (node);
|
||||||
float dx = gsk_inset_shadow_node_get_dx (node);
|
const graphene_point_t *offset = gsk_inset_shadow_node_get_offset (node);
|
||||||
float dy = gsk_inset_shadow_node_get_dy (node);
|
|
||||||
float spread = gsk_inset_shadow_node_get_spread (node);
|
float spread = gsk_inset_shadow_node_get_spread (node);
|
||||||
float blur_radius = gsk_inset_shadow_node_get_blur_radius (node);
|
float blur_radius = gsk_inset_shadow_node_get_blur_radius (node);
|
||||||
|
|
||||||
gtk_snapshot_append_inset_shadow2 (snapshot, outline, color,
|
gtk_snapshot_append_inset_shadow2 (snapshot, outline, color,
|
||||||
dx, dy, spread, blur_radius);
|
offset, spread, blur_radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -135,13 +134,12 @@ replay_outset_shadow_node (GskRenderNode *node, GtkSnapshot *snapshot)
|
|||||||
{
|
{
|
||||||
const GskRoundedRect *outline = gsk_outset_shadow_node_get_outline (node);
|
const GskRoundedRect *outline = gsk_outset_shadow_node_get_outline (node);
|
||||||
const GdkColor *color = gsk_outset_shadow_node_get_color2 (node);
|
const GdkColor *color = gsk_outset_shadow_node_get_color2 (node);
|
||||||
float dx = gsk_outset_shadow_node_get_dx (node);
|
const graphene_point_t *offset = gsk_outset_shadow_node_get_offset (node);
|
||||||
float dy = gsk_outset_shadow_node_get_dy (node);
|
|
||||||
float spread = gsk_outset_shadow_node_get_spread (node);
|
float spread = gsk_outset_shadow_node_get_spread (node);
|
||||||
float blur_radius = gsk_outset_shadow_node_get_blur_radius (node);
|
float blur_radius = gsk_outset_shadow_node_get_blur_radius (node);
|
||||||
|
|
||||||
gtk_snapshot_append_outset_shadow2 (snapshot, outline, color,
|
gtk_snapshot_append_outset_shadow2 (snapshot, outline, color,
|
||||||
dx, dy, spread, blur_radius);
|
offset, spread, blur_radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user