On Sat, Mar 15, 2003 at 06:08:57PM -0800, Daniel Rogers wrote: > Calvin Williamson wrote: > > I think this looks more or less like the right idea. If you > > want to finish off changing all the scanline functions to > > just take the data lists, you could have a go at that, and > > then we can commit after that happens. If not, I might > > be able to do it in a few days... > > > > Yeah, I was starting to head in that direction. > > I have run into a bit of a problem though. Validate inputs doesn't > produce a GList of data_inputs that includes all the non-image inputs > (for example, in GeglColor, there is a pixel, width, and height input > that isn't registered as data_inputs. I do see that these options are > supposed to be stored in an image op itself. I thought that a goal of > your design was to allow this stuff to be registered as an input from > another node? If so, they shouldn't be stored in the op itself should they? > > -- > Dan > They are registered as inputs from another node as well. They are also properties of this node. This is the problem I was talking about working on before. How does validate_inputs take care of putting the appropriate fields from the op into each GeglData's value field before the data_inputs is passed back to the op. The issues that need to be resolved here are how attributes (properties) for an op can be both settable during g_object_new and how they can be passed into the op as outputs from some other node. Heres an example of what I mean: After the registering the x,y as Scalar data and the pixel as Pixel data, the GeglColor now officially has 3 inputs. (Hence the badly named GeglNoInput really means "no image input" in this case). You could hook up an op that outputs a scalar to either of the x or y input slots and one that produces Pixel data to the pixel slot. If those input nodes are not NULL, then the op needs to use the "default" x,y,pixel that were passed in as regular properties to the op from g_object_new to put in the GeglData lists. For now, GeglColor should just these values directly from the fields in the op just like it is currently doing. Calvin