[gimp] app: rename gimp_applicator_set_preview() to _set_crop(); add _get_crop()
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: rename gimp_applicator_set_preview() to _set_crop(); add _get_crop()
- Date: Sun, 30 Dec 2018 10:14:16 +0000 (UTC)
commit 7534ae53d69302ef6142a90c93cf45cc9b1257ba
Author: Ell <ell_se yahoo com>
Date: Sun Dec 30 03:33:56 2018 -0500
app: rename gimp_applicator_set_preview() to _set_crop(); add _get_crop()
We're going to use GimpApplicator's output crop for more than just
split previews. Rename gimp_applicator_set_preview() to
gimp_applicator_set_crop(), and add gimp_applicator_get_crop(),
which returns the output crop rectangle, or NULL if cropping is
disabled.
app/core/gimpdrawable-filters.c | 5 ++--
app/core/gimpdrawablefilter.c | 5 ++--
app/gegl/gimpapplicator.c | 54 +++++++++++++++++++++++------------------
app/gegl/gimpapplicator.h | 10 ++++----
4 files changed, 40 insertions(+), 34 deletions(-)
---
diff --git a/app/core/gimpdrawable-filters.c b/app/core/gimpdrawable-filters.c
index 25822e8614..2dad613110 100644
--- a/app/core/gimpdrawable-filters.c
+++ b/app/core/gimpdrawable-filters.c
@@ -150,9 +150,8 @@ gimp_drawable_merge_filter (GimpDrawable *drawable,
if (applicator)
{
- /* disable the preview crop */
- gimp_applicator_set_preview (applicator, FALSE,
- GEGL_RECTANGLE (0, 0, 0, 0));
+ /* disable the output crop */
+ gimp_applicator_set_crop (applicator, NULL);
/* the cache and its valid rectangles are the region that
* has already been processed by this applicator.
diff --git a/app/core/gimpdrawablefilter.c b/app/core/gimpdrawablefilter.c
index eb2fe1b367..02fefe0a11 100644
--- a/app/core/gimpdrawablefilter.c
+++ b/app/core/gimpdrawablefilter.c
@@ -577,9 +577,8 @@ gimp_drawable_filter_sync_preview (GimpDrawableFilter *filter,
filter->preview_position,
&new_rect);
- gimp_applicator_set_preview (filter->applicator,
- filter->preview_enabled,
- &new_rect);
+ gimp_applicator_set_crop (filter->applicator,
+ filter->preview_enabled ? &new_rect : NULL);
if (old_rect.x != new_rect.x ||
old_rect.y != new_rect.y ||
diff --git a/app/gegl/gimpapplicator.c b/app/gegl/gimpapplicator.c
index 7caf5fbebb..d1c85b50d0 100644
--- a/app/gegl/gimpapplicator.c
+++ b/app/gegl/gimpapplicator.c
@@ -183,7 +183,7 @@ gimp_applicator_new (GeglNode *parent)
"operation", "gegl:nop",
NULL);
- applicator->preview_crop_node =
+ applicator->crop_node =
gegl_node_new_child (applicator->node,
"operation", "gegl:nop",
NULL);
@@ -192,7 +192,7 @@ gimp_applicator_new (GeglNode *parent)
applicator->affect_node,
applicator->convert_format_node,
applicator->cache_node,
- applicator->preview_crop_node,
+ applicator->crop_node,
applicator->output_node,
NULL);
@@ -556,24 +556,19 @@ gimp_applicator_get_cache_buffer (GimpApplicator *applicator,
}
void
-gimp_applicator_set_preview (GimpApplicator *applicator,
- gboolean enable,
- const GeglRectangle *rect)
+gimp_applicator_set_crop (GimpApplicator *applicator,
+ const GeglRectangle *rect)
{
g_return_if_fail (GIMP_IS_APPLICATOR (applicator));
- g_return_if_fail (rect != NULL);
- if (applicator->preview_enabled != enable ||
- applicator->preview_rect.x != rect->x ||
- applicator->preview_rect.y != rect->y ||
- applicator->preview_rect.width != rect->width ||
- applicator->preview_rect.height != rect->height)
+ if (applicator->crop_enabled != (rect != NULL) ||
+ (rect && ! gegl_rectangle_equal (&applicator->crop_rect, rect)))
{
- if (enable)
+ if (rect)
{
- if (! applicator->preview_enabled)
+ if (! applicator->crop_enabled)
{
- gegl_node_set (applicator->preview_crop_node,
+ gegl_node_set (applicator->crop_node,
"operation", "gimp:compose-crop",
"x", rect->x,
"y", rect->y,
@@ -581,32 +576,45 @@ gimp_applicator_set_preview (GimpApplicator *applicator,
"height", rect->height,
NULL);
- gegl_node_connect_to (applicator->input_node, "output",
- applicator->preview_crop_node, "aux");
+ gegl_node_connect_to (applicator->input_node, "output",
+ applicator->crop_node, "aux");
}
else
{
- gegl_node_set (applicator->preview_crop_node,
+ gegl_node_set (applicator->crop_node,
"x", rect->x,
"y", rect->y,
"width", rect->width,
"height", rect->height,
NULL);
}
+
+ applicator->crop_enabled = TRUE;
+ applicator->crop_rect = *rect;
}
- else if (applicator->preview_enabled)
+ else
{
- gegl_node_disconnect (applicator->preview_crop_node, "aux");
- gegl_node_set (applicator->preview_crop_node,
+ gegl_node_disconnect (applicator->crop_node, "aux");
+ gegl_node_set (applicator->crop_node,
"operation", "gegl:nop",
NULL);
- }
- applicator->preview_enabled = enable;
- applicator->preview_rect = *rect;
+ applicator->crop_enabled = FALSE;
+ }
}
}
+const GeglRectangle *
+gimp_applicator_get_crop (GimpApplicator *applicator)
+{
+ g_return_val_if_fail (GIMP_IS_APPLICATOR (applicator), NULL);
+
+ if (applicator->crop_enabled)
+ return &applicator->crop_rect;
+
+ return NULL;
+}
+
void
gimp_applicator_blit (GimpApplicator *applicator,
const GeglRectangle *rect)
diff --git a/app/gegl/gimpapplicator.h b/app/gegl/gimpapplicator.h
index 675a750343..3c70944f2b 100644
--- a/app/gegl/gimpapplicator.h
+++ b/app/gegl/gimpapplicator.h
@@ -64,9 +64,9 @@ struct _GimpApplicator
gboolean cache_enabled;
GeglNode *cache_node;
- gboolean preview_enabled;
- GeglRectangle preview_rect;
- GeglNode *preview_crop_node;
+ gboolean crop_enabled;
+ GeglRectangle crop_rect;
+ GeglNode *crop_node;
GeglBuffer *src_buffer;
GeglNode *src_node;
@@ -128,9 +128,9 @@ GeglBuffer * gimp_applicator_get_cache_buffer (GimpApplicator *applicator
GeglRectangle **rectangles,
gint *n_rectangles);
-void gimp_applicator_set_preview (GimpApplicator *applicator,
- gboolean enable,
+void gimp_applicator_set_crop (GimpApplicator *applicator,
const GeglRectangle *rect);
+const GeglRectangle * gimp_applicator_get_crop (GimpApplicator *applicator);
void gimp_applicator_blit (GimpApplicator *applicator,
const GeglRectangle *rect);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]