[gimp] app: radius map actually not useful during smart colorization grow step.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: radius map actually not useful during smart colorization grow step.
- Date: Tue, 27 Nov 2018 16:36:15 +0000 (UTC)
commit 6bec0bc82d1811863c79d41a3f6c2af3dceeb44a
Author: Jehan <jehan girinstud io>
Date: Tue Nov 27 14:59:35 2018 +0100
app: radius map actually not useful during smart colorization grow step.
The distance map has all the information we need already. Also we will
actually grow up to the max radius pixel (middle pixel of a stroke).
After discussing with Aryeom, we realized it was better to fill a stroke
fully (for cases of overflowing, I already added the "Maximum growing
size" property anyway).
app/core/gimpchannel-select.c | 2 +-
app/core/gimpdrawable-bucket-fill.c | 6 +--
app/core/gimpdrawable-bucket-fill.h | 2 -
app/core/gimplineart.c | 15 ++----
app/core/gimplineart.h | 3 +-
app/core/gimppickable-contiguous-region.c | 88 +++++++++++--------------------
app/core/gimppickable-contiguous-region.h | 5 +-
app/pdb/drawable-edit-cmds.c | 2 +-
app/tools/gimpbucketfilltool.c | 10 +---
app/tools/gimpfuzzyselecttool.c | 2 +-
pdb/groups/drawable_edit.pdb | 2 +-
11 files changed, 46 insertions(+), 91 deletions(-)
---
diff --git a/app/core/gimpchannel-select.c b/app/core/gimpchannel-select.c
index af7f2e1bfa..0ca19ce00f 100644
--- a/app/core/gimpchannel-select.c
+++ b/app/core/gimpchannel-select.c
@@ -516,7 +516,7 @@ gimp_channel_select_fuzzy (GimpChannel *channel,
pickable = GIMP_PICKABLE (drawable);
add_on = gimp_pickable_contiguous_region_by_seed (pickable,
- NULL, NULL, NULL,
+ NULL, NULL,
antialias,
threshold,
select_transparent,
diff --git a/app/core/gimpdrawable-bucket-fill.c b/app/core/gimpdrawable-bucket-fill.c
index 3ae150a0a7..a017df429c 100644
--- a/app/core/gimpdrawable-bucket-fill.c
+++ b/app/core/gimpdrawable-bucket-fill.c
@@ -51,7 +51,6 @@ void
gimp_drawable_bucket_fill (GimpDrawable *drawable,
GeglBuffer *line_art,
gfloat *distmap,
- gfloat *thickmap,
GimpFillOptions *options,
gboolean fill_transparent,
GimpSelectCriterion fill_criterion,
@@ -76,7 +75,7 @@ gimp_drawable_bucket_fill (GimpDrawable *drawable,
image = gimp_item_get_image (GIMP_ITEM (drawable));
gimp_set_busy (image->gimp);
buffer = gimp_drawable_get_bucket_fill_buffer (drawable, line_art,
- distmap, thickmap, options,
+ distmap, options,
fill_transparent, fill_criterion,
threshold, sample_merged,
diagonal_neighbors,
@@ -140,7 +139,6 @@ GeglBuffer *
gimp_drawable_get_bucket_fill_buffer (GimpDrawable *drawable,
GeglBuffer *line_art,
gfloat *distmap,
- gfloat *thickmap,
GimpFillOptions *options,
gboolean fill_transparent,
GimpSelectCriterion fill_criterion,
@@ -204,7 +202,7 @@ gimp_drawable_get_bucket_fill_buffer (GimpDrawable *drawable,
* contiguous region.
*/
new_mask = gimp_pickable_contiguous_region_by_seed (pickable,
- line_art, distmap, thickmap,
+ line_art, distmap,
antialias,
threshold,
fill_transparent,
diff --git a/app/core/gimpdrawable-bucket-fill.h b/app/core/gimpdrawable-bucket-fill.h
index 9163d3ce87..d7acbb38d2 100644
--- a/app/core/gimpdrawable-bucket-fill.h
+++ b/app/core/gimpdrawable-bucket-fill.h
@@ -22,7 +22,6 @@
void gimp_drawable_bucket_fill (GimpDrawable *drawable,
GeglBuffer *line_art,
gfloat *distmap,
- gfloat *thickmap,
GimpFillOptions *options,
gboolean fill_transparent,
GimpSelectCriterion fill_criterion,
@@ -36,7 +35,6 @@ void gimp_drawable_bucket_fill (GimpDrawable *drawabl
GeglBuffer * gimp_drawable_get_bucket_fill_buffer (GimpDrawable *drawable,
GeglBuffer *line_art,
gfloat *distmap,
- gfloat *thickmap,
GimpFillOptions *options,
gboolean fill_transparent,
GimpSelectCriterion fill_criterion,
diff --git a/app/core/gimplineart.c b/app/core/gimplineart.c
index 0432c9453e..c977baba70 100644
--- a/app/core/gimplineart.c
+++ b/app/core/gimplineart.c
@@ -188,7 +188,6 @@ static void gimp_edgelset_next8 (const GeglBuffer *buffer,
* between end points. Unlike splines, segments
* are straight lines.
* @closed_distmap: a distance map of the closed line art pixels.
- * @lineart_radii: a map of estimated radii of line art border pixels.
*
* Creates a binarized version of the strokes of @buffer, detected either
* with luminosity (light means background) or alpha values depending on
@@ -203,9 +202,9 @@ static void gimp_edgelset_next8 (const GeglBuffer *buffer,
* Fourey, David Tschumperlé, David Revoy.
*
* Returns: a new #GeglBuffer of format "Y u8" representing the
- * binarized @line_art. If @lineart_radii and @lineart_distmap
- * are not #NULL, newly allocated float buffer are returned,
- * which can be used for overflowing created masks later.
+ * binarized @line_art. If @lineart_distmap is not #NULL, a
+ * newly allocated float buffer is returned, which can be used
+ * for overflowing created masks later.
*/
GeglBuffer *
gimp_lineart_close (GeglBuffer *buffer,
@@ -223,8 +222,7 @@ gimp_lineart_close (GeglBuffer *buffer,
gint created_regions_minimum_area,
gboolean small_segments_from_spline_sources,
gint segments_max_length,
- gfloat **closed_distmap,
- gfloat **lineart_radii)
+ gfloat **closed_distmap)
{
const Babl *gray_format;
gfloat *normals;
@@ -327,10 +325,7 @@ gimp_lineart_close (GeglBuffer *buffer,
curvatures[i + j * width] = 0.0;
}
}
- if (lineart_radii)
- *lineart_radii = radii;
- else
- g_free (radii);
+ g_free (radii);
keypoints = gimp_lineart_curvature_extremums (curvatures, smoothed_curvatures,
width, height);
diff --git a/app/core/gimplineart.h b/app/core/gimplineart.h
index 8fa43f78da..5ab579800b 100644
--- a/app/core/gimplineart.h
+++ b/app/core/gimplineart.h
@@ -37,8 +37,7 @@ GeglBuffer * gimp_lineart_close (GeglBuffer *buffer,
gint created_regions_minimum_area,
gboolean small_segments_from_spline_sources,
gint segments_max_length,
- gfloat **lineart_distmap,
- gfloat **lineart_radii);
+ gfloat **lineart_distmap);
#endif /* __GIMP_LINEART__ */
diff --git a/app/core/gimppickable-contiguous-region.c b/app/core/gimppickable-contiguous-region.c
index 669ac3e8fd..ebabf4c8bb 100644
--- a/app/core/gimppickable-contiguous-region.c
+++ b/app/core/gimppickable-contiguous-region.c
@@ -50,7 +50,6 @@ typedef struct
{
gint x;
gint y;
- gfloat radius;
gint level;
} BorderPixel;
@@ -120,14 +119,12 @@ static LineArtData * line_art_data_new (GeglBuffer *buffer,
static void line_art_data_free (LineArtData *data);
static GimpPickableLineArtAsyncResult *
line_art_result_new (GeglBuffer *line_art,
- gfloat *distmap,
- gfloat *thickmap);
+ gfloat *distmap);
static void line_art_result_free (GimpPickableLineArtAsyncResult
*data);
static void line_art_queue_pixel (GQueue *queue,
gint x,
gint y,
- gfloat radius,
gint level);
@@ -139,7 +136,6 @@ gimp_pickable_contiguous_region_prepare_line_art_async_func (GimpAsync *async,
{
GeglBuffer *lineart;
gfloat *distmap;
- gfloat *thickmap;
gboolean has_alpha;
gboolean select_transparent = FALSE;
@@ -223,12 +219,12 @@ gimp_pickable_contiguous_region_prepare_line_art_async_func (GimpAsync *async,
TRUE,
/*segments_max_length*/
20,
- &distmap, &thickmap);
+ &distmap);
GIMP_TIMER_END("close line-art");
gimp_async_finish_full (async,
- line_art_result_new (lineart, distmap, thickmap),
+ line_art_result_new (lineart, distmap),
(GDestroyNotify) line_art_result_free);
line_art_data_free (data);
@@ -238,8 +234,7 @@ GeglBuffer *
gimp_pickable_contiguous_region_prepare_line_art (GimpPickable *pickable,
gboolean select_transparent,
gfloat stroke_threshold,
- gfloat **distmap,
- gfloat **thickmap)
+ gfloat **distmap)
{
GimpAsync *async;
LineArtData *data;
@@ -261,9 +256,7 @@ gimp_pickable_contiguous_region_prepare_line_art (GimpPickable *pickable,
lineart = g_object_ref (result->line_art);
*distmap = result->distmap;
- *thickmap = result->thickmap;
result->distmap = NULL;
- result->thickmap = NULL;
g_object_unref (async);
@@ -306,7 +299,6 @@ GeglBuffer *
gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
GeglBuffer *line_art,
gfloat *distmap,
- gfloat *thickmap,
gboolean antialias,
gfloat threshold,
gboolean select_transparent,
@@ -331,8 +323,8 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
if (select_criterion == GIMP_SELECT_CRITERION_LINE_ART)
{
- g_return_val_if_fail ((line_art && distmap && thickmap) ||
- (! line_art && ! distmap && ! thickmap),
+ g_return_val_if_fail ((line_art && distmap) ||
+ (! line_art && ! distmap),
NULL);
if (line_art == NULL)
{
@@ -342,7 +334,7 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
*/
line_art = gimp_pickable_contiguous_region_prepare_line_art (pickable, select_transparent,
stroke_threshold,
- &distmap, &thickmap);
+ &distmap);
free_line_art = TRUE;
}
@@ -442,8 +434,6 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
{
if (distmap[x + y * width] == 1.0)
{
- gfloat thickness = thickmap[x + y * width];
-
if (x > 0)
{
nx = x - 1;
@@ -452,14 +442,14 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y - 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
ny = y;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
if (y < height - 1)
@@ -467,7 +457,7 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y + 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
@@ -480,14 +470,14 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y - 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
ny = y;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
if (y < height - 1)
@@ -495,7 +485,7 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y + 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
@@ -506,7 +496,7 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y - 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
@@ -515,7 +505,7 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
ny = y + 1;
if (mask[nx + ny * width] != 0.0)
{
- line_art_queue_pixel (queue, x, y, thickness, 1);
+ line_art_queue_pixel (queue, x, y, 1);
continue;
}
}
@@ -539,22 +529,19 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
{
ny = c->y - 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
ny = c->y;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
if (c->y < height - 1)
{
ny = c->y - 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
}
if (c->x < width - 1)
@@ -564,22 +551,19 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
{
ny = c->y - 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
ny = c->y;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
if (c->y < height - 1)
{
ny = c->y - 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
}
nx = c->x;
@@ -587,17 +571,15 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
{
ny = c->y - 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
if (c->y < height - 1)
{
ny = c->y + 1;
if (mask[nx + ny * width] == 0.0 &&
- distmap[nx + ny * width] > distmap[c->x + c->y * width] &&
- distmap[nx + ny * width] < c->radius)
- line_art_queue_pixel (queue, nx, ny, c->radius, c->level + 1);
+ distmap[nx + ny * width] > distmap[c->x + c->y * width])
+ line_art_queue_pixel (queue, nx, ny, c->level + 1);
}
}
g_free (c);
@@ -613,7 +595,6 @@ gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
{
g_object_unref (src_buffer);
g_free (distmap);
- g_free (thickmap);
}
}
@@ -1185,15 +1166,13 @@ line_art_data_free (LineArtData *data)
static GimpPickableLineArtAsyncResult *
line_art_result_new (GeglBuffer *line_art,
- gfloat *distmap,
- gfloat *thickmap)
+ gfloat *distmap)
{
GimpPickableLineArtAsyncResult *data;
data = g_slice_new (GimpPickableLineArtAsyncResult);
data->line_art = line_art;
data->distmap = distmap;
- data->thickmap = thickmap;
return data;
}
@@ -1203,7 +1182,6 @@ line_art_result_free (GimpPickableLineArtAsyncResult *data)
{
g_object_unref (data->line_art);
g_clear_pointer (&data->distmap, g_free);
- g_clear_pointer (&data->thickmap, g_free);
g_slice_free (GimpPickableLineArtAsyncResult, data);
}
@@ -1212,14 +1190,12 @@ static void
line_art_queue_pixel (GQueue *queue,
gint x,
gint y,
- gfloat radius,
gint level)
{
BorderPixel *p = g_new (BorderPixel, 1);
p->x = x;
p->y = y;
- p->radius = radius;
p->level = level;
g_queue_push_head (queue, p);
diff --git a/app/core/gimppickable-contiguous-region.h b/app/core/gimppickable-contiguous-region.h
index 8fd50ec80a..2431ebf363 100644
--- a/app/core/gimppickable-contiguous-region.h
+++ b/app/core/gimppickable-contiguous-region.h
@@ -22,14 +22,12 @@ typedef struct
{
GeglBuffer *line_art;
gfloat *distmap;
- gfloat *thickmap;
} GimpPickableLineArtAsyncResult;
GeglBuffer * gimp_pickable_contiguous_region_prepare_line_art (GimpPickable *pickable,
gboolean select_transparent,
gfloat stroke_threshold,
- gfloat **distmap,
- gfloat **thickmap);
+ gfloat **distmap);
GimpAsync * gimp_pickable_contiguous_region_prepare_line_art_async (GimpPickable *pickable,
gboolean select_transparent,
gfloat stroke_threshold,
@@ -38,7 +36,6 @@ GimpAsync * gimp_pickable_contiguous_region_prepare_line_art_async (GimpPickabl
GeglBuffer * gimp_pickable_contiguous_region_by_seed (GimpPickable *pickable,
GeglBuffer *line_art,
gfloat *line_art_distmap,
- gfloat *line_art_thickmap,
gboolean antialias,
gfloat threshold,
gboolean select_transparent,
diff --git a/app/pdb/drawable-edit-cmds.c b/app/pdb/drawable-edit-cmds.c
index bc3f1095fd..dde18dc373 100644
--- a/app/pdb/drawable-edit-cmds.c
+++ b/app/pdb/drawable-edit-cmds.c
@@ -165,7 +165,7 @@ drawable_edit_bucket_fill_invoker (GimpProcedure *procedure,
if (gimp_fill_options_set_by_fill_type (options, context,
fill_type, error))
{
- gimp_drawable_bucket_fill (drawable, NULL, NULL, NULL, options,
+ gimp_drawable_bucket_fill (drawable, NULL, NULL, options,
GIMP_PDB_CONTEXT (context)->sample_transparent,
GIMP_PDB_CONTEXT (context)->sample_criterion,
GIMP_PDB_CONTEXT (context)->sample_threshold,
diff --git a/app/tools/gimpbucketfilltool.c b/app/tools/gimpbucketfilltool.c
index 599d538e5b..0c556489ae 100644
--- a/app/tools/gimpbucketfilltool.c
+++ b/app/tools/gimpbucketfilltool.c
@@ -62,7 +62,6 @@ struct _GimpBucketFillToolPrivate
GimpAsync *async;
GeglBuffer *line_art;
gfloat *distmap;
- gfloat *thickmap;
GWeakRef cached_image;
GWeakRef cached_drawable;
@@ -246,7 +245,6 @@ gimp_bucket_fill_tool_finalize (GObject *object)
g_clear_object (&tool->priv->line_art);
g_clear_pointer (&tool->priv->distmap, g_free);
- g_clear_pointer (&tool->priv->thickmap, g_free);
if (image)
{
@@ -368,7 +366,6 @@ gimp_bucket_fill_tool_preview (GimpBucketFillTool *tool,
GeglBuffer *fill = NULL;
GeglBuffer *line_art = NULL;
gfloat *distmap = NULL;
- gfloat *thickmap = NULL;
gdouble x = coords->x;
gdouble y = coords->y;
@@ -386,11 +383,10 @@ gimp_bucket_fill_tool_preview (GimpBucketFillTool *tool,
{
line_art = g_object_ref (tool->priv->line_art);
distmap = tool->priv->distmap;
- thickmap = tool->priv->thickmap;
}
fill = gimp_drawable_get_bucket_fill_buffer (drawable,
- line_art, distmap, thickmap,
+ line_art, distmap,
fill_options,
options->fill_transparent,
options->fill_criterion,
@@ -714,9 +710,7 @@ gimp_bucket_fill_compute_line_art_cb (GimpAsync *async,
tool->priv->line_art = g_object_ref (result->line_art);
tool->priv->distmap = result->distmap;
- tool->priv->thickmap = result->thickmap;
result->distmap = NULL;
- result->thickmap = NULL;
}
g_clear_object (&tool->priv->async);
@@ -741,7 +735,6 @@ gimp_bucket_fill_compute_line_art (GimpBucketFillTool *tool)
g_clear_object (&tool->priv->line_art);
g_clear_pointer (&tool->priv->distmap, g_free);
- g_clear_pointer (&tool->priv->thickmap, g_free);
if (options->fill_criterion == GIMP_SELECT_CRITERION_LINE_ART)
{
@@ -847,7 +840,6 @@ gimp_bucket_fill_tool_image_changed (GimpContext *context,
g_clear_object (&tool->priv->line_art);
g_clear_pointer (&tool->priv->distmap, g_free);
- g_clear_pointer (&tool->priv->thickmap, g_free);
if (prev_image)
{
diff --git a/app/tools/gimpfuzzyselecttool.c b/app/tools/gimpfuzzyselecttool.c
index 4647f46972..63cbaed46c 100644
--- a/app/tools/gimpfuzzyselecttool.c
+++ b/app/tools/gimpfuzzyselecttool.c
@@ -122,7 +122,7 @@ gimp_fuzzy_select_tool_get_mask (GimpRegionSelectTool *region_select,
pickable = GIMP_PICKABLE (image);
}
- return gimp_pickable_contiguous_region_by_seed (pickable, NULL, NULL, NULL,
+ return gimp_pickable_contiguous_region_by_seed (pickable, NULL, NULL,
sel_options->antialias,
options->threshold / 255.0,
options->select_transparent,
diff --git a/pdb/groups/drawable_edit.pdb b/pdb/groups/drawable_edit.pdb
index 87dcba1ffa..3174bfa90f 100644
--- a/pdb/groups/drawable_edit.pdb
+++ b/pdb/groups/drawable_edit.pdb
@@ -169,7 +169,7 @@ HELP
if (gimp_fill_options_set_by_fill_type (options, context,
fill_type, error))
{
- gimp_drawable_bucket_fill (drawable, NULL, NULL, NULL, options,
+ gimp_drawable_bucket_fill (drawable, NULL, NULL, options,
GIMP_PDB_CONTEXT (context)->sample_transparent,
GIMP_PDB_CONTEXT (context)->sample_criterion,
GIMP_PDB_CONTEXT (context)->sample_threshold,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]