Bug 23577 - provide designed viewing distance in addition to DPI
Summary: provide designed viewing distance in addition to DPI
Status: RESOLVED WONTFIX
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: unspecified
Hardware: Other All
: medium enhancement
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-28 08:39 UTC by Stanislav Brabec
Modified: 2010-08-09 13:33 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Stanislav Brabec 2009-08-28 08:39:20 UTC
DPI is an exact number that returns physical characteristic of the display. But it does not give information about the nature of the device, so implementors still have to define proper font and button sizes and spacing in themes.

The same 3 inch display can be used as a main display of a PDA, or an informative display that should be viewed from a long distance. Also large wall displays are typically viewed from a longer distance and should display larger texts.

That is why there should be one another value, that provides this information, and would allow reuse the same application without any font, button size or spacing modification.

This would be a single number, that can be represented in several ways:

- designed viewing distance

- designed viewing angle of the display

- dots per angle unit when placed in the designed viewing distance

- angular size of pixel in the designed viewing distance

It is possible to select obscure units to make new values replaceable by the DPI based values without any recalculations:

For example: If we select unit as a "millimeter as it is seen when placed in a standard viewing distance of the desktop display", then application authors can simply replace dpy->mwidth by dpy->dvwdmwidth.

Example of possible future usage:

Starting server for a small wall panel:

X -dpi 200 -dvwd 2000

Starting server for PDA:

X -dpi 200 -dvwd 300

Applications that use dpi (like "display millimeter gauge") will use the same size on both displays, standard applications can use dvwddpi (like "display status with a standard font") and will adopt to designed viewing distance.

Reference (Czech language): http://www.abclinuxu.cz/zpravicky/sharp-pc-z1-netwalker-linuxovy-pocitac-do-dlane/diskuse#47
Comment 1 Tom Horsley 2009-08-28 09:03:49 UTC
There is absolutely no effective difference between overriding the DPI and
adding complicated angular diameter calculations to invent an effective DPI
different than the physical DPI. Just give me an easy way to simply override
the DPI on a per monitor basis and I'll be perfectly capable of making my
displays readable regardless of whether I go through complicated trig
calculations based on distance from the display, or I just change the number
till it looks good :-).

The problem is that all the ways you used to be able to override the DPI
(like lying about the monitor size) are now being ignored by the X server
which just knows it is smarter than you are.
Comment 2 Stanislav Brabec 2009-08-31 03:22:43 UTC
Providing false values for DPI, height and width to get required GUI dimensions seems to be an abuse, not the correct use, and it breaks expected API behavior. I can imagine many valid applications that depend on a true physical size. For example: "button just enough for a finger touch", "use the size of the physical (printed) template attached to the screen", "display millimeter gauge", etc.

The angular calculation may be a purely virtual thing. That is why I propose a very obscure unit "millimeter as it is seen when placed in a standard viewing distance of a desktop display" and "dots per inch seen in a standard viewing distance of a desktop display".

Porting applications to this extension would consist just from a several search/replace.

These units are obscure but intuitive: If designed viewing distance of your display is equal to standard viewing distance, then DPIiaSVwD = DPI. If designed viewing distance of your display is two standard viewing distances of a desktop display, then DPIiaSVwD = DPI * 2. It will cause that physical sizes of fonts will be multiplied by two.

DPIiaSVwD = DPI may be a smart default, if no value is provided.
Comment 3 Adam Jackson 2010-05-10 11:51:16 UTC
We don't have any way of knowing designed view distance; it's not something the hardware tells us.
Comment 4 Felix Miata 2010-05-10 12:30:54 UTC
(In reply to comment #3)
> We don't have any way of knowing designed view distance; it's not something the
> hardware tells us.

It needn't be provided by hardware. It simply needs to be an available user provided setting, as long as hardware cannot do it. It need not be "designed viewing distance" either. Simply "viewing distance" would be sufficient.
Comment 5 Adam Jackson 2010-08-09 13:33:40 UTC
(In reply to comment #4)

> It needn't be provided by hardware. It simply needs to be an available user
> provided setting, as long as hardware cannot do it. It need not be "designed
> viewing distance" either. Simply "viewing distance" would be sufficient.

That's something client conventions can handle.  Not an xserver bug.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.