RSS/Atom feed Twitter
Site is read-only, email is disabled

blizzards, mononucleosis, and tool plug-in TODO items

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

5 of 5 messages available
Toggle history

Please log in to manage your subscriptions.

blizzards, mononucleosis, and tool plug-in TODO items Nathan Carl Summers 29 Mar 04:11
  blizzards, mononucleosis, and tool plug-in TODO items Sven Neumann 30 Mar 21:45
   blizzards, mononucleosis, and tool plug-in TODO items Nathan Carl Summers 30 Mar 22:25
    blizzards, mononucleosis, and tool plug-in TODO items Sven Neumann 31 Mar 00:19
     blizzards, mononucleosis, and tool plug-in TODO items Simon Budig 31 Mar 02:00
Nathan Carl Summers
2003-03-29 04:11:22 UTC (about 21 years ago)

blizzards, mononucleosis, and tool plug-in TODO items

I'm sorry that I haven't been able to do much GIMP participation in the last several months. I don't want to bore everyone here with details of my personal life, so suffice it to say I haven't been able to spend much time hacking or even replying to email. I regret any inconvenience this has caused.

The last time I checked, in-process tool plugin loading worked with only a handful of mild issues to be resolved. I have no doubt that it can be in perfect working order in less than two weeks.

Out-of-process tool plug-ins are an entirely different matter. Implementing them would still require a fair amount of work. It would also involve some changes to the gimp protocol which, while I would not really term them to be kludgy, add more complexity in places they shouldn't be.

Given our time constraints, that in-process tool plug-ins already work, and that out-of-process tool plug-in communication can be handled much more cleanly in libpdb (which I sincerly hope will be used in GIMP 2.0), I would not be opposed to the removal of out-of-process tool plug-ins from the list of goals for 1.4. While I still believe that out-of-process tool plug-ins are the Right Thing to do, they can wait for 2.0. Regardless of whether out-of-process tool plug-ins make it in 1.4, I now feel that the best developmental proceedure is to make in-process tool plug-ins work as well as possible.

Without further ado, here is a list of things that must be done to make tool plug-ins useful:

* the loop in tools.c that loads tool modules should be uncommented and moved before the loading of the built-in tools, so that they appear last in the toolbox. (perhaps it would be good to allow tools to be reordered by the user.)

* cheesey_module_loading_hack needs to stop leaking memory and handle errors sanely. It could also use a better name.

* a dialog box should be able to show the tool modules loaded, and tool modules shoulde be loadable and unloadable at runtime. Specifically, any tool not currently being used should be unloadable. That would make tool plug-in development significantly less painful. The current module dialog would be a sensible location for this additional functionality.

* tool plug-ins need the ability to supply a custom icon. Themes should be able to supply a replacement if they "know about" that particular tool plug-in.

* likewise, tool plug-ins should be able to supply their own mouse cursors.

* the back-end pixel-crunching code usable by both the gui and pdb interfaces should be better separated from the interface-specific code. I have long felt that the paint tool refactoring is a good example of how this can be better accomplished, and feel that similar measures would be useful in the rest of the tools.

* tool plug-ins need a mechanism to expose their functionality to the PDB.

I will file these items in Bugzilla if consensus is that this is the best course of action. I look forward to your comments.

Respectfully, Rockwalrus

Sven Neumann
2003-03-30 21:45:54 UTC (about 21 years ago)

blizzards, mononucleosis, and tool plug-in TODO items

Hi,

Nathan Carl Summers writes:

The last time I checked, in-process tool plugin loading worked with only a handful of mild issues to be resolved. I have no doubt that it can be in perfect working order in less than two weeks.

sorry, last time I checked, tools in GIMP were still an udocumented and buggy mess. The fact that part of this mess has been moved outside of the core and wrapped by obscure proxy objects has not improved this situation. There are still lots of bugs in the current tools, there is noone who fully understands how this stuff is supposed to work. What needs to be done for the next release is a major cleanup of the tools. Part of this cleanup should be a proper documentation on how to write a GIMP tool. I believe that it doesn't make sense to even think about pluggable tools before this has happened. I'd rather start the tool cleanup by moving GimpToolControl back into the core and I'd like to remove the cheesey hacks that were added all over the place.

Salut, Sven

Nathan Carl Summers
2003-03-30 22:25:58 UTC (about 21 years ago)

blizzards, mononucleosis, and tool plug-in TODO items

On 30 Mar 2003, Sven Neumann wrote:

Hi,

Nathan Carl Summers writes:

What needs to be done for the next release is a major cleanup of the tools.

I agree.

Part of this cleanup should be a proper documentation on how to write a GIMP tool.

Providing source for a sample tool was supposed to be on the list I sent. I don't know why I didn't remember to put it on last thing.

I believe that it doesn't make sense to even think about pluggable tools before this has happened.

While we should have a good specification of the "tool api," not thinking about plugging issues would be counterproductive. Many of the existing issues are related to the nonextensiblity of the current api.

I'd rather start the tool cleanup by moving GimpToolControl back into the core

I think that we should get the advice of the win32 developers because of the braindead behaviour of winbloat's dynamic linker before we move anything. Note that tool plugins will need to make calls to GimpToolModule code and GimpToolControl code and who knows what else.

and I'd like to remove the cheesey hacks that were added all over the place.

Which "cheesey hacks" are you refering to?

Rockwalrus

Sven Neumann
2003-03-31 00:19:51 UTC (about 21 years ago)

blizzards, mononucleosis, and tool plug-in TODO items

Hi,

Nathan Carl Summers writes:

While we should have a good specification of the "tool api," not thinking about plugging issues would be counterproductive. Many of the existing issues are related to the nonextensiblity of the current api.

My point is that we should first clean up the internal API and provide a framework that allows an experienced GIMP developer to create a new tool without loosing his/her mind. Once that is done, we can think about exporting this API so make pluggable tools possible.

Unfortunately an attempt was made to provide an API for pluggable tools before cleaning up the internal API. Part of this API is to expose internal structures and objects that were never designed for this. I don't think we should release with this API. We would do ourselves a favor by dropping pluggable tools for now.

Note that tool plugins will need to make calls to GimpToolModule code and GimpToolControl code and who knows what else.

That's exactly why I propose to remove the possibility to have pluggable tools (of course only short term). The current API boils down to "make calls to who knows what".

Salut, Sven

Simon Budig
2003-03-31 02:00:44 UTC (about 21 years ago)

blizzards, mononucleosis, and tool plug-in TODO items

Sven Neumann (sven@gimp.org) wrote:

My point is that we should first clean up the internal API and provide a framework that allows an experienced GIMP developer to create a new tool without loosing his/her mind.

Yeeeeesss!! pleeeeeze!

Bye, Simon