build 3.11.4 with cogl changes reverted for now, as there's no cogl release

This commit is contained in:
Adam Williamson 2014-01-19 20:50:34 -08:00
parent d44f595f78
commit 2019865d21
2 changed files with 157 additions and 0 deletions

View File

@ -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);

View File

@ -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)