You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-libs/libmypaint/files/libmypaint-1.3.0-gegl-0.4.1...

101 lines
4.3 KiB

From 068e5f7ecacf152a9872441fb2f67b8578448a5b Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Sun, 28 Apr 2019 20:24:05 +0200
Subject: [PATCH] Depend on Gegl >=0.4.14 rather than 0.3.x
Inspired by
https://src.fedoraproject.org/rpms/libmypaint/raw/master/f/libmypaint-1.3.0-gegl04.patch
Gegl commit introducing breaking change to GeglBufferIterator:
https://gitlab.gnome.org/GNOME/gegl/commit/9dcd2cde63f95a080bf16a58c10e9ffbdd99aace
---
configure.ac | 4 ++--
gegl/Makefile.am | 4 ++--
gegl/libmypaint-gegl.pc.in | 2 +-
gegl/mypaint-gegl-surface.c | 5 +++--
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7a5b231..95473d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@ m4_define([libmypaint_version_full],
[libmypaint_api_major().libmypaint_api_minor().libmypaint_api_micro()m4_bpatsubst(libmypaint_api_prerelease(), [^\(.\)], [-\1])])
# Dependencies.
-m4_define([gegl_required_version], [0.3])
+m4_define([gegl_required_version], [0.4.14])
m4_define([introspection_required_version], [1.32.0])
AC_INIT([libmypaint],
@@ -312,7 +312,7 @@ AC_ARG_ENABLE(gegl,
)
if eval "test x$enable_gegl = xyes"; then
- PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
+ PKG_CHECK_MODULES(GEGL, gegl-0.4 >= gegl_required_version)
fi
AM_CONDITIONAL(ENABLE_GEGL, test "x$enable_gegl" = "xyes")
diff --git a/gegl/Makefile.am b/gegl/Makefile.am
index b45707d..5ef22c1 100644
--- a/gegl/Makefile.am
+++ b/gegl/Makefile.am
@@ -11,7 +11,7 @@ AM_CPPFLAGS = \
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = \
--warn-all \
- --pkg="gegl-0.3" \
+ --pkg="gegl-0.4" \
--pkg="glib-2.0" \
--namespace="MyPaintGegl" \
--nsversion="$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION)" \
@@ -38,7 +38,7 @@ introspection_sources = \
mypaint-gegl-surface.c
MyPaintGegl-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir: libmypaint-gegl.la Makefile
-MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 MyPaint-$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION) Gegl-0.3
+MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 MyPaint-$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION) Gegl-0.4
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) -I. -I..
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_LIBS = libmypaint-gegl.la ../libmypaint.la
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_FILES = $(introspection_sources)
diff --git a/gegl/libmypaint-gegl.pc.in b/gegl/libmypaint-gegl.pc.in
index 75aa729..9184980 100644
--- a/gegl/libmypaint-gegl.pc.in
+++ b/gegl/libmypaint-gegl.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: libmypaint
Description: MyPaint brush engine library, with GEGL integration.
Version: @LIBMYPAINT_VERSION@
-Requires: gegl-0.3 libmypaint
+Requires: gegl-0.4 libmypaint
Cflags: -I${includedir}/libmypaint-gegl
Libs: -L${libdir} -lmypaint-gegl
diff --git a/gegl/mypaint-gegl-surface.c b/gegl/mypaint-gegl-surface.c
index 5c86d3c..e51bb5f 100644
--- a/gegl/mypaint-gegl-surface.c
+++ b/gegl/mypaint-gegl-surface.c
@@ -77,8 +77,9 @@ tile_request_start(MyPaintTiledSurface *tiled_surface, MyPaintTileRequest *reque
}
if (buffer_is_native(self)) {
+ const gint max_slots = 6; /* i.e. <0.4.14 internal GEGL_BUFFER_MAX_ITERATORS */
GeglBufferIterator *iterator = gegl_buffer_iterator_new(self->buffer, &tile_bbox, 0, self->format,
- read_write_flags, GEGL_ABYSS_NONE);
+ read_write_flags, GEGL_ABYSS_NONE, max_slots);
// Read out
gboolean completed = gegl_buffer_iterator_next(iterator);
@@ -88,7 +89,7 @@ tile_request_start(MyPaintTiledSurface *tiled_surface, MyPaintTileRequest *reque
g_critical("Unable to get tile aligned access to GeglBuffer");
request->buffer = NULL;
} else {
- request->buffer = (uint16_t *)(iterator->data[0]);
+ request->buffer = (uint16_t *)(iterator->items[0].data);
}
// So we can finish the iterator in tile_request_end()
--
2.21.0