Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap for resynthesizer to Gimp 3 #125

Open
bootchk opened this issue Sep 16, 2023 · 5 comments
Open

Roadmap for resynthesizer to Gimp 3 #125

bootchk opened this issue Sep 16, 2023 · 5 comments

Comments

@bootchk
Copy link
Owner

bootchk commented Sep 16, 2023

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
Copy link

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
Copy link
Owner Author

bootchk commented May 13, 2024

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.

@Rizzlord
Copy link

mine dont work in gimp 3 how did you do that, would you may release a tutorial or a quick explanation, or the files?

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.

@WarpspeedSCP
Copy link

Sorry its taken me this long. Ill make a PR to this repo in a few hours

@WarpspeedSCP
Copy link

WarpspeedSCP commented Nov 14, 2024

I've created a WIP PR for updating this plugin to gimp 3.0 RC here: #136

The PR is based off the deprecations branch.

The new plugin also supports choices again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants