And while reading the changelog (under the “API” section), I came across this sentence:
As we continue to expand the GimpDrawableFilter API, we’ve marked a number of gimp_drawable_* () functions as deprecated. They will stay available until GIMP 4, but we recommend moving your filter code to use the GEGL filters directly instead of the older, dedicated wrapper functions.
And, checking the current source code of G’MIC-Qt :
That means in the G’MIC-Qt plug-in, we use gimp_drawable_*() functions a lot!
I naturally conclude that the G’MIC-Qt code will not be compatible with GIMP 4 (I don’t even know if it is compatible with GIMP 3.2, to be honest).
As the developer of the plug-in (Sébastien) passed away at the end of 2024, there is a high risk that the G’MIC-Qt plug-in will no longer be compatible with future versions of GIMP.
Unless someone has the skills/interest to update the G’MIC-Qt ↔ GIMP code to the latest GIMP API? (Not me, clearly!). In practice, there is only a single file to change (gmic-qt/src/Host/Gimp/host_gimp.cpp at master · GreycLab/gmic-qt · GitHub) that manages the communication between G’MIC-Qt with the GIMP API.
If you know anyone who would be able to do this, and motivated to do so, let me know!
(@cmyk.student , do you have some clues?).
The G’MIC-Qt plug-in is currently downloaded more than 1,200 times a day, so I imagine easily there are people who would like to see it work for future versions of GIMP.
It is clearly not equivalent.
In particular, GEGL nodes are maybe well suited for algorithms that do not take too long to compute (because they can be dynamically recalculated when a layer is changed). But the ability to have a plug-in window with smaller previews (thus faster) is still useful for slower algorithms. Similarly, GEGL nodes cannot handle filters that take any number (unknown in advance) of images as input and generate any number (unknown in advance) of images as output.
There are currently a lot of limitations in GEGL, compared to what the G’MIC-Qt plug-in can achieve.
@David_Tschumperle Hi! Not to worry - I just checked the plug-in, and none of that API should be removed in a future GIMP 4.
What we’re deprecating is functions that can be replaced with GEGL filters. For instance, gimp_drawable_brightness_contrast () can be replaced with a filter call to gimp:brightness-contrast.
All the code I saw in the plug-in is for things like getting the layer width, height, offsets, etc - those aren’t changing. Sorry for the confusion!
Hello @cmyk.student , thanks for your quick reply.
Ah I understand better, I really thought the complete family of gimp_drawable_*() functions would become deprecated in GIMP 4.
These are things that could happen with the natural evolution of the GIMP API, and I wouldn’t see any problems with that (I understand that code has to evolve over time!).
But if you’re telling me that nothing will be broken for G’MIC-Qt, then that’s very good news!
Thank you for taking the time to look at the code in host_gimp.cpp and analyze it in light of the evolution of the GIMP API.