Resolved by @Nizhile
In 4bdb8792, a patch porting chrome-it.scm to not rely on
removed brushes included an apparent typo. A decimal
was left off a curve point, resulting in incorrect outcomes.
This patch by @Nizhile fixes the problem.
Not sure what I had in mind with the class method copy() in libgimp
GimpLayer. The core duplicate code already takes care of returning an
object of the right type. Also the GimpTextLayer implementation was not
a perfect copy (only text, font and font size were copied). Now it is
because, again, core has all the duplication code necessary.
Finally this makes this function visible to PDB, hence Script-Fu, again.
The libgimp wrapper was just calling the PDB procedure. Get rid of the
wrapper and make the PDB proc public. Also reorder the name argument to
be in the second place, just like it was for the wrapper.
For plug-in writers reference, these are equivalent:
- (plug-in-gauss RUN-NONINTERACTIVE image layer hblur vblur 0)
+ (gimp-drawable-merge-new-filter layer "gegl:gaussian-blur" 0 LAYER-MODE-REPLACE 1.0 "std-dev-x" hblur "std-dev-y" vblur "filter" "auto")
Note: the method arg { AUTO (0), FIR (1), IIR (2) } is transformed into
a string in lowercase. E.g. 1 becomes "fir".
At first, I was a bit annoyed by the wrap_in_gamma_cast() call which
converts the buffer to linear first, but looking at "gegl:gaussian-blur"
implementation, it is just a meta op to 2 "gegl:gblur-1d" which anyway
sets input format (to various formats, but always linear).
This legacy cast code must be a remnant from older times where it might
have been needed. Clearly it's not anymore.
Currently there are 5 separate plug-in-gauss
functions. IIR2 and RLE2 are not used, and
IIR and RLE are identical to each other.
Additionally, they all call a separate
gaussian_blur () function which multiples
two parameters by 0.32 to convert to the
actual GEGL operation.
This patch removes all functions except
for plug-in-gauss. It converts each
existing script that used one of the other
variants to use plug-in-gauss, and
multiples the coefficients by 0.32 so that
plug-in-gauss behaves the same as calling
gegl:gaussian-blur with a C plug-in.
There also exists a plug_in_pixelize2 ()
function in the PDB which allows the user to set
both the pixel width and height.
This patch converts this to become
plug_in_pixelize (), and removes the older
function which used a single width
parameter for both values.
Mostly one word substitutions.
A few function definitions were moved to the scope of
a single script that used them.
Those functions won't be available to third party scripts
except now by cut and paste.
For major release 3.0.
Prior commits porting these scripts to v3 dialect
incorrectly compared SF-TOGGLE args to #t and #f.
They are bound to TRUE and FALSE, 1 and 0,
before choice of dialect can take effect.
No intended change to function.
Style changes for easier reading.
Use v3 binding of PDB returns (elide many car), TRUE=>#t, etc.
Also condense trailing right parens to one line
Was "GRAY" without alpha.
Now "*" i.e. any image mode, w or w/o alpha.
The effect is more or less the same,
and should be exactly the same if the user submits a GRAY.
When the user does not choose a file of a secondary image,
use a copy of the primary image as the secondary image.
Rather than throw an error.
The filter still has effects, if not quite the same as when user
chooses a secondary image that is not the primary image.
Now use gimp-resource-delete
Drive-by fix of bad call to gimp-context-set-pattern.
Fixes other calls to gimp-font-delete, etc. in a test script.
Partly fixes 9867.
Commit a6aba929 deleted the old functions.
Misc drive-by fixes for gtk_adjustment step not < pages
Issue #8155 discusses alternative fixes, convenience functions for compatibility in ScriptFu.
There is one compat function defined already in ScriptFu, temporarily: gimp-image-get-active-drawable
which was written so that testing clothify-v3.scm could proceed.
Why: in v3 the signature for gimp-edit-foo PDB procedures changed to support multilayer selection.
This finishes the task for ScriptFu scripts in the GIMP repo.
This is not a complete list, since some calls were changed incidentally by prior commits.
You can grep for "edit-copy" etc. in script-fu/scripts to find instances.
This also makes incidental changes, to script calls to plug-in-tile,
which now also has a changed signature to support multilayer.
The changes are simple code transformations.
The changes to gimp-edit-paste calls are more complex,
a mixed bag of a few lines transformed to more lines.
I did not try to understand the larger logic of the changed plugins.
I did not test the changed plugins functionally.
I used a harness to call each changed plugin with improvised parameters,
only checking that the test plugin did not throw runtime errors,
not checking that they produced correct images.
As noted in the issue, this might be undone if the original signatures
for gimp-edit-foo are restored as convenience functions.
Since we renamed a bunch of functions for consistency (the like of
gimp_image_width() to gimp_image_get_width() and others), most Scheme
scripts ended up broken. This is a simple bash fix with `sed` to at
least take care of these simple renaming cases.
Many scripts are still broken for other reasons after our API evolution
(to be continued).
carve-it.scm, chrome-it.scm: apply slightly modified patch from Carol
Spears which replaces hardcoding round brush names by creating a brush
on the fly and setting its radius.
Also fixed both scripts to not use deprecated color API which is
even completely gone from master.
Remove the invert-linear and invert-non-linear variants and simply add
"gboolean linear" to gimp-drawable-invert. This should actually be an
enum but I didn't find a good name right now...
and add gimp_drawable_invert_linear(). Also, finally deprecate
gimp_invert() and port all its uses in plug-ins and scripts to
gimp_drawable_invert_non_linear() so the result is the same.
Original patch supplied by Nelson A. de Oliveira. Modified to not use the
-1 "insanity" for invalid/none layer ID's in scripts per IRC discussion.
Additional scripts were changed to not pass -1 to gimp-image-insert-layer.
gimp-item-to-selection does not seem to exist (in the PDB), so update to the
correct function gimp-image-select-item (which also takes the image as a
parameter).
Limit the result of the internal "highlights" routine to 100.0,
preventing invalid "gimp-color-balance" color parameters.
Also, replace some parameters with appropriate named constants.
2007-10-01 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/*.scm: use RUN-NONINTERACTIVE for
the
run-mode where 1 was used instead.
svn path=/trunk/; revision=23707
2006-10-20 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scheme-wrapper.c: Moved the MIN and MAX entries
for image size and resolution to script_constants structureas they
are not deprecated constants.
* plug-ins/script-fu/scripts/script-fu.init: Removed CR in line endings.
* plug-ins/script-fu/scripts/*.scm: Fixed a number of regressions that
snuck in during the last big update of the scripts. This update
reduces the number of differences to the original scripts (other than
formatting). Some additional formatting changes in a few scripts.
Updates to use colour names in register block where possible. Fixed a
bug in burn-in-anim.scm. Minor cleanup of font-map.scm. Simplified
the bug fix in tile-blur.scm.
2006-10-15 Kevin Cozens <kcozens@cvs.gnome.org>
With this commit we finally say goodbye to SIOD. This large set of
changes updates the Script-Fu plug-in to use the TinyScheme Scheme
interpreter. These changes originated with changes originally made
to Script-Fu which created Tiny-Fu (aka. the gimp-tiny-fu module).
* plug-ins/script-fu/Makefile.am
* plug-ins/script-fu/script-fu-console.c
* plug-ins/script-fu/script-fu-interface.c
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/script-fu-scripts.h
* plug-ins/script-fu/script-fu-server.c
* plug-ins/script-fu/script-fu-text-console.c
* plug-ins/script-fu/script-fu.c: Updated with the changes made to
these files as part of the work on the Tiny-Fu project.
* plug-ins/script-fu/scheme-wrapper.c
* plug-ins/script-fu/scheme-wrapper.h: Renamed from siod-wrapper.[ch]
and updated based on differences to ts-wrapper.[ch] from gimp-tiny-fu.
* plug-ins/script-fu/ftx/*
* plug-ins/script-fu/re/*
* plug-ins/script-fu/tinyscheme/*
* plug-ins/script-fu/scripts/script-fu.init
* plug-ins/script-fu/scripts/script-fu-compat.init
* plug-ins/script-fu/scripts/contactsheet.scm
* plug-ins/script-fu/scripts/script-fu-set-cmap.scm
* plug-ins/script-fu/scripts/script-fu-util-setpt.scm
* plug-ins/script-fu/scripts/ts-helloworld.scm: Added all of these
files and directories from Tiny-Fu. Updated the Makefile.am files
of ftx, re, and tinyscheme now they are in the GIMP source tree.
* plug-ins/script-fu/scripts/*.scm: All scripts have been updated as
needed to ensure they will work with the TinyScheme interpreter. Most
of the files have been reformatted making it easier to see the syntax
of Scheme and making them easier to read.
* plug-ins/script-fu/scripts/Makefile.am: Updated script file lists.
* plug-ins/script-fu/siod-wrapper.c
* plug-ins/script-fu/siod-wrapper.h
* plug-ins/script-fu/siod/*: Removed obsolete files.
* configure.in: Updated list of files in AC_CONFIG_FILES. Changed
--disable-script-fu to --without-script-fu which it should have
been when originally added.
* INSTALL: Updated to show change to --without-script-fu.
2006-10-05 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/*.scm: applied patch from Saul
Goode
with review and localisation of Script-Fu procedure blurbs
(bug #351283).
2006-06-08 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/script-fu-scripts.c
* plug-ins/script-fu/siod-wrapper.c: allow CSS color keywords to
be used in place of the '(r g b) color notation.
* plug-ins/script-fu/scripts/test-sphere.scm: documented this new
feature.
* plug-ins/script-fu/scripts/*.scm: replaced some colors with
color names.
2005-08-28 Kevin Cozens <kcozens@cvs.gnome.org>
* plug-ins/script-fu/scripts/chrome-it.scm: Removed extraneous -
in register block left when script was renamed.
* plug-ins/script-fu/scripts/text-circle.scm: Fixed minor errors
in comments.
2005-09-26 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scripts/carve-it.scm
* plug-ins/script-fu/scripts/chrome-it.scm: renamed to "Stencil Carve"
and "Stencil Chrome" and moved to Filters/Decor.
* plug-ins/script-fu/script-fu.c: don't register menu branches
"Filters/Selection" and "Filters/Decor/Stencil Ops".
2005-03-24 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/*.scm: don't mark menu branches for
translation; the translatable branch name is registered by the
Script-Fu extension.
2004-11-18 Michael Natterer <mitch@gimp.org>
Script-Fu string cleanup/simplification: apply the same fix for
menu path translation that was done for plug-ins a while ago.
* plug-ins/script-fu/script-fu.c (script_fu_auxillary_init): use
gimp_plugin_menu_register() on the "Refresh" temp_proc.
* plug-ins/script-fu/scripts/*.scm: ported all scripts to use
script-fu-menu-register and pass just the menu label in
script-fu-register. Cleaned up all register calls to share a
somewhat similar formatting.
2004-09-23 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/script-fu-interface.c: put the text view into
a scrolled window. Removed "changed" callbacks for GtkEntry and
GtkTextView. Instead retrieve the final string when the dialog is
confirmed.
* plug-ins/script-fu/scripts/carved-logo.scm
* plug-ins/script-fu/scripts/chrome-it.scm
* plug-ins/script-fu/scripts/crystal-logo.scm
* plug-ins/script-fu/scripts/sota-chrome-logo.scm: use
gimp-data-directory instead of the deprecated constant
gimp-data-dir.
* plug-ins/script-fu/scripts/mkbrush.scm: unmarked strings for
translation that I marked yesterday. Won't work unfortunately.
2004-09-22 Sven Neumann <sven@gimp.org>
Converted the first bunch of Script-Fu to the new context API:
* plug-ins/script-fu/scripts/[3a-c]*.scm: push and pop a context.
Removed code that used to restore the context values changed by
the scripts.
2004-03-13 Pedro Gimeno <pggimeno@wanadoo.es>
* plug-ins/script-fu/scripts/carve-it.scm
* plug-ins/script-fu/scripts/chrome-it.scm
* plug-ins/script-fu/scripts/crystal-logo.scm
* plug-ins/script-fu/scripts/sota-chrome-logo.scm: Fixed to avoid
pasting to a layer that was not added to any image. This was causing
the scripts to abort, because gimp-edit-paste is now failing in that
case.