Daniel Rogers wrote:
------------------------------------------------------------------------
Subject:
Re: [Gegl-developer] how to specify input parameters
From:
Calvin Williamson <calvinw@xxxxxxxxxxxxxx>
Date:
Sun, 23 Feb 2003 11:51:17 -0500
To:
Daniel Rogers <daniel@xxxxxxxxxxxxxxxxx>
On Sat, Feb 22, 2003 at 08:46:09PM -0800, Daniel Rogers wrote:
How do you specify that an input image is optional?
Also, if the input is not given, how to you tell it's not there when you
are handed an ImageIterator?
Good question. We dont have a mechanism for this yet.
I think we even need to improve the way that data
is passed to the subclasses of point op (say) before
we address this.
Right now ScanlineProcessor creates an ImageIterator
for each image data type (both inputs and outputs
actually) and puts it in a list of iterators and passes
this to the subclass of op that is doing the scanline
processing (like fade).
But what should really happen is that all the data
inputs and outputs should be passed directly to the
subclass. Just pass the same data_inputs and data_outputs
list that appear in the prepare, process, and finish
methods of Filter.
The subclass then has all of its data available for
doing its operation, (including inputs that are
not images, like scalars, etc).
Then change the ScanlineProcessor so that
it asks the ImageData object to create and keep an
ImageIterator for that image data. If that input is
null then the ImageIterator would be null.
Before calling the scanline routines, the
ScanlineProcessor then gets the ImageIterator
from each ImageData object and updates it to
the next line.
The subclass then requests the line to
work on from the ImageIterator it gets
from the ImageData object.
Let me see if I understand this correctly. Instead of passing
interators, you want to pass data object, which themselves contain the
iterators (for inputs that are images). The op is then supposed to grab
the iterators from the data ops which have iterators, and procced as before?
--
Dan