[gimp] libgimp: remove the tile_mul code from GimpTileBackendPlugin
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimp: remove the tile_mul code from GimpTileBackendPlugin
- Date: Fri, 19 Jul 2019 23:17:22 +0000 (UTC)
commit 7ad25c17b5acd57d1c1bf3e4bc6766ed91398808
Author: Michael Natterer <mitch gimp org>
Date: Sat Jul 20 01:16:07 2019 +0200
libgimp: remove the tile_mul code from GimpTileBackendPlugin
Now that everything is GEGL, the tile size of core and plug-in should
always be the same.
libgimp/gimptilebackendplugin.c | 208 +++++++++++++++-------------------------
1 file changed, 76 insertions(+), 132 deletions(-)
---
diff --git a/libgimp/gimptilebackendplugin.c b/libgimp/gimptilebackendplugin.c
index a38fa1845b..a6ffa36c0c 100644
--- a/libgimp/gimptilebackendplugin.c
+++ b/libgimp/gimptilebackendplugin.c
@@ -57,7 +57,6 @@ struct _GimpTileBackendPluginPrivate
gint bpp;
gint ntile_rows;
gint ntile_cols;
- gint mul;
};
@@ -68,25 +67,24 @@ static gpointer gimp_tile_backend_plugin_command (GeglTileSource *tile_store,
gint z,
gpointer data);
-static void gimp_tile_write_mul (GimpTileBackendPlugin *backend_plugin,
- gint x,
- gint y,
- guchar *source);
-static GeglTile * gimp_tile_read_mul (GimpTileBackendPlugin *backend_plugin,
- gint x,
- gint y);
-
-static gint gimp_tile_mul (void);
-static void gimp_tile_init (GimpTileBackendPlugin *backend_plugin,
- GimpTile *tile,
- gint row,
- gint col);
-static void gimp_tile_unset (GimpTileBackendPlugin *backend_plugin,
- GimpTile *tile);
-static void gimp_tile_get (GimpTileBackendPlugin *backend_plugin,
- GimpTile *tile);
-static void gimp_tile_put (GimpTileBackendPlugin *backend_plugin,
- GimpTile *tile);
+static void gimp_tile_write (GimpTileBackendPlugin *backend_plugin,
+ gint x,
+ gint y,
+ guchar *source);
+static GeglTile * gimp_tile_read (GimpTileBackendPlugin *backend_plugin,
+ gint x,
+ gint y);
+
+static void gimp_tile_init (GimpTileBackendPlugin *backend_plugin,
+ GimpTile *tile,
+ gint row,
+ gint col);
+static void gimp_tile_unset (GimpTileBackendPlugin *backend_plugin,
+ GimpTile *tile);
+static void gimp_tile_get (GimpTileBackendPlugin *backend_plugin,
+ GimpTile *tile);
+static void gimp_tile_put (GimpTileBackendPlugin *backend_plugin,
+ GimpTile *tile);
/* EEK */
void gimp_read_expect_msg (GimpWireMessage *msg,
@@ -138,7 +136,7 @@ gimp_tile_backend_plugin_command (GeglTileSource *tile_store,
{
g_mutex_lock (&backend_plugin_mutex);
- result = gimp_tile_read_mul (backend_plugin, x, y);
+ result = gimp_tile_read (backend_plugin, x, y);
g_mutex_unlock (&backend_plugin_mutex);
}
@@ -150,7 +148,7 @@ gimp_tile_backend_plugin_command (GeglTileSource *tile_store,
{
g_mutex_lock (&backend_plugin_mutex);
- gimp_tile_write_mul (backend_plugin, x, y, gegl_tile_get_data (data));
+ gimp_tile_write (backend_plugin, x, y, gegl_tile_get_data (data));
g_mutex_unlock (&backend_plugin_mutex);
}
@@ -182,11 +180,10 @@ _gimp_tile_backend_plugin_new (gint32 drawable_id,
const Babl *format = gimp_drawable_get_format (drawable_id);
gint width = gimp_drawable_width (drawable_id);
gint height = gimp_drawable_height (drawable_id);
- gint mul = gimp_tile_mul ();
backend = g_object_new (GIMP_TYPE_TILE_BACKEND_PLUGIN,
- "tile-width", TILE_WIDTH * mul,
- "tile-height", TILE_HEIGHT * mul,
+ "tile-width", TILE_WIDTH,
+ "tile-height", TILE_HEIGHT,
"format", format,
NULL);
@@ -199,7 +196,6 @@ _gimp_tile_backend_plugin_new (gint32 drawable_id,
backend_plugin->priv->bpp = gimp_drawable_bpp (drawable_id);
backend_plugin->priv->ntile_rows = (height + TILE_HEIGHT - 1) / TILE_HEIGHT;
backend_plugin->priv->ntile_cols = (width + TILE_WIDTH - 1) / TILE_WIDTH;
- backend_plugin->priv->mul = mul;
gegl_tile_backend_set_extent (backend,
GEGL_RECTANGLE (0, 0, width, height));
@@ -210,130 +206,78 @@ _gimp_tile_backend_plugin_new (gint32 drawable_id,
/* private functions */
-static gint
-gimp_tile_mul (void)
-{
- static gint mul = 1;
- static gboolean inited = FALSE;
-
- if (G_LIKELY (inited))
- return mul;
-
- inited = TRUE;
-
- if (g_getenv ("GIMP_GEGL_TILE_MUL"))
- mul = atoi (g_getenv ("GIMP_GEGL_TILE_MUL"));
-
- if (mul < 1)
- mul = 1;
-
- return mul;
-}
-
static GeglTile *
-gimp_tile_read_mul (GimpTileBackendPlugin *backend_plugin,
- gint x,
- gint y)
+gimp_tile_read (GimpTileBackendPlugin *backend_plugin,
+ gint x,
+ gint y)
{
GimpTileBackendPluginPrivate *priv = backend_plugin->priv;
GeglTileBackend *backend = GEGL_TILE_BACKEND (backend_plugin);
GeglTile *tile;
+ GimpTile gimp_tile = { 0, };
gint tile_size;
- gint u, v;
- gint mul = priv->mul;
guchar *tile_data;
- x *= mul;
- y *= mul;
-
tile_size = gegl_tile_backend_get_tile_size (backend);
tile = gegl_tile_new (tile_size);
tile_data = gegl_tile_get_data (tile);
- for (u = 0; u < mul; u++)
- {
- for (v = 0; v < mul; v++)
- {
- GimpTile gimp_tile = { 0, };
-
- if (x + u >= priv->ntile_cols ||
- y + v >= priv->ntile_rows)
- continue;
-
- gimp_tile_init (backend_plugin, &gimp_tile, y + v, x + u);
- gimp_tile_get (backend_plugin, &gimp_tile);
-
- {
- gint ewidth = gimp_tile.ewidth;
- gint eheight = gimp_tile.eheight;
- gint bpp = priv->bpp;
- gint tile_stride = mul * TILE_WIDTH * bpp;
- gint gimp_tile_stride = ewidth * bpp;
- gint row;
-
- for (row = 0; row < eheight; row++)
- {
- memcpy (tile_data + (row + TILE_HEIGHT * v) *
- tile_stride + u * TILE_WIDTH * bpp,
- ((gchar *) gimp_tile.data) + row * gimp_tile_stride,
- gimp_tile_stride);
- }
- }
-
- gimp_tile_unset (backend_plugin, &gimp_tile);
- }
- }
+ gimp_tile_init (backend_plugin, &gimp_tile, y, x);
+ gimp_tile_get (backend_plugin, &gimp_tile);
+
+ {
+ gint ewidth = gimp_tile.ewidth;
+ gint eheight = gimp_tile.eheight;
+ gint bpp = priv->bpp;
+ gint tile_stride = TILE_WIDTH * bpp;
+ gint gimp_tile_stride = ewidth * bpp;
+ gint row;
+
+ for (row = 0; row < eheight; row++)
+ {
+ memcpy (tile_data + row * tile_stride,
+ (gchar *) gimp_tile.data + row * gimp_tile_stride,
+ gimp_tile_stride);
+ }
+ }
+
+ gimp_tile_unset (backend_plugin, &gimp_tile);
return tile;
}
static void
-gimp_tile_write_mul (GimpTileBackendPlugin *backend_plugin,
- gint x,
- gint y,
- guchar *source)
+gimp_tile_write (GimpTileBackendPlugin *backend_plugin,
+ gint x,
+ gint y,
+ guchar *source)
{
- GimpTileBackendPluginPrivate *priv = backend_plugin->priv;
- gint u, v;
- gint mul = priv->mul;
-
- x *= mul;
- y *= mul;
-
- for (v = 0; v < mul; v++)
- {
- for (u = 0; u < mul; u++)
- {
- GimpTile gimp_tile = { 0, };
-
- if (x + u >= priv->ntile_cols ||
- y + v >= priv->ntile_rows)
- continue;
-
- gimp_tile_init (backend_plugin, &gimp_tile, y + v, x + u);
- gimp_tile.data = g_new (guchar,
- gimp_tile.ewidth * gimp_tile.eheight *
- priv->bpp);
-
- {
- gint ewidth = gimp_tile.ewidth;
- gint eheight = gimp_tile.eheight;
- gint bpp = priv->bpp;
- gint tile_stride = mul * TILE_WIDTH * bpp;
- gint gimp_tile_stride = ewidth * bpp;
- gint row;
-
- for (row = 0; row < eheight; row++)
- memcpy (((gchar *) gimp_tile.data) + row * gimp_tile_stride,
- source + (row + v * TILE_HEIGHT) *
- tile_stride + u * TILE_WIDTH * bpp,
- gimp_tile_stride);
- }
-
- gimp_tile_put (backend_plugin, &gimp_tile);
- gimp_tile_unset (backend_plugin, &gimp_tile);
- }
- }
+ GimpTileBackendPluginPrivate *priv = backend_plugin->priv;
+ GimpTile gimp_tile = { 0, };
+
+ gimp_tile_init (backend_plugin, &gimp_tile, y, x);
+ gimp_tile.data = g_new (guchar,
+ gimp_tile.ewidth * gimp_tile.eheight *
+ priv->bpp);
+
+ {
+ gint ewidth = gimp_tile.ewidth;
+ gint eheight = gimp_tile.eheight;
+ gint bpp = priv->bpp;
+ gint tile_stride = TILE_WIDTH * bpp;
+ gint gimp_tile_stride = ewidth * bpp;
+ gint row;
+
+ for (row = 0; row < eheight; row++)
+ {
+ memcpy ((gchar *) gimp_tile.data + row * gimp_tile_stride,
+ source + row * tile_stride,
+ gimp_tile_stride);
+ }
+ }
+
+ gimp_tile_put (backend_plugin, &gimp_tile);
+ gimp_tile_unset (backend_plugin, &gimp_tile);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]