[mutter] build 3.11.4 with cogl changes reverted for now, as there's no cogl release
Adam Williamson
adamwill at fedoraproject.org
Mon Jan 20 04:50:59 UTC 2014
commit 2019865d21a2206a8adb1d2b8f26a2aa4db7ebe1
Author: Adam Williamson <awilliam at redhat.com>
Date: Sun Jan 19 20:50:34 2014 -0800
build 3.11.4 with cogl changes reverted for now, as there's no cogl release
mutter-3.11.4-cogl-revert.patch | 147 +++++++++++++++++++++++++++++++++++++++
mutter.spec | 10 +++
2 files changed, 157 insertions(+), 0 deletions(-)
---
diff --git a/mutter-3.11.4-cogl-revert.patch b/mutter-3.11.4-cogl-revert.patch
new file mode 100644
index 0000000..932fc8f
--- /dev/null
+++ b/mutter-3.11.4-cogl-revert.patch
@@ -0,0 +1,147 @@
+diff --git a/configure.ac b/configure.ac
+index fe56026..f085550 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -76,7 +76,7 @@ MUTTER_PC_MODULES="
+ gsettings-desktop-schemas >= 3.7.3
+ xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
+ $CLUTTER_PACKAGE >= 1.15.90
+- cogl-1.0 >= 1.17.1
++ cogl-1.0 >= 1.15.6
+ upower-glib >= 0.99.0
+ gnome-desktop-3.0
+ "
+diff --git a/src/compositor/meta-texture-rectangle.c b/src/compositor/meta-texture-rectangle.c
+index cd585b5..3fc9430 100644
+--- a/src/compositor/meta-texture-rectangle.c
++++ b/src/compositor/meta-texture-rectangle.c
+@@ -26,6 +26,41 @@
+ #include <clutter/clutter.h>
+ #include "meta-texture-rectangle.h"
+
++CoglTexture *
++meta_texture_rectangle_new (unsigned int width,
++ unsigned int height,
++ CoglPixelFormat format,
++ CoglPixelFormat internal_format,
++ unsigned int rowstride,
++ const guint8 *data,
++ GError **error)
++{
++ ClutterBackend *backend =
++ clutter_get_default_backend ();
++ CoglContext *context =
++ clutter_backend_get_cogl_context (backend);
++ CoglTextureRectangle *tex_rect;
++
++ tex_rect = cogl_texture_rectangle_new_with_size (context,
++ width, height,
++ internal_format,
++ error);
++ if (tex_rect == NULL)
++ return NULL;
++
++ if (data)
++ cogl_texture_set_region (COGL_TEXTURE (tex_rect),
++ 0, 0, /* src_x/y */
++ 0, 0, /* dst_x/y */
++ width, height, /* dst_width/height */
++ width, height, /* width/height */
++ format,
++ rowstride,
++ data);
++
++ return COGL_TEXTURE (tex_rect);
++}
++
+ static void
+ texture_rectangle_check_cb (CoglTexture *sub_texture,
+ const float *sub_texture_coords,
+diff --git a/src/compositor/meta-texture-rectangle.h b/src/compositor/meta-texture-rectangle.h
+index ba2624f..30f60d3 100644
+--- a/src/compositor/meta-texture-rectangle.h
++++ b/src/compositor/meta-texture-rectangle.h
+@@ -28,6 +28,15 @@
+
+ G_BEGIN_DECLS
+
++CoglTexture *
++meta_texture_rectangle_new (unsigned int width,
++ unsigned int height,
++ CoglPixelFormat format,
++ CoglPixelFormat internal_format,
++ unsigned int rowstride,
++ const guint8 *data,
++ GError **error);
++
+ gboolean
+ meta_texture_rectangle_check (CoglTexture *texture);
+
+diff --git a/src/compositor/meta-texture-tower.c b/src/compositor/meta-texture-tower.c
+index 5d82add..9a30de0 100644
+--- a/src/compositor/meta-texture-tower.c
++++ b/src/compositor/meta-texture-tower.c
+@@ -359,10 +359,18 @@ texture_tower_create_texture (MetaTextureTower *tower,
+ if ((!is_power_of_two (width) || !is_power_of_two (height)) &&
+ meta_texture_rectangle_check (tower->textures[level - 1]))
+ {
+- ClutterBackend *backend = clutter_get_default_backend ();
+- CoglContext *context = clutter_backend_get_cogl_context (backend);
+-
+- tower->textures[level] = cogl_texture_rectangle_new_with_size (context, width, height);
++ tower->textures[level] =
++ meta_texture_rectangle_new (width, height,
++ /* data format */
++ TEXTURE_FORMAT,
++ /* internal cogl format */
++ TEXTURE_FORMAT,
++ /* rowstride */
++ width * 4,
++ /* data */
++ NULL,
++ /* error */
++ NULL);
+ }
+ else
+ {
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index b9473d2..a2c05ca 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -2165,18 +2165,12 @@ build_and_scan_frame_mask (MetaWindowActor *self,
+
+ if (meta_texture_rectangle_check (paint_tex))
+ {
+- ClutterBackend *backend = clutter_get_default_backend ();
+- CoglContext *context = clutter_backend_get_cogl_context (backend);
+-
+- mask_texture = COGL_TEXTURE (cogl_texture_rectangle_new_with_size (context, tex_width, tex_height));
+- cogl_texture_set_components (mask_texture, COGL_TEXTURE_COMPONENTS_A);
+- cogl_texture_set_region (mask_texture,
+- 0, 0, /* src_x/y */
+- 0, 0, /* dst_x/y */
+- tex_width, tex_height, /* dst_width/height */
+- tex_width, tex_height, /* width/height */
+- COGL_PIXEL_FORMAT_A_8,
+- stride, mask_data);
++ mask_texture = meta_texture_rectangle_new (tex_width, tex_height,
++ COGL_PIXEL_FORMAT_A_8,
++ COGL_PIXEL_FORMAT_A_8,
++ stride,
++ mask_data,
++ NULL /* error */);
+ }
+ else
+ {
+diff --git a/src/core/meta-cursor-tracker.c b/src/core/meta-cursor-tracker.c
+index 84f3185..d1b365e 100644
+--- a/src/core/meta-cursor-tracker.c
++++ b/src/core/meta-cursor-tracker.c
+@@ -307,6 +307,7 @@ ensure_xfixes_cursor (MetaCursorTracker *tracker)
+ cursor_image->width,
+ cursor_image->height,
+ CLUTTER_CAIRO_FORMAT_ARGB32,
++ COGL_PIXEL_FORMAT_ANY,
+ cursor_image->width * 4, /* stride */
+ cursor_data,
+ NULL);
diff --git a/mutter.spec b/mutter.spec
index ea1f772..8503d60 100644
--- a/mutter.spec
+++ b/mutter.spec
@@ -9,6 +9,12 @@ License: GPLv2+
URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/%{name}/3.11/%{name}-%{version}.tar.xz
+# As cogl 1.17.1 does not exist yet, temporarily revert the commits that
+# adjust to 1.17 API and require 1.17. This patch reverts upstream commits
+# d2a1db8834 and 3548e6da73. Note this patch requires autogen.sh to be run:
+# when dropping this patch, also drop the autoreconf call.
+Patch0: mutter-3.11.4-cogl-revert.patch
+
BuildRequires: clutter-devel >= 1.13.5
BuildRequires: pango-devel
BuildRequires: startup-notification-devel
@@ -64,8 +70,12 @@ utilities for testing Metacity/Mutter themes.
%prep
%setup -q
+%patch0 -p1 -b .cogl_revert
%build
+# only needed for patch0 (patches configure.ac), drop when dropping this patch
+autoreconf -i
+
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
%configure --disable-static --enable-compile-warnings=maximum)
More information about the scm-commits
mailing list