On Sat, Sep 09, 2000 at 11:18:49AM -0500, "Michael J. Hammel"
<[EMAIL PROTECTED]> wrote:
Thanks for the reply ;) I posted it to gimp-developer because i seems this
is a generic gimp bug and hope somebody else can add more.
> gimp. I suspect (but it's a guess) that the second one causes a change to the
> drawable id's for the image (which starts with a single layer when
> old_photo gets to it).
If the script-fu-drop-sahdow does change the darwable id (creates a new
one and deleted the old one) then your code is buggy: you simply mustn't
call gimp functiosn on drawables that do not exist. In this case this
would also be a gimp-bug, however, since gimp is not supposed to crash
when you feed it nonexistant drawable id's.
> If this is the problem, perhaps setting a delay of some kind between the
> two would work.
No, it wouldn't. A delay wouldn't change the drawable id. A delay would
help if script-fu would return to the gimp before it finished its work
(unlikely, but definitely not impossible), or gimp would do something
after it has forwared the results to perl.
> script_fu_drop_shadow(
> INT32 run_mode=1 "Interactive, non-interactive"
> IMAGE image=-1 "Image"
> DRAWABLE drawable=2 "Drawable"
>
> Without the sleep() call, the last entry looks like this:
>
> script_fu_drop_shadow(
> INT32 run_mode=1 "Interactive, non-interactive"
> IMAGE image=0 "Image"
> DRAWABLE drawable=2 "Drawable"
> Looks like the image id gets changed somehow. Ideas?
Highly interesting indeed. Now, what gimp-perl does (when you pass in a
drawable instead of both image and drawable) is this:
if (sv_derived_from (sv, PKG_DRAWABLE))
arg->data.d_image = gimp_drawable_image_id (unbless(sv, PKG_DRAWABLE,
croak_str));
i.e. it calls gimp_drawable_image_id (or gimp_layer_get_image_id
etc..) to get the image, which in turn calls the the pdb function
gimp_drawable_image without any caches. This means that, temporarily, gimp
returns "-1" as the image id and later the correct one.
Here I have to give up and hope this rings a bell for somebody more tied
to the internals of gimp id management.
--
-----==- |
----==-- _ |
---==---(_)__ __ ____ __ Marc Lehmann +--
--==---/ / _ \/ // /\ \/ / [EMAIL PROTECTED] |e|
-=====/_/_//_/\_,_/ /_/\_\ XX11-RIPE --+
The choice of a GNU generation |
|