Ted Gould wrote:
-- It seems that there are problems loading the GIMP gradient plugin. Who is getting those? Is there a consistent set? Is this related to people who are/aren't compiling in the bin relocate code? I'm sure the extensions stuff isn't thread safe. This worries me, as I'd like to move alot more functionality into being plugins in the near future.
I have had no troubles running the shared object, but compiling/linking seems incredibly hard. For some reason, the link dependencies are cascading into the internals of Inkscape, to the point where it seems that -everything- in Inkscape (and the things it links with) must be made available when linking the object. I have made extensions for other things before (Netscape, Director, Java, etc) and have never seen this linking burden before.
I think that the problem is that we are not linking with interfaces, but actual classes, structs, function, etc. We should be using dependency-free interfaces and hide the actual internals from the extension developer. So I agree with you guys that both extensions and their view into Inkscape should have an API.
-- API for extensions, this is still in flux. But, it is something that needs to be figured out. I know at one point we'd discussed using the SVG DOM from the W3C. I don't know how that would work out, or how difficult it would be. Bryce and I outlined some general functions that would be needed for "Command and Control" in the document above, but those ideas are definitely not fleshed out.
If you look in the /src/xpath dir, you will see the .h's that I made to follow the 5 or 6 IDLs from w3.org necessary for the SVG DOM. I have been stalled on this, but am about ready to start working on this again.
-- Now that we're XSLTized -- should we be adding that as an extension type? I could see it working for input/output extensions, perhaps as effects also?
Maybe tomorrow, I will commit the stream stuff which I have been testing. One of the streams is a wrapper for libxslt stuff, hides the implementation, and makes xslt-ing very easy. I was considering adding it to the imports/exports dialogs, but this does seem to be more of an extension thing, as it needs an extra parameter (stylesheet file) selected with a file selector.
Bob