[gnome-shell] st: Fix a bunch of cogl deprecations
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] st: Fix a bunch of cogl deprecations
- Date: Thu, 15 Oct 2015 21:11:43 +0000 (UTC)
commit 882f5fa79e8fd5ef3535a0b190a5ebe04f332286
Author: Florian Müllner <fmuellner gnome org>
Date: Sat Sep 26 04:20:22 2015 +0200
st: Fix a bunch of cogl deprecations
src/st/st-theme-node-drawing.c | 98 +++++++++++++++++++++----------------
src/st/st-theme-node-private.h | 10 ++--
src/st/st-theme-node-transition.c | 65 ++++++++++++++-----------
src/st/st-theme-node.h | 6 +-
4 files changed, 100 insertions(+), 79 deletions(-)
---
diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
index 75fc53f..1deacd7 100644
--- a/src/st/st-theme-node-drawing.c
+++ b/src/st/st-theme-node-drawing.c
@@ -1376,7 +1376,8 @@ st_theme_node_load_background_image (StThemeNode *node)
node->background_material = _st_create_texture_pipeline (node->background_texture);
if (node->background_repeat)
- cogl_material_set_layer_wrap_mode (node->background_material, 0, COGL_MATERIAL_WRAP_MODE_REPEAT);
+ cogl_pipeline_set_layer_wrap_mode (node->background_material, 0,
+ COGL_PIPELINE_WRAP_MODE_REPEAT);
if (background_image_shadow_spec)
{
@@ -1578,16 +1579,18 @@ paint_material_with_opacity (CoglHandle material,
ClutterActorBox *coords,
guint8 paint_opacity)
{
- cogl_material_set_color4ub (material,
- paint_opacity, paint_opacity, paint_opacity, paint_opacity);
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
- cogl_set_source (material);
+ cogl_pipeline_set_color4ub (material,
+ paint_opacity, paint_opacity, paint_opacity, paint_opacity);
if (coords)
- cogl_rectangle_with_texture_coords (box->x1, box->y1, box->x2, box->y2,
- coords->x1, coords->y1, coords->x2, coords->y2);
+ cogl_framebuffer_draw_textured_rectangle (fb, material,
+ box->x1, box->y1, box->x2, box->y2,
+ coords->x1, coords->y1, coords->x2, coords->y2);
else
- cogl_rectangle (box->x1, box->y1, box->x2, box->y2);
+ cogl_framebuffer_draw_rectangle (fb, material,
+ box->x1, box->y1, box->x2, box->y2);
}
static void
@@ -1596,6 +1599,7 @@ st_theme_node_paint_borders (StThemeNodePaintState *state,
guint8 paint_opacity)
{
StThemeNode *node = state->node;
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
float width, height;
guint border_width[4];
guint border_radius[4];
@@ -1702,32 +1706,39 @@ st_theme_node_paint_borders (StThemeNodePaintState *state,
if (state->corner_material[corner_id] == COGL_INVALID_HANDLE)
continue;
- cogl_material_set_color4ub (state->corner_material[corner_id],
+ cogl_pipeline_set_color4ub (state->corner_material[corner_id],
paint_opacity, paint_opacity,
paint_opacity, paint_opacity);
- cogl_set_source (state->corner_material[corner_id]);
switch (corner_id)
{
case ST_CORNER_TOPLEFT:
- cogl_rectangle_with_texture_coords (0, 0,
- max_width_radius[ST_CORNER_TOPLEFT],
max_width_radius[ST_CORNER_TOPLEFT],
- 0, 0, 0.5, 0.5);
+ cogl_framebuffer_draw_textured_rectangle (fb,
+ state->corner_material[corner_id], 0, 0,
+ max_width_radius[ST_CORNER_TOPLEFT], max_width_radius[ST_CORNER_TOPLEFT],
+ 0, 0, 0.5, 0.5);
break;
case ST_CORNER_TOPRIGHT:
- cogl_rectangle_with_texture_coords (width - max_width_radius[ST_CORNER_TOPRIGHT], 0,
- width, max_width_radius[ST_CORNER_TOPRIGHT],
- 0.5, 0, 1, 0.5);
+ cogl_framebuffer_draw_textured_rectangle (fb,
+ state->corner_material[corner_id],
+ width - max_width_radius[ST_CORNER_TOPRIGHT], 0,
+ width, max_width_radius[ST_CORNER_TOPRIGHT],
+ 0.5, 0, 1, 0.5);
break;
case ST_CORNER_BOTTOMRIGHT:
- cogl_rectangle_with_texture_coords (width - max_width_radius[ST_CORNER_BOTTOMRIGHT], height
- max_width_radius[ST_CORNER_BOTTOMRIGHT],
- width, height,
- 0.5, 0.5, 1, 1);
+ cogl_framebuffer_draw_textured_rectangle (fb,
+ state->corner_material[corner_id],
+ width - max_width_radius[ST_CORNER_BOTTOMRIGHT],
+ height - max_width_radius[ST_CORNER_BOTTOMRIGHT],
+ width, height,
+ 0.5, 0.5, 1, 1);
break;
case ST_CORNER_BOTTOMLEFT:
- cogl_rectangle_with_texture_coords (0, height - max_width_radius[ST_CORNER_BOTTOMLEFT],
- max_width_radius[ST_CORNER_BOTTOMLEFT], height,
- 0, 0.5, 0.5, 1);
+ cogl_framebuffer_draw_textured_rectangle (fb,
+ state->corner_material[corner_id],
+ 0, height - max_width_radius[ST_CORNER_BOTTOMLEFT],
+ max_width_radius[ST_CORNER_BOTTOMLEFT], height,
+ 0, 0.5, 0.5, 1);
break;
default:
g_assert_not_reached();
@@ -1868,6 +1879,7 @@ st_theme_node_paint_sliced_shadow (StThemeNodePaintState *state,
guint8 paint_opacity)
{
StThemeNode *node = state->node;
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
guint border_radius[4];
CoglColor color;
StShadow *box_shadow_spec;
@@ -1969,16 +1981,14 @@ st_theme_node_paint_sliced_shadow (StThemeNodePaintState *state,
right += xoffset;
/* Setup pipeline */
- cogl_color_set_from_4ub (&color,
- box_shadow_spec->color.red * paint_opacity / 255,
- box_shadow_spec->color.green * paint_opacity / 255,
- box_shadow_spec->color.blue * paint_opacity / 255,
- box_shadow_spec->color.alpha * paint_opacity / 255);
+ cogl_color_init_from_4ub (&color,
+ box_shadow_spec->color.red * paint_opacity / 255,
+ box_shadow_spec->color.green * paint_opacity / 255,
+ box_shadow_spec->color.blue * paint_opacity / 255,
+ box_shadow_spec->color.alpha * paint_opacity / 255);
cogl_color_premultiply (&color);
- cogl_material_set_layer_combine_constant (state->box_shadow_material, 0, &color);
-
- cogl_set_source (state->box_shadow_material);
+ cogl_pipeline_set_layer_combine_constant (state->box_shadow_material, 0, &color);
idx = 0;
@@ -2106,7 +2116,8 @@ st_theme_node_paint_sliced_shadow (StThemeNodePaintState *state,
}
}
- cogl_rectangles_with_texture_coords (rectangles, idx / 8);
+ cogl_framebuffer_draw_textured_rectangles (fb, state->box_shadow_material,
+ rectangles, idx / 8);
#if 0
/* Visual feedback on shadow's 9-slice and orignal offscreen buffer,
@@ -2186,19 +2197,18 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
state->box_shadow_height,
COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_ANY);
- offscreen = cogl_offscreen_new_to_texture (buffer);
+ offscreen = cogl_offscreen_new_with_texture (buffer);
if (offscreen != COGL_INVALID_HANDLE)
{
ClutterActorBox box = { 0, 0, state->box_shadow_width, state->box_shadow_height};
- CoglColor clear_color;
- cogl_push_framebuffer (offscreen);
- cogl_ortho (0, state->box_shadow_width, state->box_shadow_height, 0, 0, 1.0);
-
- cogl_color_set_from_4ub (&clear_color, 0, 0, 0, 0);
- cogl_clear (&clear_color, COGL_BUFFER_BIT_COLOR);
+ cogl_framebuffer_orthographic (offscreen, 0, 0,
+ state->box_shadow_width,
+ state->box_shadow_height, 0, 1.0);
+ cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 0);
+ cogl_push_framebuffer (offscreen);
st_theme_node_paint_borders (state, &box, 0xFF);
cogl_pop_framebuffer ();
cogl_handle_unref (offscreen);
@@ -2215,6 +2225,7 @@ st_theme_node_paint_sliced_border_image (StThemeNode *node,
float height,
guint8 paint_opacity)
{
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
gfloat ex, ey;
gfloat tx1, ty1, tx2, ty2;
gint border_left, border_right, border_top, border_bottom;
@@ -2245,11 +2256,9 @@ st_theme_node_paint_sliced_border_image (StThemeNode *node,
ey = border_bottom; /* FIXME ? */
material = node->border_slices_material;
- cogl_material_set_color4ub (material,
+ cogl_pipeline_set_color4ub (material,
paint_opacity, paint_opacity, paint_opacity, paint_opacity);
- cogl_set_source (material);
-
{
float rectangles[] =
{
@@ -2299,7 +2308,7 @@ st_theme_node_paint_sliced_border_image (StThemeNode *node,
1.0, 1.0
};
- cogl_rectangles_with_texture_coords (rectangles, 9);
+ cogl_framebuffer_draw_textured_rectangles (fb, material, rectangles, 9);
}
}
@@ -2513,6 +2522,7 @@ st_theme_node_paint (StThemeNode *node,
{
ClutterActorBox background_box;
ClutterActorBox texture_coords;
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
gboolean has_visible_outline;
/* If the node doesn't have an opaque or repeating background or
@@ -2524,7 +2534,9 @@ st_theme_node_paint (StThemeNode *node,
get_background_position (node, &allocation, &background_box, &texture_coords);
if (has_visible_outline || node->background_repeat)
- cogl_clip_push_rectangle (allocation.x1, allocation.y1, allocation.x2, allocation.y2);
+ cogl_framebuffer_push_rectangle_clip (fb,
+ allocation.x1, allocation.y1,
+ allocation.x2, allocation.y2);
/* CSS based drop shadows
*
@@ -2551,7 +2563,7 @@ st_theme_node_paint (StThemeNode *node,
paint_opacity);
if (has_visible_outline || node->background_repeat)
- cogl_clip_pop ();
+ cogl_framebuffer_pop_clip (fb);
}
}
diff --git a/src/st/st-theme-node-private.h b/src/st/st-theme-node-private.h
index 985c24e..cf80268 100644
--- a/src/st/st-theme-node-private.h
+++ b/src/st/st-theme-node-private.h
@@ -107,11 +107,11 @@ struct _StThemeNode {
int box_shadow_min_width;
int box_shadow_min_height;
- CoglHandle border_slices_texture;
- CoglHandle border_slices_material;
- CoglHandle background_texture;
- CoglHandle background_material;
- CoglHandle background_shadow_material;
+ CoglPipeline *border_slices_texture;
+ CoglPipeline *border_slices_material;
+ CoglPipeline *background_texture;
+ CoglPipeline *background_material;
+ CoglPipeline *background_shadow_material;
StThemeNodePaintState cached_state;
};
diff --git a/src/st/st-theme-node-transition.c b/src/st/st-theme-node-transition.c
index 5c2f0cf..615f72a 100644
--- a/src/st/st-theme-node-transition.c
+++ b/src/st/st-theme-node-transition.c
@@ -240,7 +240,6 @@ setup_framebuffers (StThemeNodeTransition *transition,
const ClutterActorBox *allocation)
{
StThemeNodeTransitionPrivate *priv = transition->priv;
- CoglColor clear_color = { 0, 0, 0, 0 };
guint width, height;
/* template material to avoid unnecessary shader compilation */
@@ -269,11 +268,11 @@ setup_framebuffers (StThemeNodeTransition *transition,
if (priv->old_offscreen)
cogl_handle_unref (priv->old_offscreen);
- priv->old_offscreen = cogl_offscreen_new_to_texture (priv->old_texture);
+ priv->old_offscreen = cogl_offscreen_new_with_texture (priv->old_texture);
if (priv->new_offscreen)
cogl_handle_unref (priv->new_offscreen);
- priv->new_offscreen = cogl_offscreen_new_to_texture (priv->new_texture);
+ priv->new_offscreen = cogl_offscreen_new_with_texture (priv->new_texture);
g_return_val_if_fail (priv->old_offscreen != COGL_INVALID_HANDLE, FALSE);
g_return_val_if_fail (priv->new_offscreen != COGL_INVALID_HANDLE, FALSE);
@@ -282,40 +281,49 @@ setup_framebuffers (StThemeNodeTransition *transition,
{
if (G_UNLIKELY (material_template == COGL_INVALID_HANDLE))
{
- material_template = cogl_material_new ();
+ CoglContext *ctx =
+ clutter_backend_get_cogl_context (clutter_get_default_backend ());
+ material_template = cogl_pipeline_new (ctx);
- cogl_material_set_layer_combine (material_template, 0,
+ cogl_pipeline_set_layer_combine (material_template, 0,
"RGBA = REPLACE (TEXTURE)",
NULL);
- cogl_material_set_layer_combine (material_template, 1,
+ cogl_pipeline_set_layer_combine (material_template, 1,
"RGBA = INTERPOLATE (PREVIOUS, "
"TEXTURE, "
"CONSTANT[A])",
NULL);
- cogl_material_set_layer_combine (material_template, 2,
+ cogl_pipeline_set_layer_combine (material_template, 2,
"RGBA = MODULATE (PREVIOUS, "
"PRIMARY)",
NULL);
}
- priv->material = cogl_material_copy (material_template);
+ priv->material = cogl_pipeline_copy (material_template);
}
- cogl_material_set_layer (priv->material, 0, priv->new_texture);
- cogl_material_set_layer (priv->material, 1, priv->old_texture);
+ cogl_pipeline_set_layer_texture (priv->material, 0, priv->new_texture);
+ cogl_pipeline_set_layer_texture (priv->material, 1, priv->old_texture);
+
+ cogl_framebuffer_clear4f (priv->old_offscreen, COGL_BUFFER_BIT_COLOR,
+ 0, 0, 0, 0);
+ cogl_framebuffer_orthographic (priv->old_offscreen,
+ priv->offscreen_box.x1,
+ priv->offscreen_box.y1,
+ priv->offscreen_box.x2,
+ priv->offscreen_box.y2, 0.0, 1.0);
cogl_push_framebuffer (priv->old_offscreen);
- cogl_clear (&clear_color, COGL_BUFFER_BIT_COLOR);
- cogl_ortho (priv->offscreen_box.x1, priv->offscreen_box.x2,
- priv->offscreen_box.y2, priv->offscreen_box.y1,
- 0.0, 1.0);
st_theme_node_paint (priv->old_theme_node, &priv->old_paint_state, allocation, 255);
cogl_pop_framebuffer ();
+ cogl_framebuffer_clear4f (priv->new_offscreen, COGL_BUFFER_BIT_COLOR,
+ 0, 0, 0, 0);
+ cogl_framebuffer_orthographic (priv->new_offscreen,
+ priv->offscreen_box.x1,
+ priv->offscreen_box.y1,
+ priv->offscreen_box.x2,
+ priv->offscreen_box.y2, 0.0, 1.0);
cogl_push_framebuffer (priv->new_offscreen);
- cogl_clear (&clear_color, COGL_BUFFER_BIT_COLOR);
- cogl_ortho (priv->offscreen_box.x1, priv->offscreen_box.x2,
- priv->offscreen_box.y2, priv->offscreen_box.y1,
- 0.0, 1.0);
st_theme_node_paint (priv->new_theme_node, &priv->new_paint_state, allocation, 255);
cogl_pop_framebuffer ();
@@ -328,6 +336,7 @@ st_theme_node_transition_paint (StThemeNodeTransition *transition,
guint8 paint_opacity)
{
StThemeNodeTransitionPrivate *priv = transition->priv;
+ CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
CoglColor constant;
float tex_coords[] = {
@@ -352,20 +361,20 @@ st_theme_node_transition_paint (StThemeNodeTransition *transition,
return;
}
- cogl_color_set_from_4f (&constant, 0., 0., 0.,
- clutter_timeline_get_progress (priv->timeline));
- cogl_material_set_layer_combine_constant (priv->material, 1, &constant);
+ cogl_color_init_from_4f (&constant, 0., 0., 0.,
+ clutter_timeline_get_progress (priv->timeline));
+ cogl_pipeline_set_layer_combine_constant (priv->material, 1, &constant);
- cogl_material_set_color4ub (priv->material,
+ cogl_pipeline_set_color4ub (priv->material,
paint_opacity, paint_opacity,
paint_opacity, paint_opacity);
- cogl_set_source (priv->material);
- cogl_rectangle_with_multitexture_coords (priv->offscreen_box.x1,
- priv->offscreen_box.y1,
- priv->offscreen_box.x2,
- priv->offscreen_box.y2,
- tex_coords, 8);
+ cogl_framebuffer_draw_multitextured_rectangle (fb, priv->material,
+ priv->offscreen_box.x1,
+ priv->offscreen_box.y1,
+ priv->offscreen_box.x2,
+ priv->offscreen_box.y2,
+ tex_coords, 8);
}
static void
diff --git a/src/st/st-theme-node.h b/src/st/st-theme-node.h
index 8f326bd..7f21c66 100644
--- a/src/st/st-theme-node.h
+++ b/src/st/st-theme-node.h
@@ -104,9 +104,9 @@ struct _StThemeNodePaintState {
float box_shadow_width;
float box_shadow_height;
- CoglHandle box_shadow_material;
- CoglHandle prerendered_texture;
- CoglHandle prerendered_material;
+ CoglPipeline *box_shadow_material;
+ CoglPipeline *prerendered_texture;
+ CoglPipeline *prerendered_material;
CoglHandle corner_material[4];
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]