View Issue Details

IDProjectCategoryView StatusLast Update
0000025Cinelerra-GG[All Projects] Bugpublic2019-11-02 23:54
Reporterperegrine Assigned ToPhyllisSmith  
PrioritylowSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
PlatformLinuxOSUbuntuOS Version16.04.5
Product Version2018-11 
Target VersionFixed in Version2019-10 
Summary0000025: GUI HIDPI
DescriptionHIDPI Support needed. Too small GUI on 4k Diaplay.
Steps To ReproduceInstall and run on PC with HIDPI monitor.
Additional InformationIt's difficult to fix I think, but it should be in project roadmap.
TagsGUI, HELP needed

Activities

PhyllisSmith

PhyllisSmith

2019-11-02 23:54

manager   ~0002379

Looks good. If anyone finds a problem, open a new BT.
PhyllisSmith

PhyllisSmith

2019-10-25 20:33

manager   ~0002327

@Olaf
Later today or tomorrow, a fix will be checked into GIT to fix the bug you found in 3) of Note 2312: Appearance, Color: Composer GB Color (view scaled). I forgot to get this fixed (as I forget to do a lot!)
PhyllisSmith

PhyllisSmith

2019-10-25 19:32

manager   ~0002326

@igorB " Is it better to change the value to 1.0 or can I leave the default value (0.0)?" Leaving it at 0.0 is what most people will do and is probably preferable so that if you move to a different monitor with different dimensions/resolution, it will automatically probe.
PhyllisSmith

PhyllisSmith

2019-10-25 13:16

manager   ~0002322

@IgorB
Thanks for testing. Yes, I have gone crazy resizing some plugin windows, now that I know how!. I will fix the one you found. I had not tested Format RGB.
IgorBeg

IgorBeg

2019-10-25 11:11

reporter   ~0002321

GG/Phyllis, thanks for the Ub16-20191025 build.
I tested it quickly, here and there, after deleting the “.bcast5” folder. I noticed that if I don’t change the Layout_Scale value from 0.0. to 1.0, in Preferences, it always works correctly on my Notebook screen (1280x800). Is it better to change the value to 1.0 or can I leave the default value (0.0)?

I see that You (GG & Phyllis) are resizing the window of many plugins but take a look YUV411 plugin, please: the red text is on the button.
I don’t know if there are other plugins with hidden text that is shown only in specific circumstances.

YUV411-plugin_resize1.png (21,578 bytes)
YUV411-plugin_resize1.png (21,578 bytes)
PhyllisSmith

PhyllisSmith

2019-10-25 01:17

manager   ~0002320

All:
1) There is now a warning message if a user clicks OK in Preferences after changing Layout Scale, Theme, or Plugin Icons (and maybe other occasions) since there will be potential impact IF there is a running render or record or there will be a Restart. It reports Busy: render in progress. Are you sure? You can click Yes or No. Thanks to Olaf for this improvement suggestion.

Checkin to GIT included more tweaks to window sizes of some plugins and scaling edge cases we found. There is a new Ubuntu16 version and Mint18 just to use to see if any issue pops up.
    https://www.cinelerra-gg.org/download/testing/cinelerra-5.1-mint18-x86_64-static.txz
    https://www.cinelerra-gg.org/download/testing/cinelerra-5.1-ub16-x86_64-static.txz

For fun, we tried out Olaf's suggestion but on Fedora a ; (semi-colon) means new line so only ended up with the last statement in effect: $ LANGUAGE=C;BC_SCALE=28.9;BC_ICON_SCALE=-0.4;BC_FONT_SCALE=1.0 cin &
Instead, we used: $ LANGUAGE=C BC_SCALE=28.9 BC_ICON_SCALE=0.4 BC_FONT_SCALE=1.0 ./cin
    from the cin binary directory location. It worked, but sure is weird looking.
Olaf

Olaf

2019-10-24 11:40

reporter   ~0002319

Optically everything is so far ok.

1) Settings->Preferences, Appearance: application restart. The warning hint is missing here. I say it now in all clarity on the basis of a no example. If the user renders his project and after two or three hours wants to check again which settings he has used for rendering, then he cannot do this because the "Render" dialog is locked altogether. Instead, he gets a message in a separate message window that rendering is already in progress. Not the "do it" button of the render dialog is locked, but the render dialog is completely suppressed. Knowing about this child-proof lock is important for what comes next. Now the user has time to make friends with the program. He looks at Preferences, Appearance and changes the layout. He doesn't get any helpful hints, he presses Apply and nothing happens, so at some point he'll push bored ok. And now something completely unexpected happens, the program quits without asking (!) and aborts the render process (!), which has already loaded all CPU's for full three and a half hours. - A perfectly set trap for new users.

2) As a professional command line gymnast with knowledge in DTP I would like to point out again that the size of the pixels of the monitor (DPI) is decisive. A 4k monitor (3840 x 2160 pixels) can also have a diagonal of 82 inches (207 cm) and more. HiDPI: High Dots Per Inch.

Check that out, you'll like it (if something goes wrong, hold down the Alt+SysRq key combination and press the keys r, e, i, s, u, b one after the other):
$ LANGUAGE=C;BC_SCALE=28.9;BC_ICON_SCALE=-0.4;BC_FONT_SCALE=1.0 cin &
PhyllisSmith

PhyllisSmith

2019-10-23 23:45

manager   ~0002318

@All: latest checkin today includes Preferences scale settings which is saved across sessions. However, for ease of use in case the user makes a mistake in setting this, the environment variable, BC_SCALE, will take precedence. I think this method solves potential confusion. Here how it works:

1) A new user or someone who has never set the Settings->Preferences, Appearance tab, Layout section, "Layout Scale" text box with tumbler, will have the LAYOUT_SCALE set automatically at 0.0. This means an automatic probe of the biggest monitor is used as a setting. The big advantage of this is that "new users" with a 4K monitor will not immediately be discouraged on too small text/icons.
2) Current users who do not like this automatic scaling, should set the "Layout Scale" to 1.0 in Settings. This will avoid the smaller characters that might be a result of the probe of a non-1080p monitor.
3) Oops, I accidentally set "LAYOUT_SCALE" to 112.6. Use BC_SCALE=1.0 {your cin path}/bin/cin and then fix the Preference. Or you can always manually edit $HOME/.bcast5/Cinelerra_rc, the LAYOUT_SCALE parameter value.

Also, other scaling cleanup in the GIT checkin and a couple of fixes - but nothing significant enough to create new builds unless someone requests one -- no problem.
PhyllisSmith

PhyllisSmith

2019-10-23 19:48

manager   ~0002317

@Olaf
"to use icons with a high resolution" is most likely possible. What GG thinks will work is the following:
1) cd theme_cakewalk/data, run allsvgstopngs.sh, but add a -d 200 to the inkscape command line.
2) rebuild cakewalk
3) cd cinelerra, set your scaling to what you want, for example:
BC_SCALE=2.0 BC_ICON_SCALE=0.8 ./cin
This may be possible to do in the theme initializer.

4) now your icons will look really good, but to make it work properly,
you will have to convert every icon in the program to the 200 dpi scale
or parameterize every icon, or similar.

Attached is an example.

x.png (423,597 bytes)
Pierre

Pierre

2019-10-23 16:22

updater   ~0002316

The 4k screen in the middle (when acquired...) would display the composer, most often with all the composer's frame (frame, icons buttons) and sometimes in full-screen mode where only the image content is maximized.
PhyllisSmith

PhyllisSmith

2019-10-23 16:07

manager   ~0002315

@Pierre:

Hmmmm, there is currently no way to handle that. There is only one scale value so the automatic probing would set the scale to the 4K monitor and all 3 monitors would use that. But with the GIT mod GG will checkin (probably later today), you can set a preference to override the probing with a Scale of 1 to look the best on the 2 side 1080p monitors since the 4K monitor in the middle could be used in fullscreen mode for the Composer.
Pierre

Pierre

2019-10-23 15:08

updater   ~0002314

I have no way to test this right now (since I only have 1080p displays), but I wonder what will happen if I replace one of my displays (the one occupied by the composer) with a 4k display?

I would then find myself in multi-screen mode, with a 4k screen for the composer in the middle and 1080p screens on each side displaying the other Cinelerra-GG windows.

Would CinGG's display be individually adapted to the resolution of each screen in this multi-screen layout with different resolution screens?

Pierre
PhyllisSmith

PhyllisSmith

2019-10-23 14:31

manager   ~0002313

Thanks for feedback from Andrew, Andrea, IgorB, Pierre and Olaf on this subject. It has proven quite helpful.

We are working on small cleanup to include as Andrea and Olaf suggested, a Preference. In particular a way to accomplish what Olaf suggested in 1) and 2) in the last note. I do not know the details of the "fix" yet. The automatic probe scaling as Olaf mentioned in 1) is important so that as Andrea mentioned, a new user with a 4K monitor is not immediately discouraged when he/she can not "see" the text characters/icons because they are way too small. Meanwhile you power users can always find a way to adjust !!

I am still checking on 3) and the last paragraph in Olaf's note. My current understanding is that all icons will have to be created at a higher resolution and I will find out whether or not they will show that way. P.S. to me the 200 DPI graphics look pretty good.

Also, as part of the cleanup, as Andrea mentioned, some of the plugin windows are not sized right -- and this is true before scaling was added - I am fixing a bunch of them.
Olaf

Olaf

2019-10-23 08:44

reporter   ~0002312

Guys, I finally found the time to set up a function key:
+1 I ♥ it!
Small joke, supplementing the past press comments my 2¢.

1) My monitor has a resolution of 2560x1440 pixels at 108 DPI and I am very happy with the unscaled display. Up to 108 DPI there is no reason for automatic BC_SCALE>=1 and should be left to the user. With my monitor I am now forced to specify BC_SCALE=1 or write a script. Which brings me to the next point.

2) BC_SCALE should be adjustable via settings. Proposal for the description under menu item Appearance, Layout: GUI and Font scaling (Adjusting the scale requires an application restart to re-layout.)

3) I noticed a little bug: Appearance, Color: Composer GB Color (view scaled)

For some reason, I assumed that the high resolution themes would be created extra and then used instead of the usual 96 DPI export. However, the icon theme is simply scaled up to show artifacts. But as long as only users with low resolution monitors will use this feature, the artifacts will only be taken as blurred images. It is not possible to use icons with a high resolution at the moment, for entertainment, I've included a screenshot showing CGG with 200 DPI graphics.

BC_SCALE-Auto_200DPI.webp (112,512 bytes)
Pierre

Pierre

2019-10-21 05:09

updater   ~0002309

Okay, I installed the test version for Mint18. I don't know if I'll really see any differences, I don't have any 4k screens; all my screens are 1080p (even if I use three side by side in multi-screen mode). I use the Neophyte theme. If I observe a problem, I will report it.
PhyllisSmith

PhyllisSmith

2019-10-21 01:08

manager   ~0002308

@peregrine

OK, we have a solution and if anyone could test, we would really appreciate that. You will have to download the appropriate distro static tar to test. There is currently a Ubuntu16, Mint18, and Ubuntu18 available but we will build any other distro static tar for willing testers -- just let us know which distro. The available static tars can be downloaded by going to:
    https://www.cinelerra-gg.org/downloads/#documentation
and clicking on the "file storage" icon.

To test, you will have to use this line from a window: BC_SCALE=2.0 {your cinelerra path}/bin/cin

Testing involves just "using" it. The 15, 500 insertion and deletion lines are only supposed to impact the size of windows, text, spacing, and icons. For a little more information you can refer to:
    https://www.mail-archive.com/[email protected]/msg00674.html
Olaf

Olaf

2019-06-10 06:57

reporter   ~0001710

> "And how does that affect the themes, the graphics are all static after all."
After examination I come to the result: From the themes Neopyte, Cakewalk and Unflat you can immediately create themes for DCI 4K/UHD 4K. This would give CGG three real 4K themes. Whether slight adjustments will be necessary will be seen after the rebuilding of the framework.
Olaf

Olaf

2019-06-06 18:28

reporter   ~0001676

> Phyllis: "Just an update prompted by a forum item stating that this is a timely, desirable and necessary improvement.
WTF? Boredom?

And how does that affect the themes, the graphics are all static after all.
Andrea_Paz

Andrea_Paz

2019-06-06 07:26

updater   ~0001674

Very interesting; there is also a fork di Xephir that introduces OpenGL in hardware.
https://github.com/fenghaitao/xserver-with-gl-accelerated-xephyr
PhyllisSmith

PhyllisSmith

2019-06-06 03:41

manager   ~0001673

Xephyr might be an interesting approach - thanks for testing this out.
Andrew-R

Andrew-R

2019-06-05 22:03

reporter   ~0001670

Ah, it works, as in sense I can see same wrong layout in Project Format if I set both BC_ICON_SCALE=2 and BC_FONT_SCALE=2. So, i think at least GG can try Xephyr command for emulating HiDPI screen .. but this require a lot of mousing around (and use of alt + mouse drag)
Andrew-R

Andrew-R

2019-06-05 21:55

reporter   ~0001669

I tried to 'emulate' HiDPI screen via Xephyr, but for me (E16 window manager + CinGG) at least project settings dialog was normal?!

Try
 Xephyr -screen 3200x2600 -dpi 450 :1
DISPLAY=:1 starte16 (or startfluxbox, or something of this effect)

Then from big Xephyr window launch cin. May be you can even keep cin-windows inside this emulated X server (on real HiDPI screen) with low dpi, and use compositor at least on real screen with HiDPI ?
PhyllisSmith

PhyllisSmith

2019-06-05 18:45

manager   ~0001662

Just an update prompted by a forum item stating that this is a timely, desirable and necessary improvement. Question was without actually having a 4k monitor to work on "can't you change the program and have users test it and see if it works?" From our experience, this potentially takes at least 1 dedicated tester with at least 1 month of time. A case in point was the ShuttlePro where Pierre had this extremely devoted time to assist, we also had the hardware, and it definitely took more than a month to get it properly implemented.

Hoping a volunteer programmer shows up!
terje

terje

2019-02-11 23:39

reporter   ~0000856

Upload two sample screen shots from Cin GUI on XPS 13 (9370) with 3840x2160 UHD HiDPI display.

To be properly readable the following environment variables are set
export BC_ICON_SCALE=2
export BC_FONT_SCALE=2

Set_Format_HiDPI.png (84,610 bytes)
Set_Format_HiDPI.png (84,610 bytes)
Font_type_HiDPI.png (89,095 bytes)
Font_type_HiDPI.png (89,095 bytes)
PhyllisSmith

PhyllisSmith

2018-12-06 17:13

manager   ~0000065

Level 2 or 3 HELP needed
---------------------------------
Good idea to put this on the future roadmap. A user did notify us in June about this and at that time we responded as follows.

"474 is the number of references in cin5/guicast code that would have to have X and Y scaled for hidpi. This is a relatively easy task, but in most cases this is simple scaling (which is not the same as re-packing) the widgets in the panel geometry will produce a kind of "grainy" result in cursor positions. Re-packing would require reworking the layout in all of the guis and plugins. Not impossible, but no small task.

However, the technical programming is not the problem, whereas creation of a patch and testing would obviously require a monitor and graphics card that is capable of running in HiDPI mode. And we don't have one of these."

A C programmer with an HiDPI monitor could handle this at a Level 2 or 3 (rating system of Level 1 being easiest and level 5 being hardest). We would get someone started and help all along the way.

Meanwhile, users who are lucky enough to have an HiDPI computer setup can at least use the following to better see and these can be added to your .profile file:
  export BC_ICON_SCALE=2
  export BC_FONT_SCALE=2

Issue History

Date Modified Username Field Change
2018-12-06 09:40 peregrine New Issue
2018-12-06 09:40 peregrine Tag Attached: GUI
2018-12-06 17:13 PhyllisSmith Note Added: 0000065
2018-12-06 21:54 PhyllisSmith Tag Attached: HELP needed
2018-12-06 23:57 Sam Category General => Bug-Issue
2018-12-07 00:00 Sam Category Bug-Issue => Bug
2019-02-11 23:39 terje File Added: Set_Format_HiDPI.png
2019-02-11 23:39 terje File Added: Font_type_HiDPI.png
2019-02-11 23:39 terje Note Added: 0000856
2019-06-05 18:45 PhyllisSmith Note Added: 0001662
2019-06-05 21:55 Andrew-R Note Added: 0001669
2019-06-05 22:03 Andrew-R Note Added: 0001670
2019-06-06 03:41 PhyllisSmith Note Added: 0001673
2019-06-06 07:26 Andrea_Paz Note Added: 0001674
2019-06-06 18:28 Olaf Note Added: 0001676
2019-06-10 06:57 Olaf Note Added: 0001710
2019-10-21 01:08 PhyllisSmith Assigned To => PhyllisSmith
2019-10-21 01:08 PhyllisSmith Status new => feedback
2019-10-21 01:08 PhyllisSmith Note Added: 0002308
2019-10-21 05:09 Pierre Note Added: 0002309
2019-10-23 08:44 Olaf File Added: BC_SCALE-Auto_200DPI.webp
2019-10-23 08:44 Olaf Note Added: 0002312
2019-10-23 14:31 PhyllisSmith Note Added: 0002313
2019-10-23 15:08 Pierre Note Added: 0002314
2019-10-23 16:07 PhyllisSmith Note Added: 0002315
2019-10-23 16:22 Pierre Note Added: 0002316
2019-10-23 19:48 PhyllisSmith File Added: x.png
2019-10-23 19:48 PhyllisSmith Note Added: 0002317
2019-10-23 23:45 PhyllisSmith Note Added: 0002318
2019-10-24 11:40 Olaf Note Added: 0002319
2019-10-25 01:17 PhyllisSmith Note Added: 0002320
2019-10-25 11:11 IgorBeg File Added: YUV411-plugin_resize1.png
2019-10-25 11:11 IgorBeg Note Added: 0002321
2019-10-25 13:16 PhyllisSmith Note Added: 0002322
2019-10-25 19:32 PhyllisSmith Note Added: 0002326
2019-10-25 20:33 PhyllisSmith Note Added: 0002327
2019-11-02 23:54 PhyllisSmith Status feedback => closed
2019-11-02 23:54 PhyllisSmith Resolution open => fixed
2019-11-02 23:54 PhyllisSmith Fixed in Version => 2019-10
2019-11-02 23:54 PhyllisSmith Note Added: 0002379