> > Most of the interface we have on the core so far have specific needs and > I'm sure future interfaces will too. This library interface would have > to be extended to support cases like that. If we do that, then this > would work as a low level interface that other interfaces can be layered > on top of and plugins can create their own interfaces, which could make > sense but I'm not sure. > > > Anyhow, I'm not against this in it's current state even though it seems > an awful lot like just providing dynamic library loading which it makes > more sense to do using dlopen, dlsym... > > If we have a case where this interface makes more sense than anything > else then fine with including it. > > The text_to_pixmap interface is very specific and I don't think the > functionality itself is a good idea. What are the use cases for this? > For rendering text, I suggest that we create an interface that hooks > into the drawing framework and allow plugins to implement glyph caching > similar to what I once created for xgl and cairo's glitz backend. > > Do you have other use cases for which this library interface fit in? > Yeah actually I tried loading functions from a plugin through dlsym(p->devPrivate.ptr, "fooFunc"), but we need this management-layer to do some advanced functionality with library functions. In my opinion it makes just more sense to have a updateLibraryFunction, then checking if a plugin, which provided a shared function, got unloaded. Another example which we discussed on IRC are wrap-able library functions. This would let us do some really cool stuff with drawing. A future “glow” plugin could provide such a wrap-able function (“paintGlow”) and other plugins could hook into that if needed. The image plugins could use that too, which would eliminate the need for a image interface in core. As far as I know Roi Cohen is currently working on adding wrap-able functionality to shared functions. I don't know how your glyph caching interface in xgl/glitz works, so I'm unsure with that. I'll probably take a look at that later. Doing plain shared libraries as Mike suggested is just rubbish, it does have far less access to core then a plugin and would really be out of our needs. Regards, Patrick