theme-node-transition: Receive a CoglFramebuffer
This is in preparation for a future where only explicit frambuffer APIs are available, i.e., cogl_get_draw_framebuffer() does not exist. There is absolutely no functional changes in this patch (nor the following ones in this series), only rearrangements so that various functions receive a CoglFramebuffer instead of using the draw framebuffer. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/283
This commit is contained in:
parent
412003efbf
commit
a2f27a9409
@ -337,11 +337,11 @@ setup_framebuffers (StThemeNodeTransition *transition,
|
|||||||
|
|
||||||
void
|
void
|
||||||
st_theme_node_transition_paint (StThemeNodeTransition *transition,
|
st_theme_node_transition_paint (StThemeNodeTransition *transition,
|
||||||
|
CoglFramebuffer *framebuffer,
|
||||||
ClutterActorBox *allocation,
|
ClutterActorBox *allocation,
|
||||||
guint8 paint_opacity)
|
guint8 paint_opacity)
|
||||||
{
|
{
|
||||||
StThemeNodeTransitionPrivate *priv = transition->priv;
|
StThemeNodeTransitionPrivate *priv = transition->priv;
|
||||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
|
||||||
|
|
||||||
CoglColor constant;
|
CoglColor constant;
|
||||||
float tex_coords[] = {
|
float tex_coords[] = {
|
||||||
@ -374,7 +374,8 @@ st_theme_node_transition_paint (StThemeNodeTransition *transition,
|
|||||||
paint_opacity, paint_opacity,
|
paint_opacity, paint_opacity,
|
||||||
paint_opacity, paint_opacity);
|
paint_opacity, paint_opacity);
|
||||||
|
|
||||||
cogl_framebuffer_draw_multitextured_rectangle (fb, priv->material,
|
cogl_framebuffer_draw_multitextured_rectangle (framebuffer,
|
||||||
|
priv->material,
|
||||||
priv->offscreen_box.x1,
|
priv->offscreen_box.x1,
|
||||||
priv->offscreen_box.y1,
|
priv->offscreen_box.y1,
|
||||||
priv->offscreen_box.x2,
|
priv->offscreen_box.x2,
|
||||||
|
@ -41,6 +41,7 @@ void st_theme_node_transition_update (StThemeNodeTransition *transition,
|
|||||||
StThemeNode *new_node);
|
StThemeNode *new_node);
|
||||||
|
|
||||||
void st_theme_node_transition_paint (StThemeNodeTransition *transition,
|
void st_theme_node_transition_paint (StThemeNodeTransition *transition,
|
||||||
|
CoglFramebuffer *framebuffer,
|
||||||
ClutterActorBox *allocation,
|
ClutterActorBox *allocation,
|
||||||
guint8 paint_opacity);
|
guint8 paint_opacity);
|
||||||
|
|
||||||
|
@ -414,10 +414,12 @@ void
|
|||||||
st_widget_paint_background (StWidget *widget)
|
st_widget_paint_background (StWidget *widget)
|
||||||
{
|
{
|
||||||
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
|
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
|
||||||
|
CoglFramebuffer *framebuffer;
|
||||||
StThemeNode *theme_node;
|
StThemeNode *theme_node;
|
||||||
ClutterActorBox allocation;
|
ClutterActorBox allocation;
|
||||||
guint8 opacity;
|
guint8 opacity;
|
||||||
|
|
||||||
|
framebuffer = cogl_get_draw_framebuffer ();
|
||||||
theme_node = st_widget_get_theme_node (widget);
|
theme_node = st_widget_get_theme_node (widget);
|
||||||
|
|
||||||
clutter_actor_get_allocation_box (CLUTTER_ACTOR (widget), &allocation);
|
clutter_actor_get_allocation_box (CLUTTER_ACTOR (widget), &allocation);
|
||||||
@ -426,12 +428,13 @@ st_widget_paint_background (StWidget *widget)
|
|||||||
|
|
||||||
if (priv->transition_animation)
|
if (priv->transition_animation)
|
||||||
st_theme_node_transition_paint (priv->transition_animation,
|
st_theme_node_transition_paint (priv->transition_animation,
|
||||||
|
framebuffer,
|
||||||
&allocation,
|
&allocation,
|
||||||
opacity);
|
opacity);
|
||||||
else
|
else
|
||||||
st_theme_node_paint (theme_node,
|
st_theme_node_paint (theme_node,
|
||||||
current_paint_state (widget),
|
current_paint_state (widget),
|
||||||
cogl_get_draw_framebuffer (),
|
framebuffer,
|
||||||
&allocation,
|
&allocation,
|
||||||
opacity);
|
opacity);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user