st-private: Receive a CoglFramebuffer
Same case of the previous patch; _st_paint_shadow_with_opacity() uses cogl_get_draw_framebuffer(), and this patch makes it receive a CoglFramebuffer as a parameter instead. The cautious reader might notice that this commit apparently goes against the long-term goal, for it introduces more instances of cogl_get_draw_framebuffer(). This is not wrong, but these introduced ones will be removed later on, when ClutterActor.paint() receives a CoglFramebuffer as a parameter instead. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/283
This commit is contained in:
parent
a2f27a9409
commit
09addfc87c
@ -869,6 +869,7 @@ st_entry_paint (ClutterActor *actor)
|
||||
|
||||
if (priv->text_shadow_material != NULL)
|
||||
_st_paint_shadow_with_opacity (shadow_spec,
|
||||
cogl_get_draw_framebuffer (),
|
||||
priv->text_shadow_material,
|
||||
&allocation,
|
||||
clutter_actor_get_paint_opacity (priv->entry));
|
||||
|
@ -176,6 +176,7 @@ st_icon_paint (ClutterActor *actor)
|
||||
|
||||
clutter_actor_get_allocation_box (priv->icon_texture, &allocation);
|
||||
_st_paint_shadow_with_opacity (priv->shadow_spec,
|
||||
cogl_get_draw_framebuffer (),
|
||||
priv->shadow_pipeline,
|
||||
&allocation,
|
||||
clutter_actor_get_paint_opacity (priv->icon_texture));
|
||||
|
@ -216,6 +216,7 @@ st_label_paint (ClutterActor *actor)
|
||||
|
||||
if (priv->text_shadow_pipeline != NULL)
|
||||
_st_paint_shadow_with_opacity (shadow_spec,
|
||||
cogl_get_draw_framebuffer (),
|
||||
priv->text_shadow_pipeline,
|
||||
&allocation,
|
||||
clutter_actor_get_paint_opacity (priv->label));
|
||||
|
@ -658,11 +658,11 @@ _st_create_shadow_cairo_pattern (StShadow *shadow_spec,
|
||||
|
||||
void
|
||||
_st_paint_shadow_with_opacity (StShadow *shadow_spec,
|
||||
CoglFramebuffer *framebuffer,
|
||||
CoglPipeline *shadow_pipeline,
|
||||
ClutterActorBox *box,
|
||||
guint8 paint_opacity)
|
||||
{
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
ClutterActorBox shadow_box;
|
||||
CoglColor color;
|
||||
|
||||
@ -678,7 +678,8 @@ _st_paint_shadow_with_opacity (StShadow *shadow_spec,
|
||||
shadow_spec->color.alpha * paint_opacity / 255);
|
||||
cogl_color_premultiply (&color);
|
||||
cogl_pipeline_set_layer_combine_constant (shadow_pipeline, 0, &color);
|
||||
cogl_framebuffer_draw_rectangle (fb, shadow_pipeline,
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
shadow_pipeline,
|
||||
shadow_box.x1, shadow_box.y1,
|
||||
shadow_box.x2, shadow_box.y2);
|
||||
}
|
||||
|
@ -70,6 +70,7 @@ cairo_pattern_t *_st_create_shadow_cairo_pattern (StShadow *shadow_spec,
|
||||
cairo_pattern_t *src_pattern);
|
||||
|
||||
void _st_paint_shadow_with_opacity (StShadow *shadow_spec,
|
||||
CoglFramebuffer *framebuffer,
|
||||
CoglPipeline *shadow_pipeline,
|
||||
ClutterActorBox *box,
|
||||
guint8 paint_opacity);
|
||||
|
@ -288,6 +288,7 @@ st_shadow_helper_paint (StShadowHelper *helper,
|
||||
guint8 paint_opacity)
|
||||
{
|
||||
_st_paint_shadow_with_opacity (helper->shadow,
|
||||
cogl_get_draw_framebuffer (),
|
||||
helper->pipeline,
|
||||
actor_box,
|
||||
paint_opacity);
|
||||
|
@ -2564,6 +2564,7 @@ st_theme_node_paint (StThemeNode *node,
|
||||
if (state->alloc_width < node->box_shadow_min_width ||
|
||||
state->alloc_height < node->box_shadow_min_height)
|
||||
_st_paint_shadow_with_opacity (node->box_shadow,
|
||||
framebuffer,
|
||||
state->box_shadow_pipeline,
|
||||
&allocation,
|
||||
paint_opacity);
|
||||
@ -2637,6 +2638,7 @@ st_theme_node_paint (StThemeNode *node,
|
||||
*/
|
||||
if (node->background_shadow_pipeline != NULL)
|
||||
_st_paint_shadow_with_opacity (node->background_image_shadow,
|
||||
framebuffer,
|
||||
node->background_shadow_pipeline,
|
||||
&background_box,
|
||||
paint_opacity);
|
||||
|
Loading…
Reference in New Issue
Block a user