[mutter] Port to Mutter to Clutter 1.0 API
- From: Owen Taylor <otaylor src gnome org>
- To: svn-commits-list gnome org
- Subject: [mutter] Port to Mutter to Clutter 1.0 API
- Date: Mon, 8 Jun 2009 09:37:56 -0400 (EDT)
commit fafb7528277f6833f9a3bbe0b0a827672710fcb6
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Sat Jun 6 13:14:34 2009 -0400
Port to Mutter to Clutter 1.0 API
- Use float instead of ClutterUnit
- clutter_actor_get_size/position() return floats (remove some
stray usage of these functions in the default plugin as well.)
- Adapt to cogl_texture_new_from_data() changes
- Use blend strings to set up multitexturing
- Remove CLUTTER_UNITS_TO_FLOAT() usage
http://bugzilla.gnome.org/show_bug.cgi?id=585016
---
src/compositor/mutter/compositor-mutter.c | 2 +-
src/compositor/mutter/mutter-shaped-texture.c | 66 +++++------------------
src/compositor/mutter/plugins/default.c | 14 ++----
src/compositor/mutter/tidy/tidy-texture-frame.c | 12 ++--
4 files changed, 24 insertions(+), 70 deletions(-)
diff --git a/src/compositor/mutter/compositor-mutter.c b/src/compositor/mutter/compositor-mutter.c
index cb7e48c..e01de52 100644
--- a/src/compositor/mutter/compositor-mutter.c
+++ b/src/compositor/mutter/compositor-mutter.c
@@ -577,7 +577,7 @@ mutter_window_set_property (GObject *object,
}
else if (!newv && !priv->shadow && mutter_window_has_shadow (mw))
{
- guint w, h;
+ gfloat w, h;
MetaDisplay *display = meta_screen_get_display (priv->screen);
Mutter *compositor;
diff --git a/src/compositor/mutter/mutter-shaped-texture.c b/src/compositor/mutter/mutter-shaped-texture.c
index 6acccb0..f613afe 100755
--- a/src/compositor/mutter/mutter-shaped-texture.c
+++ b/src/compositor/mutter/mutter-shaped-texture.c
@@ -227,7 +227,7 @@ mutter_shaped_texture_ensure_mask (MutterShapedTexture *stex)
}
else
priv->mask_texture = cogl_texture_new_from_data (tex_width, tex_height,
- -1, FALSE,
+ COGL_TEXTURE_NO_SLICING,
COGL_PIXEL_FORMAT_A_8,
COGL_PIXEL_FORMAT_ANY,
tex_width,
@@ -282,30 +282,10 @@ mutter_shaped_texture_paint (ClutterActor *actor)
{
priv->material = cogl_material_new ();
- /* Replace the RGB from layer 1 with the RGB from layer 0 */
- cogl_material_set_layer_combine_function
- (priv->material, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_RGB,
- COGL_MATERIAL_LAYER_COMBINE_FUNC_REPLACE);
- cogl_material_set_layer_combine_arg_src
- (priv->material, 1, 0,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_RGB,
- COGL_MATERIAL_LAYER_COMBINE_SRC_PREVIOUS);
-
- /* Modulate the alpha in layer 1 with the alpha from the
- previous layer */
- cogl_material_set_layer_combine_function
- (priv->material, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_FUNC_MODULATE);
- cogl_material_set_layer_combine_arg_src
- (priv->material, 1, 0,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_SRC_PREVIOUS);
- cogl_material_set_layer_combine_arg_src
- (priv->material, 1, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_SRC_TEXTURE);
+ cogl_material_set_layer_combine (priv->material, 1,
+ "RGB = REPLACE (PREVIOUS)"
+ "A = MODULATE (PREVIOUS, TEXTURE)",
+ NULL);
}
material = priv->material;
@@ -325,30 +305,10 @@ mutter_shaped_texture_paint (ClutterActor *actor)
{
material = priv->material_workaround = cogl_material_new ();
- /* Replace the RGB from layer 1 with the RGB from layer 0 */
- cogl_material_set_layer_combine_function
- (material, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_RGB,
- COGL_MATERIAL_LAYER_COMBINE_FUNC_REPLACE);
- cogl_material_set_layer_combine_arg_src
- (material, 1, 0,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_RGB,
- COGL_MATERIAL_LAYER_COMBINE_SRC_PREVIOUS);
-
- /* Use the alpha from layer 1 modulated with the alpha from
- the primary color */
- cogl_material_set_layer_combine_function
- (material, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_FUNC_MODULATE);
- cogl_material_set_layer_combine_arg_src
- (material, 1, 0,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_SRC_PRIMARY_COLOR);
- cogl_material_set_layer_combine_arg_src
- (material, 1, 1,
- COGL_MATERIAL_LAYER_COMBINE_CHANNELS_ALPHA,
- COGL_MATERIAL_LAYER_COMBINE_SRC_TEXTURE);
+ cogl_material_set_layer_combine (material, 1,
+ "RGB = REPLACE (PREVIOUS)"
+ "A = MODULATE (PRIMARY, TEXTURE)",
+ NULL);
}
material = priv->material_workaround;
@@ -369,8 +329,8 @@ mutter_shaped_texture_paint (ClutterActor *actor)
clutter_actor_get_allocation_box (actor, &alloc);
cogl_rectangle (0, 0,
- CLUTTER_UNITS_TO_FLOAT (alloc.x2 - alloc.x1),
- CLUTTER_UNITS_TO_FLOAT (alloc.y2 - alloc.y1));
+ alloc.x2 - alloc.x1,
+ alloc.y2 - alloc.y1);
}
static void
@@ -411,8 +371,8 @@ mutter_shaped_texture_pick (ClutterActor *actor,
/* Paint the mask rectangle in the given color */
cogl_set_source_texture (priv->mask_texture);
cogl_rectangle_with_texture_coords (0, 0,
- CLUTTER_UNITS_TO_FLOAT (alloc.x2 - alloc.x1),
- CLUTTER_UNITS_TO_FLOAT (alloc.y2 - alloc.y1),
+ alloc.x2 - alloc.x1,
+ alloc.y2 - alloc.y1,
0, 0, 1, 1);
}
}
diff --git a/src/compositor/mutter/plugins/default.c b/src/compositor/mutter/plugins/default.c
index d7f664d..e4a5f29 100644
--- a/src/compositor/mutter/plugins/default.c
+++ b/src/compositor/mutter/plugins/default.c
@@ -375,12 +375,6 @@ switch_workspace (MutterPlugin *plugin,
if (win_workspace == to || win_workspace == from)
{
- gint x, y;
- guint w, h;
-
- clutter_actor_get_position (window, &x, &y);
- clutter_actor_get_size (window, &w, &h);
-
apriv->orig_parent = clutter_actor_get_parent (window);
clutter_actor_reparent (window,
@@ -548,8 +542,8 @@ maximize (MutterPlugin *plugin,
gdouble scale_x = 1.0;
gdouble scale_y = 1.0;
- gint anchor_x = 0;
- gint anchor_y = 0;
+ gfloat anchor_x = 0;
+ gfloat anchor_y = 0;
type = mutter_window_get_window_type (mc_window);
@@ -558,8 +552,8 @@ maximize (MutterPlugin *plugin,
ClutterAnimation *animation;
EffectCompleteData *data = g_new0 (EffectCompleteData, 1);
ActorPrivate *apriv = get_actor_private (mc_window);
- guint width, height;
- gint x, y;
+ gfloat width, height;
+ gfloat x, y;
apriv->is_maximized = TRUE;
diff --git a/src/compositor/mutter/tidy/tidy-texture-frame.c b/src/compositor/mutter/tidy/tidy-texture-frame.c
index e4485aa..28ca96a 100644
--- a/src/compositor/mutter/tidy/tidy-texture-frame.c
+++ b/src/compositor/mutter/tidy/tidy-texture-frame.c
@@ -68,9 +68,9 @@ struct _TidyTextureFramePrivate
static void
tidy_texture_frame_get_preferred_width (ClutterActor *self,
- ClutterUnit for_height,
- ClutterUnit *min_width_p,
- ClutterUnit *natural_width_p)
+ gfloat for_height,
+ gfloat *min_width_p,
+ gfloat *natural_width_p)
{
TidyTextureFramePrivate *priv = TIDY_TEXTURE_FRAME (self)->priv;
@@ -101,9 +101,9 @@ tidy_texture_frame_get_preferred_width (ClutterActor *self,
static void
tidy_texture_frame_get_preferred_height (ClutterActor *self,
- ClutterUnit for_width,
- ClutterUnit *min_height_p,
- ClutterUnit *natural_height_p)
+ gfloat for_width,
+ gfloat *min_height_p,
+ gfloat *natural_height_p)
{
TidyTextureFramePrivate *priv = TIDY_TEXTURE_FRAME (self)->priv;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]