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-noisify RUN-NONINTERACTIVE theImage mLayer TRUE r g b a)
+ (gimp-drawable-merge-new-filter mLayer "gegl:noise-rgb" 0 LAYER-MODE-REPLACE 1.0
+ "independent" TRUE "red" r "green" g "blue" b "alpha" a
+ "correlated" FALSE "seed" (msrg-rand) "linear" TRUE)
Notes:
* When "independent" is FALSE, then you only need to set "red" (which is
equivalent to a "value" field) and "alpha".
* Original plug-in was using the second value ('g', a.k.a. noise_2 in
the PDB args) as alpha when the source drawable was grayscale. This
logic is meaningless now. Just set "alpha".
* The PDB procedure was wrapping the operation between
"gegl:cast-format" nodes to cast the input buffer to linear. This is
useless as the "gegl:noise-rgb" has already a "linear" argument
(defaulting to TRUE, but I specify it explicitly in this commit, for
clarity) which requests linear input when set.
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.
For plug-in writers, here is how to replace it:
- (plug-in-c-astretch RUN-NONINTERACTIVE img drawable)
+ (gimp-drawable-merge-new-filter drawable "gegl:stretch-contrast" 0 LAYER-MODE-REPLACE 1.0 "keep-colors" FALSE)
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.
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.
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).
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.
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-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).
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-11-11 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/scripts/add-bevel.scm
* plug-ins/script-fu/scripts/addborder.scm
* plug-ins/script-fu/scripts/carve-it.scm
* plug-ins/script-fu/scripts/carved-logo.scm
* plug-ins/script-fu/scripts/chip-away.scm
* plug-ins/script-fu/scripts/clothify.scm
* plug-ins/script-fu/scripts/font-map.scm
* plug-ins/script-fu/scripts/slide.scm
* plug-ins/script-fu/scripts/swirltile.scm: don't call gimp-edit-*
functions on drawables which are not added to an image because
this will be forbidden soon (because it can trash the image's undo
stack).
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.
2000-06-05 Sven Neumann <sven@gimp.org>
* plug-ins/script-fu/scripts/clothify.scm: applied
gimp-quinet-000531-0.patch to change the help blurb.
* plug-ins/script-fu/scripts/drop-shadow.scm
* plug-ins/script-fu/scripts/erase-rows.scm
* plug-ins/script-fu/scripts/perspective-shadow.scm
* plug-ins/script-fu/scripts/predator.scm
* plug-ins/script-fu/scripts/xach-effect.scm: applied
gimp-quinet-000531-0.patch to replace all calls to
gimp-image-undo-disable by gimp-undo-push-group-start,
and gimp-image-undo-enable by gimp-undo-push-group-end.