Mailing list archives : pcb-rnd

ID:5362
From:rn...@igor2.repo.hu
Date:Thu, 2 Dec 2021 05:44:12 +0100 (CET)
Subject:[pcb-rnd] gtk4 test request: pcb-rnd!
replies: 5363 from rn...@igor2.repo.hu
Hi all,
 
our gtk4 effort reached a state where it's possible to start testing 
pcb-rnd. All dialog boxes and menus should work. There is one major 
missing feature: rendering. So you will not see any drawing in the main 
window or in any of the previews (see below).
 
I. What to test
 
Please test your favorite dialog boxes. Please report anything that looks 
or behaves strange. Things should generally behave the same as in gtk2 
(and lesstif). 
 
The looks of the widget changed a lot in gtk4 - with the default themes 
some widgets get a bit bigger because of rounded corners, while other 
widgets became somewhat smaller because of thinner border. 
 
Testing on wayland is especially welcome as I do all development on X11.
 
II. How to test
 
(0. You may want to uninstall your current librnd; this depends on how 
you are testing. See step 5)
 
1. Get latest librnd from svn - at least r33686. 
 
2. Make sure your system has gtk4 installed - at least 4.4.0. I started 
developing with 4.4.0 and switched to 4.4.1 when I had to recompile it for 
debug symbols. So at least these two versions work, but anything >=4.4.0 
should work unless gtk developers break API.
 
3. Configure librnd with the gtk4; --buildin-hid_gtk4_gl. If you want to 
test both gtk2 and gtk4 on the same system, you will need to configure 
with both of them as plugin and then you can choose run-time. (I haven't 
yet tested this yet, testing is welcome!)
 
(4. optional: recompile pcb-rnd. In fact, this is not required, as librnd 
API did not change. It's probably a better test if you do NOT recompile 
pcb-rnd and see if it still works with the new librnd)
 
5. Make sure your pcb-rnd would use new librnd. If you have a previous 
stable release installed, pcb-rnd may use those .so files from 
/usr/local/lib or /usr/lib. You can do different things about it, from 
symlinking to uninstall (see step 0). If in doubt, run ldd pcb-rnd to see 
what exactly it tries to link. Gtk4 requires librnd 3.1.0 (-dev).
 
6. Explicitly request the gtk4 hid on startup: pcb-rnd --gui gtk4_gl. This 
is required because the gtk4 HID is so much experimental (especially 
without rendering) that I didn't want to add it to the GUI preference 
list.
 
Trick for working around the no-rendering problem: all readouts should 
work properly, so if you look at the same board in gtk2 or lesstif and 
note down some coordinates, you can navigate there "blind", just using the 
readouts (top right corner in the top window). Then context menu, hotkeys, 
etc. should work and you can invoke dialog-box-based edits (property 
editor, padstack editor). Then if you need to know how board objects got 
edited, you can save-as the board and load it again with a different HID 
that does render.
 
III. project schedule and opengl rendering
 
Please look at the timeline: 
http://www.repo.hu/cgi-bin/pcb-rnd-people.cgi?cmd=timeline
 
Majority of the gtk code is common between gtk2 and gtk4. There's a new 
internal compatibility layer, with one implementation for gtk2 and one for 
+gtk4. This means on the way I did a lot of modification to existing gtk2 
code. In theory these are no-change transparent modifications, moving the 
same code behind some macro or function call so that gtk4 can do the same 
thing differently. 
 
However, any such innocent no-change modification can introduce a new bug. 
I knew that and planned ahead and designed the development cycle so tat 
these modifications happened mostly in the first 1/3 of the current librnd 
cycle. Which means our librnd 3.1.0 can be a stable release in mid 
december, if you test it (even on gtk2!).
 
The rest 2/3 of librnd cycle is mostly gtk4-specific development (the 
custom gtk4-only menu system for example) that does not affect common 
code. 
 
That's why rendering will need to wait until the release: since we share a 
lot of code with gtk2+gl on that side as well, we don't want to risk 
introducing new bugs on gtk2 side close to the release.
 
After mid december librnd release we will focus on getting the rendering 
working and if everything goes well we have full gtk4 support by 
spring 2022.
 
Thanks to Erich, Bdale and miloh for the financial backing of the 
gtk4 subproject. Thanks to Ade for massaging our opengl code. Thanks to 
Bdale, Majenko, Stefan, Ade and Erich for testing gtk4 demos.
 
 
Best regards,
 
Igor2
 
 
 
 
 

Reply subtree:
5362 [pcb-rnd] gtk4 test request: pcb-rnd! from rn...@igor2.repo.hu
  5363 Re: [pcb-rnd] gtk4 test request: pcb-rnd! from rn...@igor2.repo.hu