Skip to content

Commit 740822f

Browse files
committed
move the old opencollective post across
1 parent a5a676b commit 740822f

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

_posts/2024-10-19-nip4-Progress.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: nip4 progress
3+
---
4+
5+
libvips.org OpenCollective has generously given me a year of funding [to
6+
complete nip4](https://github.com/jcupitt/nip4). This is an update of [the
7+
libvips GUI, nip2](https://github.com/libvips/nip2), to the gtk4 toolkit,
8+
and to the vips8 API.
9+
10+
nip2 was written between about 1997 and 2003 and depends on a lot of
11+
frameworks from the period. These are becoming extremely elderly now,
12+
and nip2 is becoming difficult to maintain. It's also looking increasingly
13+
old-fashioned.
14+
15+
![Screenshot](https://opencollective-production.s3.us-west-1.amazonaws.com/update/c944d166-2a2a-4e96-8afe-2a08389e84ae/screenshot.png)
16+
17+
nip4 is hoping to fix this. It has the following goals:
18+
19+
1. Update from the gtk2 GUI toolkit to gtk4, the current version. This is a
20+
lot of work -- the drawing model is completely different, and there are many,
21+
many changes in best practice. As a test, I updated vipsdisp to gtk4. The
22+
image display widget in this viewer is the thing that will display images
23+
in nip4.
24+
25+
2. Switch to the vips8 API. We rewrote libvips to make vips8 between about
26+
2010 and 2015, but nip2 was obviously stuck on the old vips7 API. nip4
27+
has removed all the old vips7 code and redesigned for vips8. It's the last
28+
large-scale user of vips7, as far as I know, so completing nip4 will let
29+
us build libvips with deprecated code removed by default.
30+
31+
3. Complete backwards compatibility. nip4 aims to be able to run the whole
32+
of the nip2 test suite unmodified. 
33+
34+
4. Prettier, simpler, faster, modernised.
35+
36+
nip4 is now loading the first 5 test workspaces correctly. The big change
37+
from the UI point of view is full animation for interactions. Everything
38+
slides around as you work:
39+
40+
<iframe width="560" height="315" src="https://www.youtube.com/embed/Z4TpOLh2Lno?si=5F-SEp3wS37SYBDv" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
41+
42+
Next steps:
43+
44+
1. Get all the old nip2 test workspaces loading. This will involve
45+
implementing a few more workspace widgets. Plotting is probably the most work.
46+
47+
2. Finish drag - drop and copy - paste. It's only half-there right now.
48+
49+
3. Add the toolkit menu and browser. This will probably be a bar down the left.
50+
51+
4. Perhaps implement a cut down and polished version of the programming
52+
and debugging interface from nip2.
53+
54+
5. UI for per-workspace definitions needs to go in.
55+
56+
6. The image processing menus are all currently designed around vips7. A
57+
new set of vips8 menus could be a useful simplification.
58+
59+
7. Do windows and mac builds. We have win and mac builds for vipsdisp
60+
done already.
61+
62+
And I think that would be enough for a release, hopefully in the first half
63+
of 2025.
64+

0 commit comments

Comments
 (0)