[gimp-web] content: update the 2.99.2 release news.



commit 0752cbec58996e10823fa069e85cbdb885152eab
Author: Jehan <jehan girinstud io>
Date:   Sat Oct 17 13:57:37 2020 +0200

    content: update the 2.99.2 release news.
    
    Still much to write in the news, but that's a start.
    
    Also the more I write, the more I think of shortcomings here and there
    and I wonder if really we should release tomorrow. But we'll see.

 .../2020/2020-06_GIMP-2.99.2_Released/index.md     | 167 ++++++++++++++++++++-
 1 file changed, 163 insertions(+), 4 deletions(-)
---
diff --git a/content/news/2020/2020-06_GIMP-2.99.2_Released/index.md 
b/content/news/2020/2020-06_GIMP-2.99.2_Released/index.md
index ba5e32ef..a9858986 100644
--- a/content/news/2020/2020-06_GIMP-2.99.2_Released/index.md
+++ b/content/news/2020/2020-06_GIMP-2.99.2_Released/index.md
@@ -1,5 +1,5 @@
 Title: GIMP 2.99.2 Released
-Date: 2020-06-14
+Date: 2020-10-17
 Category: News
 Authors: Wilber
 Slug: gimp-2-99-2-released
@@ -20,16 +20,175 @@ Release highlights:
 
 ## GTK3 based UI
 
+The first difference will be visual as you will notice that GIMP got a
+bit more of a modern look now and it can also use some new widgets
+(instead of redevelopping them on GTK2). But the esthetical differences
+are far from being the main appeal of GTK3.
+
+### High pixel density displays
+
+One of the main issues of GTK2 for nowaday material was the absent
+support for high pixel density displays (e.g. small screens with high
+resolution or big screens with extremely high resolution) which become
+more widespread nowadays, especially among graphics professionals. GIMP
+2.10 came with some partial workaround which was acceptable only on some
+very limited cases but was not holding expectation for intense usage of
+the software.
+
+GTK3 brings proper support to GIMP whose graphical interface will follow
+your system-set scale settings.
+
+### Improved input devices support
+
+By "input device", we are mostly talking about drawing tablet or
+pen displays. In GIMP 2, you had to plug the tablet before starting
+GIMP, enable each new device explicitly in the settings and, worse,
+unplugging the tablet could lead to unstability of the software (though
+this issue got mostly fixed on GTK2 by GIMP developers within the 2.8
+branch release period).
+
+GIMP 3 (hence this first development release) brings hotplug support,
+which basically means: start GIMP, plug your tablet, done. You are ready
+to draw.
+
+We are also trying to improve general support by making our input device
+advanced configuration easier to use.
+
+### Theming
+
+With GTK3, we also inherit its CSS-based theme format. This
+unfortunately means that all custom-made themes from past versions will
+be incompatible in GIMP 3 and over. On the other side, this new theme
+format using a very well known theming standard should make it much
+easier to tweak GIMP interface to your needs and preferences.
+
+Moreover symbolic icon theme are much better supported. They will follow
+the theme-set foreground and background colors. For anyone who changed
+your theme in GIMP 2.10 from dark to a light theme, you probably
+remember you also had to switch the symbolic icon themes manually. This
+won't be necessary anymore.
+
+Finally a same theme may propose both symbolic and color icons. Our Icon
+Theme preferences provides a "*Use symbolic icons if available*"
+checkbox allowing you to indicate your prefered style.
+
+### Wayland support
+
+The port to GTK3 should normally give us Wayland support without having
+anything to do. And it basically does so. GIMP 2.99.2 runs natively on
+Wayland.
+
+Unfortunately a few bugs were already reported with GIMP on Wayland,
+some of them quite blocking (such as various weird GUI bugs or [huge
+memory leaks](https://gitlab.gnome.org/GNOME/gimp/-/issues/4092)), other
+less serious but still a bit embarassing (broken splash image with high
+density scaling because Wayland doesn't report scaling properly).
+So we probably can't say we have an appropriate Wayland support unless
+these issues get fixed. We welcome very warmly patches on this matter
+(on GIMP or GTK side depending on investigation): [list of
+Wayland-related
+bugs](https://gitlab.gnome.org/GNOME/gimp/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Environment%3AWayland).
+
+With Wayland comes also the need to reimplement a few features through
+"portals". This was done for the screenshot plug-in (using Freedesktop,
+GNOME and KDE portals) and there is some work-in-progress for on-display
+color picking (working on KDE, not yet on GNOME and Freedesktop
+portals).
+As for the file portal, this is probably something which won't happen
+for GIMP 3.0, because we still require some features of the GTK file
+dialog, but it may happen later with a planned redesign for improved
+export process.
+
 ## Refactoring
 
-## New plug-in API
+## Plug-in API
+
+### Improvements
+
+TODO
 
-## Python 3 port
+### Bindings
 
-## Plug-ins in JavaScript
+We have made the full API introspected through [GObject
+Introspection](https://gi.readthedocs.io/en/latest/). In particular, it
+means that the API should be fully usable in a wide range of language
+bindings. We have only tested a few so far, so we can confirm that GIMP
+can now be scripted (additionally to C and C++ of course) with:
+
+* Python 3
+* JavaScript
+* Lua
+* Vala
+
+One of the main difference with how GIMP used to be scriptable with
+Python 2 notably, an additional layer API is not needed anymore. This
+means in particular that the API is basically the same for all these
+languages, except for language specificity.
+
+Therefore if finding an intersection of a drawable with a selection in C
+is:
+
+```C
+success = gimp_drawable_mask_intersect (drawable, &x, &y, &width, &height);
+```
+
+In Javascript, it will be:
+
+```js
+let [ intersect, x, y, width, height ] = drawable.mask_intersect();
+```
+
+Or again in Python 3:
+
+```python
+intersect, x, y, width, height = drawable.mask_intersect();
+```
+
+One of the other main advantages is that non only do these binding now
+have access to the full GIMP API, but they also have access to many more
+introspected API used as dependencies to GIMP. For instance a plug-in
+can have access to the full GTK API as well, or the babl and GEGL API
+(for easier pixel manipulation and access to a massive range of existing
+operations). This was one of the main limitation of the former Python
+API for instance, which could not manipulate pixels with GEGL.
+
+Of course some people are regretting the facilities provided by the
+specific Python plug-ins, such as automatic dialog creation. These are
+things we plan on working to simply provide to the main API, hence to
+all binginds.
+
+Finally Script-fu is not one of the introspected bindings (though there
+is supposedly a GObject Introspecting scheme binding, but we haven't
+tested it) and still works as its own extension. Some issues regarding
+some of the API changes have been raised and will have to be fixed
+before finale stable release.
+
+### Goat exercises
+
+For each of the tested binding languages, we created a plug-in called
+"Goat exercise", which is basically a demo for creating plug-ins. You
+can call it a "*GIMP Hello World!*".
+
+Each Goat Exercise does exactly the same thing (but in its own
+language): it creates a dialog with some label, buttons and a text view
+(GTK+ and GLib/GIO demo); one of the buttons triggers a processing to
+modify the active layer (GEGL demo and GIMP API demo); all this while
+showing its own source code inside the text view (making it easy to
+inspect the code from within GIMP with a button sending you to the
+repository file if you want to check out the last version, comfortably
+in your code editor).
+
+These plug-ins are quite important as we are planning to improve the
+plug-in ecosystem with GIMP 3. They are the first step of
+"self-documenting demo plug-ins" (while doing something a bit more
+exciting that a bare "Hello World").
+
+## Extensions
 
 ## Space invasion
 
+## Multi-layer selection
+
 ## Render caching
 
 GIMP 3 now has a render cache that keeps the result of scaling, color


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]