2004-09-29 06:01:21 +08:00
|
|
|
/* LIBGIMP - The GIMP Library
|
|
|
|
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
|
|
|
|
*
|
|
|
|
* gimpbrush_pdb.c
|
|
|
|
*
|
2009-01-18 06:28:01 +08:00
|
|
|
* This library is free software: you can redistribute it and/or
|
2004-09-29 06:01:21 +08:00
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
2009-01-18 06:28:01 +08:00
|
|
|
* version 3 of the License, or (at your option) any later version.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
2009-01-18 06:28:01 +08:00
|
|
|
* License along with this library. If not, see
|
2018-07-12 05:27:07 +08:00
|
|
|
* <https://www.gnu.org/licenses/>.
|
2004-09-29 06:01:21 +08:00
|
|
|
*/
|
|
|
|
|
2007-01-09 18:52:47 +08:00
|
|
|
/* NOTE: This file is auto-generated by pdbgen.pl */
|
2004-09-29 06:01:21 +08:00
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
|
2022-03-28 21:13:17 +08:00
|
|
|
#include "stamp-pdbgen.h"
|
|
|
|
|
2004-09-29 06:01:21 +08:00
|
|
|
#include "gimp.h"
|
|
|
|
|
2010-07-07 17:43:10 +08:00
|
|
|
|
|
|
|
/**
|
2019-07-31 16:04:43 +08:00
|
|
|
* SECTION: gimpbrush
|
2010-07-07 17:43:10 +08:00
|
|
|
* @title: gimpbrush
|
2022-09-06 07:28:35 +08:00
|
|
|
* @short_description: Installable object used by painting and stroking tools.
|
2010-07-07 17:43:10 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Installable object used by painting and stroking tools.
|
2010-07-07 17:43:10 +08:00
|
|
|
**/
|
|
|
|
|
|
|
|
|
2004-09-29 06:01:21 +08:00
|
|
|
/**
|
|
|
|
* gimp_brush_new:
|
|
|
|
* @name: The requested name of the new brush.
|
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Create a new generated brush having default parameters.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Creates a new, parametric brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2023-07-11 22:13:36 +08:00
|
|
|
* Returns: (transfer none): The brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.2
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
GimpBrush *
|
2004-09-29 06:01:21 +08:00
|
|
|
gimp_brush_new (const gchar *name)
|
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
GimpBrush *brush = NULL;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
|
|
|
G_TYPE_STRING, name,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-new",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-09-04 07:49:35 +08:00
|
|
|
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
2022-09-06 07:28:35 +08:00
|
|
|
brush = GIMP_VALUES_GET_BRUSH (return_vals, 1);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return brush;
|
2004-09-29 06:01:21 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2023-05-31 22:12:04 +08:00
|
|
|
* gimp_brush_get_by_name:
|
|
|
|
* @name: The name of the brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Returns the brush with the given name.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2024-03-12 01:10:47 +08:00
|
|
|
* Return an existing brush having the given name. Returns %NULL when
|
|
|
|
* no brush exists of that name.
|
2023-07-11 22:13:36 +08:00
|
|
|
*
|
2024-03-12 01:10:47 +08:00
|
|
|
* Returns: (nullable) (transfer none): The brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Since: 3.0
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
GimpBrush *
|
2023-05-31 22:12:04 +08:00
|
|
|
gimp_brush_get_by_name (const gchar *name)
|
2004-09-29 06:01:21 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2023-05-31 22:12:04 +08:00
|
|
|
GimpBrush *brush = NULL;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2023-05-31 22:12:04 +08:00
|
|
|
G_TYPE_STRING, name,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-by-name",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-09-04 07:49:35 +08:00
|
|
|
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
2023-05-31 22:12:04 +08:00
|
|
|
brush = GIMP_VALUES_GET_BRUSH (return_vals, 1);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2023-05-31 22:12:04 +08:00
|
|
|
return brush;
|
2004-09-29 06:01:21 +08:00
|
|
|
}
|
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
/**
|
2023-05-31 22:12:04 +08:00
|
|
|
* gimp_brush_is_generated:
|
|
|
|
* @brush: The brush.
|
2022-09-06 07:28:35 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Whether the brush is generated (parametric versus raster).
|
2022-09-06 07:28:35 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Returns TRUE when brush is parametric.
|
2022-09-06 07:28:35 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Returns: TRUE if the brush is generated.
|
2022-09-06 07:28:35 +08:00
|
|
|
*
|
2023-05-31 22:12:04 +08:00
|
|
|
* Since: 2.4
|
2022-09-06 07:28:35 +08:00
|
|
|
**/
|
|
|
|
gboolean
|
2023-05-31 22:12:04 +08:00
|
|
|
gimp_brush_is_generated (GimpBrush *brush)
|
2022-09-06 07:28:35 +08:00
|
|
|
{
|
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2023-05-31 22:12:04 +08:00
|
|
|
gboolean generated = FALSE;
|
2022-09-06 07:28:35 +08:00
|
|
|
|
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2023-05-31 22:12:04 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2022-09-06 07:28:35 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-is-generated",
|
|
|
|
args);
|
2022-09-06 07:28:35 +08:00
|
|
|
gimp_value_array_unref (args);
|
|
|
|
|
|
|
|
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
2023-05-31 22:12:04 +08:00
|
|
|
generated = GIMP_VALUES_GET_BOOLEAN (return_vals, 1);
|
2022-09-06 07:28:35 +08:00
|
|
|
|
|
|
|
gimp_value_array_unref (return_vals);
|
|
|
|
|
2023-05-31 22:12:04 +08:00
|
|
|
return generated;
|
2022-09-06 07:28:35 +08:00
|
|
|
}
|
|
|
|
|
2004-09-29 06:01:21 +08:00
|
|
|
/**
|
|
|
|
* gimp_brush_get_info:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2019-08-01 04:51:35 +08:00
|
|
|
* @width: (out): The brush width.
|
|
|
|
* @height: (out): The brush height.
|
|
|
|
* @mask_bpp: (out): The brush mask bpp.
|
|
|
|
* @color_bpp: (out): The brush color bpp.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets information about the brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets information about the brush: brush extents (width and height),
|
|
|
|
* color depth and mask depth (bpp). The color bpp is zero when the
|
|
|
|
* brush is parametric versus raster.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.2
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2004-09-29 06:01:21 +08:00
|
|
|
gboolean
|
2022-09-06 07:28:35 +08:00
|
|
|
gimp_brush_get_info (GimpBrush *brush,
|
|
|
|
gint *width,
|
|
|
|
gint *height,
|
|
|
|
gint *mask_bpp,
|
|
|
|
gint *color_bpp)
|
2004-09-29 06:01:21 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2004-09-29 06:01:21 +08:00
|
|
|
gboolean success = TRUE;
|
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-info",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
|
|
|
*width = 0;
|
|
|
|
*height = 0;
|
2004-10-06 11:23:09 +08:00
|
|
|
*mask_bpp = 0;
|
|
|
|
*color_bpp = 0;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-09-04 07:49:35 +08:00
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
|
|
|
if (success)
|
|
|
|
{
|
2019-09-04 08:49:33 +08:00
|
|
|
*width = GIMP_VALUES_GET_INT (return_vals, 1);
|
|
|
|
*height = GIMP_VALUES_GET_INT (return_vals, 2);
|
|
|
|
*mask_bpp = GIMP_VALUES_GET_INT (return_vals, 3);
|
|
|
|
*color_bpp = GIMP_VALUES_GET_INT (return_vals, 4);
|
2004-09-29 06:01:21 +08:00
|
|
|
}
|
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
|
|
|
|
2004-10-06 07:28:17 +08:00
|
|
|
/**
|
libgimp, pdb: replacing gimp_brush_get_pixels() by gimp_brush_get_buffer()…
… and gimp_brush_get_mask().
gimp_brush_get_pixels() was a bit crappy, returning raw data with only
dimensions and bpp to go with (no color model/space, no bit depth…). So the
assumption is that we work with 8-bit per channel data, possibly with alpha
depending of number of channels as deduced from bpp, and very likely in sRGB
color space. It might be globally ok with many of the brush formats (and
historical brushes) but won't fare well as we improve brush capabilities.
- gimp_brush_get_pixels() is in fact made private.
- The 2 new functions are using this old PDB call _gimp_brush_get_pixels() to
construct buffers. This has some limitations, in particular that it returns
only 8-bit per channel sRGB data, but at least the signature won't change when
we will improve things in the future (so if some day, we pass fancy brushes in
high-bit depth, the method will stay the same).
- This new implementation also allows scaling down the brush (keeping aspect
ratio) which is useful when you need to fit a brush preview into a drawing
widget.
- Current implementation stores the buffers at native size in the libgimp's
GimpBrush object, hence save re-querying the core every time you need an
update. This can be improved as current implementation also means that you
don't get updates if the brush changed. This should handle most common use
cases for now, though.
- Also with this change, I move GimpBrush class implementation into its own
dedicated file.
2023-08-18 22:39:11 +08:00
|
|
|
* _gimp_brush_get_pixels:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2019-08-01 04:51:35 +08:00
|
|
|
* @width: (out): The brush width.
|
|
|
|
* @height: (out): The brush height.
|
|
|
|
* @mask_bpp: (out): The brush mask bpp.
|
2023-05-24 05:37:46 +08:00
|
|
|
* @mask_bytes: (out) (transfer full): The brush mask data.
|
2019-08-01 04:51:35 +08:00
|
|
|
* @color_bpp: (out): The brush color bpp.
|
2023-05-24 05:37:46 +08:00
|
|
|
* @color_bytes: (out) (transfer full): The brush color data.
|
2004-10-06 07:28:17 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets information about the brush.
|
2004-10-06 07:28:17 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets information about the brush: the brush extents (width and
|
|
|
|
* height) and its pixels data. The color bpp is zero and pixels empty
|
|
|
|
* when the brush is parametric versus raster.
|
2004-10-06 07:28:17 +08:00
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.2
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2004-10-06 07:28:17 +08:00
|
|
|
gboolean
|
libgimp, pdb: replacing gimp_brush_get_pixels() by gimp_brush_get_buffer()…
… and gimp_brush_get_mask().
gimp_brush_get_pixels() was a bit crappy, returning raw data with only
dimensions and bpp to go with (no color model/space, no bit depth…). So the
assumption is that we work with 8-bit per channel data, possibly with alpha
depending of number of channels as deduced from bpp, and very likely in sRGB
color space. It might be globally ok with many of the brush formats (and
historical brushes) but won't fare well as we improve brush capabilities.
- gimp_brush_get_pixels() is in fact made private.
- The 2 new functions are using this old PDB call _gimp_brush_get_pixels() to
construct buffers. This has some limitations, in particular that it returns
only 8-bit per channel sRGB data, but at least the signature won't change when
we will improve things in the future (so if some day, we pass fancy brushes in
high-bit depth, the method will stay the same).
- This new implementation also allows scaling down the brush (keeping aspect
ratio) which is useful when you need to fit a brush preview into a drawing
widget.
- Current implementation stores the buffers at native size in the libgimp's
GimpBrush object, hence save re-querying the core every time you need an
update. This can be improved as current implementation also means that you
don't get updates if the brush changed. This should handle most common use
cases for now, though.
- Also with this change, I move GimpBrush class implementation into its own
dedicated file.
2023-08-18 22:39:11 +08:00
|
|
|
_gimp_brush_get_pixels (GimpBrush *brush,
|
|
|
|
gint *width,
|
|
|
|
gint *height,
|
|
|
|
gint *mask_bpp,
|
|
|
|
GBytes **mask_bytes,
|
|
|
|
gint *color_bpp,
|
|
|
|
GBytes **color_bytes)
|
2004-10-06 07:28:17 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2004-10-06 07:28:17 +08:00
|
|
|
gboolean success = TRUE;
|
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-pixels",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-10-06 07:28:17 +08:00
|
|
|
|
|
|
|
*width = 0;
|
|
|
|
*height = 0;
|
2004-10-06 11:23:09 +08:00
|
|
|
*mask_bpp = 0;
|
2004-10-06 07:28:17 +08:00
|
|
|
*mask_bytes = NULL;
|
2004-10-06 11:23:09 +08:00
|
|
|
*color_bpp = 0;
|
|
|
|
*color_bytes = NULL;
|
2004-10-06 07:28:17 +08:00
|
|
|
|
2019-09-04 07:49:35 +08:00
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
2004-10-06 07:28:17 +08:00
|
|
|
|
|
|
|
if (success)
|
|
|
|
{
|
2019-09-04 08:49:33 +08:00
|
|
|
*width = GIMP_VALUES_GET_INT (return_vals, 1);
|
|
|
|
*height = GIMP_VALUES_GET_INT (return_vals, 2);
|
|
|
|
*mask_bpp = GIMP_VALUES_GET_INT (return_vals, 3);
|
2023-05-24 05:37:46 +08:00
|
|
|
*mask_bytes = GIMP_VALUES_DUP_BYTES (return_vals, 4);
|
|
|
|
*color_bpp = GIMP_VALUES_GET_INT (return_vals, 5);
|
|
|
|
*color_bytes = GIMP_VALUES_DUP_BYTES (return_vals, 6);
|
2004-10-06 07:28:17 +08:00
|
|
|
}
|
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-10-06 07:28:17 +08:00
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
|
|
|
|
2004-09-29 06:01:21 +08:00
|
|
|
/**
|
|
|
|
* gimp_brush_get_spacing:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the brush spacing, the stamping frequency.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns the spacing setting for the brush. Spacing is an integer
|
|
|
|
* between 0 and 1000 which represents a percentage of the maximum of
|
|
|
|
* the width and height of the mask. Both parametric and raster brushes
|
|
|
|
* have a spacing.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: The brush spacing.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.2
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gint
|
|
|
|
gimp_brush_get_spacing (GimpBrush *brush)
|
2004-09-29 06:01:21 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gint spacing = 0;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-spacing",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS)
|
|
|
|
spacing = GIMP_VALUES_GET_INT (return_vals, 1);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return spacing;
|
2004-09-29 06:01:21 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* gimp_brush_set_spacing:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
* @spacing: The brush spacing.
|
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the brush spacing.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Set the spacing for the brush. The spacing must be an integer
|
|
|
|
* between 0 and 1000. Both parametric and raster brushes have a
|
|
|
|
* spacing. Returns an error when the brush is not editable. Create a
|
|
|
|
* new or copied brush or to get an editable brush.
|
2004-09-29 06:01:21 +08:00
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2004-09-29 06:01:21 +08:00
|
|
|
gboolean
|
2022-09-06 07:28:35 +08:00
|
|
|
gimp_brush_set_spacing (GimpBrush *brush,
|
|
|
|
gint spacing)
|
2004-09-29 06:01:21 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2004-09-29 06:01:21 +08:00
|
|
|
gboolean success = TRUE;
|
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-15 20:04:56 +08:00
|
|
|
G_TYPE_INT, spacing,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-spacing",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-09-04 07:49:35 +08:00
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
2004-09-29 06:01:21 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-09-29 06:01:21 +08:00
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
2004-12-31 07:28:38 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* gimp_brush_get_shape:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @shape: (out): The brush shape.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the shape of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the shape of a generated brush. Returns an error when called
|
|
|
|
* for a non-parametric brush. The choices for shape are Circle
|
|
|
|
* (GIMP_BRUSH_GENERATED_CIRCLE), Square (GIMP_BRUSH_GENERATED_SQUARE),
|
|
|
|
* and Diamond (GIMP_BRUSH_GENERATED_DIAMOND). Other shapes might be
|
|
|
|
* added in the future.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_shape (GimpBrush *brush,
|
|
|
|
GimpBrushGeneratedShape *shape)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-shape",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*shape = 0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*shape = GIMP_VALUES_GET_ENUM (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_set_shape:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2008-02-08 06:04:27 +08:00
|
|
|
* @shape_in: The brush shape.
|
2022-09-06 07:28:35 +08:00
|
|
|
* @shape_out: (out): The brush shape actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the shape of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the shape of a generated brush. Returns an error when brush is
|
|
|
|
* non-parametric or not editable. The choices for shape are Circle
|
|
|
|
* (GIMP_BRUSH_GENERATED_CIRCLE), Square (GIMP_BRUSH_GENERATED_SQUARE),
|
|
|
|
* and Diamond (GIMP_BRUSH_GENERATED_DIAMOND).
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_shape (GimpBrush *brush,
|
|
|
|
GimpBrushGeneratedShape shape_in,
|
|
|
|
GimpBrushGeneratedShape *shape_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-08 19:01:50 +08:00
|
|
|
GIMP_TYPE_BRUSH_GENERATED_SHAPE, shape_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-shape",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*shape_out = 0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*shape_out = GIMP_VALUES_GET_ENUM (return_vals, 1);
|
2019-07-30 16:51:16 +08:00
|
|
|
|
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_get_radius:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @radius: (out): The radius of the brush in pixels.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the radius of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the radius of a generated brush. Returns an error when called
|
|
|
|
* for a non-parametric brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_radius (GimpBrush *brush,
|
|
|
|
gdouble *radius)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-radius",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*radius = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*radius = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_set_radius:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2015-11-03 00:15:13 +08:00
|
|
|
* @radius_in: The desired brush radius in pixel.
|
2022-09-06 07:28:35 +08:00
|
|
|
* @radius_out: (out): The brush radius actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the radius of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the radius for a generated brush. Clamps radius to [0.0,
|
|
|
|
* 32767.0]. Returns the clamped value. Returns an error when brush is
|
|
|
|
* non-parametric or not editable.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_radius (GimpBrush *brush,
|
|
|
|
gdouble radius_in,
|
|
|
|
gdouble *radius_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-08 19:01:50 +08:00
|
|
|
G_TYPE_DOUBLE, radius_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-radius",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*radius_out = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*radius_out = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_get_spikes:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @spikes: (out): The number of spikes on the brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the number of spikes for a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the number of spikes for a generated brush. Returns an error
|
|
|
|
* when called for a non-parametric brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_spikes (GimpBrush *brush,
|
|
|
|
gint *spikes)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-spikes",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*spikes = 0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*spikes = GIMP_VALUES_GET_INT (return_vals, 1);
|
2019-07-30 16:51:16 +08:00
|
|
|
|
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_set_spikes:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2008-02-08 06:04:27 +08:00
|
|
|
* @spikes_in: The desired number of spikes.
|
2022-09-06 07:28:35 +08:00
|
|
|
* @spikes_out: (out): The number of spikes actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the number of spikes for a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the number of spikes for a generated brush. Clamps spikes to
|
|
|
|
* [2,20]. Returns the clamped value. Returns an error when brush is
|
|
|
|
* non-parametric or not editable.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_spikes (GimpBrush *brush,
|
|
|
|
gint spikes_in,
|
|
|
|
gint *spikes_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-15 20:04:56 +08:00
|
|
|
G_TYPE_INT, spikes_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-spikes",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*spikes_out = 0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*spikes_out = GIMP_VALUES_GET_INT (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_get_hardness:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @hardness: (out): The hardness of the brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the hardness of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the hardness of a generated brush. The hardness of a brush is
|
|
|
|
* the amount its intensity fades at the outside edge, as a float
|
|
|
|
* between 0.0 and 1.0. Returns an error when called for a
|
|
|
|
* non-parametric brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_hardness (GimpBrush *brush,
|
|
|
|
gdouble *hardness)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-hardness",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*hardness = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*hardness = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_set_hardness:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2008-02-08 06:04:27 +08:00
|
|
|
* @hardness_in: The desired brush hardness.
|
2022-09-06 07:28:35 +08:00
|
|
|
* @hardness_out: (out): The brush hardness actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the hardness of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the hardness for a generated brush. Clamps hardness to [0.0,
|
|
|
|
* 1.0]. Returns the clamped value. Returns an error when brush is
|
|
|
|
* non-parametric or not editable.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_hardness (GimpBrush *brush,
|
|
|
|
gdouble hardness_in,
|
|
|
|
gdouble *hardness_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-08 19:01:50 +08:00
|
|
|
G_TYPE_DOUBLE, hardness_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-hardness",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*hardness_out = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*hardness_out = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2019-07-30 16:51:16 +08:00
|
|
|
|
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_get_aspect_ratio:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @aspect_ratio: (out): The aspect ratio of the brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the aspect ratio of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the aspect ratio of a generated brush. Returns an error when
|
|
|
|
* called for a non-parametric brush. The aspect ratio is a float
|
|
|
|
* between 0.0 and 1000.0.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_aspect_ratio (GimpBrush *brush,
|
|
|
|
gdouble *aspect_ratio)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-aspect-ratio",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*aspect_ratio = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*aspect_ratio = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_set_aspect_ratio:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
2008-02-08 06:04:27 +08:00
|
|
|
* @aspect_ratio_in: The desired brush aspect ratio.
|
2022-09-06 07:28:35 +08:00
|
|
|
* @aspect_ratio_out: (out): The brush aspect ratio actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the aspect ratio of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the aspect ratio for a generated brush. Clamps aspect ratio to
|
|
|
|
* [0.0, 1000.0]. Returns the clamped value. Returns an error when
|
|
|
|
* brush is non-parametric or not editable.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_aspect_ratio (GimpBrush *brush,
|
|
|
|
gdouble aspect_ratio_in,
|
|
|
|
gdouble *aspect_ratio_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-08 19:01:50 +08:00
|
|
|
G_TYPE_DOUBLE, aspect_ratio_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-aspect-ratio",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*aspect_ratio_out = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*aspect_ratio_out = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2008-02-08 06:04:27 +08:00
|
|
|
* gimp_brush_get_angle:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @angle: (out): The rotation angle of the brush in degree.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Gets the rotation angle of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Gets the angle of rotation for a generated brush. Returns an error
|
|
|
|
* when called for a non-parametric brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_get_angle (GimpBrush *brush,
|
|
|
|
gdouble *angle)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-get-angle",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*angle = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*angle = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2019-07-30 16:51:16 +08:00
|
|
|
|
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* gimp_brush_set_angle:
|
2022-09-06 07:28:35 +08:00
|
|
|
* @brush: The brush.
|
|
|
|
* @angle_in: The desired brush rotation angle in degrees.
|
|
|
|
* @angle_out: (out): The brush rotation angle actually assigned.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-11-03 00:15:13 +08:00
|
|
|
* Sets the rotation angle of a generated brush.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Sets the rotation angle for a generated brush. Sets the angle modulo
|
|
|
|
* 180, in the range [-180.0, 180.0]. Returns the clamped value.
|
|
|
|
* Returns an error when brush is non-parametric or not editable.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2022-09-06 07:28:35 +08:00
|
|
|
* Returns: TRUE on success.
|
2004-12-31 07:28:38 +08:00
|
|
|
*
|
2015-06-01 03:18:09 +08:00
|
|
|
* Since: 2.4
|
2010-09-16 04:07:36 +08:00
|
|
|
**/
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean
|
|
|
|
gimp_brush_set_angle (GimpBrush *brush,
|
|
|
|
gdouble angle_in,
|
|
|
|
gdouble *angle_out)
|
2004-12-31 07:28:38 +08:00
|
|
|
{
|
2019-07-30 16:51:16 +08:00
|
|
|
GimpValueArray *args;
|
|
|
|
GimpValueArray *return_vals;
|
2022-09-06 07:28:35 +08:00
|
|
|
gboolean success = TRUE;
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-08-08 19:01:50 +08:00
|
|
|
args = gimp_value_array_new_from_types (NULL,
|
2022-09-06 07:28:35 +08:00
|
|
|
GIMP_TYPE_BRUSH, brush,
|
2019-08-08 19:01:50 +08:00
|
|
|
G_TYPE_DOUBLE, angle_in,
|
2019-07-30 16:51:16 +08:00
|
|
|
G_TYPE_NONE);
|
|
|
|
|
2023-10-17 04:07:55 +08:00
|
|
|
return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (),
|
|
|
|
"gimp-brush-set-angle",
|
|
|
|
args);
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (args);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
*angle_out = 0.0;
|
|
|
|
|
|
|
|
success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
|
|
|
*angle_out = GIMP_VALUES_GET_DOUBLE (return_vals, 1);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2019-07-30 16:51:16 +08:00
|
|
|
gimp_value_array_unref (return_vals);
|
2004-12-31 07:28:38 +08:00
|
|
|
|
2022-09-06 07:28:35 +08:00
|
|
|
return success;
|
2004-12-31 07:28:38 +08:00
|
|
|
}
|