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