Updated with upstream update
This commit is contained in:
@ -35,11 +35,15 @@
|
||||
#include "core/pikabrush.h"
|
||||
#include "core/pikabrush-load.h"
|
||||
#include "core/pikabrush-private.h"
|
||||
#include "core/pikacontainer.h"
|
||||
#include "core/pikadrawable.h"
|
||||
#include "core/pikaimage.h"
|
||||
#include "core/pikalayer-new.h"
|
||||
#include "core/pikaimage-merge.h"
|
||||
#include "core/pikaimage-new.h"
|
||||
#include "core/pikaimage-resize.h"
|
||||
#include "core/pikalayer-new.h"
|
||||
#include "core/pikaparamspecs.h"
|
||||
#include "core/pikapickable.h"
|
||||
#include "core/pikatempbuf.h"
|
||||
|
||||
#include "pdb/pikaprocedure.h"
|
||||
@ -51,12 +55,14 @@
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static PikaImage * file_gbr_brush_to_image (Pika *pika,
|
||||
PikaBrush *brush);
|
||||
static PikaBrush * file_gbr_image_to_brush (PikaImage *image,
|
||||
PikaDrawable *drawable,
|
||||
const gchar *name,
|
||||
gdouble spacing);
|
||||
static PikaImage * file_gbr_brush_to_image (Pika *pika,
|
||||
PikaBrush *brush);
|
||||
static PikaBrush * file_gbr_image_to_brush (PikaImage *image,
|
||||
PikaContext *context,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
const gchar *name,
|
||||
gdouble spacing);
|
||||
|
||||
|
||||
/* public functions */
|
||||
@ -119,24 +125,26 @@ file_gbr_save_invoker (PikaProcedure *procedure,
|
||||
const PikaValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
PikaValueArray *return_vals;
|
||||
PikaImage *image;
|
||||
PikaDrawable *drawable;
|
||||
PikaBrush *brush;
|
||||
const gchar *name;
|
||||
GFile *file;
|
||||
gint spacing;
|
||||
gboolean success;
|
||||
PikaValueArray *return_vals;
|
||||
PikaImage *image;
|
||||
PikaDrawable **drawables;
|
||||
gint n_drawables;
|
||||
PikaBrush *brush;
|
||||
const gchar *name;
|
||||
GFile *file;
|
||||
gint spacing;
|
||||
gboolean success;
|
||||
|
||||
pika_set_busy (pika);
|
||||
|
||||
image = g_value_get_object (pika_value_array_index (args, 1));
|
||||
drawable = g_value_get_object (pika_value_array_index (args, 2));
|
||||
file = g_value_get_object (pika_value_array_index (args, 3));
|
||||
spacing = g_value_get_int (pika_value_array_index (args, 4));
|
||||
name = g_value_get_string (pika_value_array_index (args, 5));
|
||||
image = g_value_get_object (pika_value_array_index (args, 1));
|
||||
n_drawables = g_value_get_int (pika_value_array_index (args, 2));
|
||||
drawables = (PikaDrawable **) pika_value_get_object_array (pika_value_array_index (args, 3));
|
||||
file = g_value_get_object (pika_value_array_index (args, 4));
|
||||
spacing = g_value_get_int (pika_value_array_index (args, 5));
|
||||
name = g_value_get_string (pika_value_array_index (args, 6));
|
||||
|
||||
brush = file_gbr_image_to_brush (image, drawable, name, spacing);
|
||||
brush = file_gbr_image_to_brush (image, context, n_drawables, drawables, name, spacing);
|
||||
|
||||
pika_data_set_file (PIKA_DATA (brush), file, TRUE, TRUE);
|
||||
|
||||
@ -417,15 +425,49 @@ file_gbr_brush_to_image (Pika *pika,
|
||||
}
|
||||
|
||||
static PikaBrush *
|
||||
file_gbr_image_to_brush (PikaImage *image,
|
||||
PikaDrawable *drawable,
|
||||
const gchar *name,
|
||||
gdouble spacing)
|
||||
file_gbr_image_to_brush (PikaImage *image,
|
||||
PikaContext *context,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
const gchar *name,
|
||||
gdouble spacing)
|
||||
{
|
||||
gint width = pika_item_get_width (PIKA_ITEM (drawable));
|
||||
gint height = pika_item_get_height (PIKA_ITEM (drawable));
|
||||
PikaBrush *brush;
|
||||
PikaImage *subimage = NULL;
|
||||
PikaDrawable *drawable;
|
||||
gint width;
|
||||
gint height;
|
||||
|
||||
return file_gbr_drawable_to_brush (drawable,
|
||||
GEGL_RECTANGLE (0, 0, width, height),
|
||||
name, spacing);
|
||||
g_return_val_if_fail (n_drawables > 0, NULL);
|
||||
g_return_val_if_fail (drawables != NULL, NULL);
|
||||
|
||||
if (n_drawables > 1)
|
||||
{
|
||||
GList *drawable_list = NULL;
|
||||
|
||||
for (gint i = 0; i < n_drawables; i++)
|
||||
drawable_list = g_list_prepend (drawable_list, drawables[i]);
|
||||
|
||||
subimage = pika_image_new_from_drawables (image->pika, drawable_list, FALSE, FALSE);
|
||||
g_list_free (drawable_list);
|
||||
pika_container_remove (image->pika->images, PIKA_OBJECT (subimage));
|
||||
pika_image_resize_to_layers (subimage, context,
|
||||
NULL, NULL, NULL, NULL, NULL);
|
||||
drawable = PIKA_DRAWABLE (pika_image_merge_visible_layers (subimage, context, PIKA_CLIP_TO_IMAGE,
|
||||
FALSE, TRUE, NULL));
|
||||
pika_pickable_flush (PIKA_PICKABLE (subimage));
|
||||
}
|
||||
else
|
||||
{
|
||||
drawable = drawables[0];
|
||||
}
|
||||
width = pika_item_get_width (PIKA_ITEM (drawable));
|
||||
height = pika_item_get_height (PIKA_ITEM (drawable));
|
||||
|
||||
brush = file_gbr_drawable_to_brush (drawable,
|
||||
GEGL_RECTANGLE (0, 0, width, height),
|
||||
name, spacing);
|
||||
g_clear_object (&subimage);
|
||||
|
||||
return brush;
|
||||
}
|
||||
|
@ -260,6 +260,7 @@ file_pat_image_to_pattern (PikaImage *image,
|
||||
gint height;
|
||||
|
||||
g_return_val_if_fail (n_drawables > 0, NULL);
|
||||
g_return_val_if_fail (drawables != NULL, NULL);
|
||||
|
||||
if (n_drawables > 1)
|
||||
{
|
||||
|
@ -87,7 +87,7 @@ file_data_init (Pika *pika)
|
||||
"1995-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -145,7 +145,7 @@ file_data_init (Pika *pika)
|
||||
"1995-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -158,12 +158,17 @@ file_data_init (Pika *pika)
|
||||
FALSE,
|
||||
PIKA_PARAM_READWRITE));
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_drawable ("drawable",
|
||||
"Drawable",
|
||||
"Active drawable "
|
||||
"of input image",
|
||||
FALSE,
|
||||
PIKA_PARAM_READWRITE));
|
||||
g_param_spec_int ("num-drawables",
|
||||
"Num drawables",
|
||||
"Number of drawables",
|
||||
1, G_MAXINT, 1,
|
||||
PIKA_PARAM_READWRITE));
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_object_array ("drawables",
|
||||
"Drawables",
|
||||
"Selected drawables",
|
||||
PIKA_TYPE_DRAWABLE,
|
||||
PIKA_PARAM_READWRITE | PIKA_PARAM_NO_VALIDATE));
|
||||
pika_procedure_add_argument (procedure,
|
||||
g_param_spec_object ("file",
|
||||
"File",
|
||||
@ -219,7 +224,7 @@ file_data_init (Pika *pika)
|
||||
"1999-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -277,7 +282,7 @@ file_data_init (Pika *pika)
|
||||
"1999-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -363,7 +368,7 @@ file_data_init (Pika *pika)
|
||||
"1997-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -420,7 +425,7 @@ file_data_init (Pika *pika)
|
||||
"1995-2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
@ -433,7 +438,7 @@ file_data_init (Pika *pika)
|
||||
FALSE,
|
||||
PIKA_PARAM_READWRITE));
|
||||
pika_procedure_add_argument (procedure,
|
||||
g_param_spec_int ("n-drawables",
|
||||
g_param_spec_int ("num-drawables",
|
||||
"Num drawables",
|
||||
"Number of drawables",
|
||||
1, G_MAXINT, 1,
|
||||
@ -491,7 +496,7 @@ file_data_init (Pika *pika)
|
||||
"Jehan", "Jehan", "2019");
|
||||
|
||||
pika_procedure_add_argument (procedure,
|
||||
pika_param_spec_enum ("dummy-param",
|
||||
pika_param_spec_enum ("run-mode",
|
||||
"Dummy Param",
|
||||
"Dummy parameter",
|
||||
PIKA_TYPE_RUN_MODE,
|
||||
|
Reference in New Issue
Block a user