On Sun, 21 Mar 2004, Manish Singh wrote:
> On Sun, Mar 21, 2004 at 09:44:25PM +0100, David Neary wrote:
> > How far along is the planning? I have heard of Rock's libpdb,
> > which I believe he wants to finish for 2.2, but I hadn't heard
> > any concrete plans for the often-mentioned forthcoming PDB
> > re-write.
> There hasn't been any real planning, other than planning to do some planning
> after 2.0 is out. All I was saying is that we haven't forgot about it.
2.0 is out now. :)
> > What requirements would the new PDB have?
> There's a number of issues to be addressed, like GEGL node support,
> efficiency, UI generation, distributed processing, and macro recording
Macro recording is already trivial with libpdb: you just connect to the
appropriate signal of the Pdb object.
Distributed processing will soon be supported by libpdb using the
WireSocket backend; this will be done by early May. Implementing
WireSocket is one of the group projects chosen by some of the students in
a class I am taking, so it will be done if they want a good grade. :)
UI generation is mostly out of the scope of libpdb. I would have to know
more what is specifically meant by "UI generation" before I could comment
Efficiency has yet to be addressed by libpdb, although some easy
optimizations have been put in place. Serious optimization should
probably wait until the feature requirements are more in place and
reasonable profiling can be done.
GEGL node support opens a big can of worms, and there probably is no best
solution. The first big decision to make is whether plug-ins should be
written as GEGL nodes objects directly, or whether there should be a shim
GEGL node that translates the operations into procedural calls not unlike
those in the traditional GIMP api.
If we do use a translating shim, Libpdb seems like a good fit for this as
It seems like a real shame to lose GIMP's ability to run plug-ins out of
process, so my vote is we rule out dynamically loading gegl nodes using
GPlugIn as the only method, although we may want to be able to do it as
an additional extra-fast method.
CORBA seems like a flexible choice here if we decide to make plug-ins
implemented directly as gegl nodes. Although my guess is it would add
somewhat more overhead than a hand-rolled gimp-specific method, it has the
advantage of being more flexible than anything we could do, and also it
would be something maintained by an outside group instead of another
burden for us.
If we do decide to have plug-ins be native GeglNodes, I recommend that we
still have a PDB for scripting purposes.
Gimp-developer mailing list