bootchk / resynthesizer

Suite of gimp plugins for texture synthesis
GNU General Public License v3.0
1.43k stars 163 forks source link

Roadmap for resynthesizer to Gimp 3 #125

Open bootchk opened 1 year ago

bootchk commented 1 year ago

This describes forthcoming work on resynthesizer.

The goal is: work in Gimp 3.

  1. build with meson
  2. outer plugins in scriptfu/scheme
  3. replace control panel plugin that uses C/Gtk with a scheme plugin
  4. restructure/rename files and directories

I started a new branch resynthesizer3, from the deprecations branch. The first commit minimally proves the goal.

Discussion

Meson: Gimp 3 only builds with meson. Meson is much better. Resynthesizer3 will only build with meson.

ScriptFu scripts (with few changes) will still work in Gimp 3 whereas Python2 GimpFu plugins are more difficult to port to Gimp 3. GimpFuv3 is a possible alternative but it has little traction yet and is just another dependency. But itr-tert has already ported the resynthesizer plugins back to Scheme. Resynthesizer for Gimp 3 will use them.

The control panel in C/Gtk2 is just a dialog that passes args on to the resynthesizer engine plugin. It offers minimal added value, just small user-friendliness insuring the entered args are consistent with the requirements of the engine plugin. A ScriptFu plugin can more easily do the same thing, except for the user-friendliness. A ScriptFu plugin is not dependent on deprecated Gtk2, requires no build, and can be more easily maintained. Users of the control panel are expected to have deep knowledge of the engine, and from now on will be expected to ensure entered args are consistent, without aid from the user interface.

The reorganization of the source will more clearly indicate the architecture.

WarpspeedSCP commented 4 months ago

I've got the heal selection python plugin updated to gimp 3, and it works great! I had to update the C plugin to accept a config object instead of a value array as well to get it to work right, though. I'll make a PR (to the deprecations or gimp3 branch, maybe?) soon for this. Unfortunately, because it seems like the GimpChoice struct and friends haven't been added to the python api, we're stuck using ints to represent choices, still.

bootchk commented 4 months ago

Thanks so much. I am glad you show an interest. It is apparent that you at least understand Gimp plugins in 3.0, since GimpChoice and GimpConfig are relatively new and most people would have no idea about them. I myself have temporarily forgot about the need to use them when porting resynthesizer Python plugins.

Note however, that someone else already ported the resynthesizer Python plugins to Scheme. Though it won't hurt to have both the Python and Scheme plugins. Although only one or the other would usually be installed.