On Wed, May 8, 2013 at 11:07 AM, Alexander Larsson <al...@redhat.com> wrote:
>> We're moving to a "HiDPI" world. With 3DTV failing in the market, >> it's looking like the TV manufacturers are going to push hard on 4K, >> and once 4K panels are widely available they'll work their way down to >> PCs fairly quickly. By the time Wayland is moving into mainstream >> adoption, if 4K isn't the standard yet for 20" - 24" monitors it will >> be imminent. > > I disagree, external monitors will be not be commonly HiDPI for a long > time, so having a mix of "Hi" and "Low" DPI monitors will be common for > a long time. Manufacturers want standards; when they move to doing 4K TV panels, they're going to want to move to doing that, and drop 1080p panels as quickly as they can. There might be a year or two of transition, and obviously there's the legacy hardware that people actually own, but have you tried to buy a monitor that isn't 1080p lately? It's still possible, and if you're willing to pay a premium or do a lot of looking you can get other resolutions, but if you just walk into a computer shop looking for a screen, it's a sea of 22" to 24" 1080p monitors. Sure, it'll be a mix for a while, but monitors age out pretty fast. How many CRT monitors do you know of that are in active use? It hasn't been a decade since CRTs were dominant and LCDs were an expensive niche product. We've still got some tube TVs kicking around the office, (a Commodore 1702 and a couple of trinitrons), but I don't think they've even been plugged in for the past four years. Except for the Commodore it's only inertia and the possibility that one of the LCDs might fail that has kept them out of recycling. Laptops age out fast too, and the screen density on those is climbing as smartphones push panel densities higher. Do you know anyone running a laptop that's more than six or seven years old? If you do, either they're running it plugged in all the time, or else they've probably spent more money on replacement batteries than it would have cost to buy a new laptop. Battery longevity is still dismal. I'll give you projectors, though. > I don't think we can assume everything is high dpi for a loong time. > There is both the external monitor case and old/non-apple hardware to > consider. So apps and things like themes must specify coordinates in a > scaled coordinate space, or things will just not work on hidpi displays > (i have one, its unusable without it). And, for various technical as > well as visual (non-aligned/integer width borders in e.g. buttons look > *really* bad) we need this scaling factor to be an integer. The visual problems can be severely reduced if you floorf() your scaled coordinates for geometric elements, and make sure you're rendering text at the appropriate dpi. I've done a fair amount of scalable gui work in games, and just doing those two things makes a world of difference. That said, I'm not arguing against integer scaling so much as I'm arguing that without care we wind up in the place where iOS is heading, where 1:1 scale is only useful on hardware nobody has any more, and everything else deals with scaled/quantized coordinate systems. > This is due to the way microsoft handled this, enforcing apps to do the > scaling. This solution is completely different. All input will be > pre-scaled and appear in "lodpi", and upscaling will be fully automatic > by wayland and/or the toolkit. That solves the pilot error problem; the main problem on windows, really, is that nobody thinks to test their software at other DPI settings. Is there a way to bypass the scaling? When I'm using the mouse in a game, I want to know the pixel position of the pointer, with no scaling applied. I'm going to be drawing the gui at native res, and I want the mouse to interact with it at native res. >> The angle subtended by a pixel to the viewer is the problem. > > Its true that the monitor DPI itself doesn't necessarily map directly to > whether the monitor is HiDPI or not. We may very well need to scale the > UI up on your 46" TV, but that can be done as well with buffer scaling, > and it will work automatically with all apps, and scale > icons/borders/padding, etc as well as fonts. This is my point; the OSX solution is to assume a DPI based on resolution and screen size, and that's clearly insufficient to solve the problem. You can quantize the scale to integer pixel multiples if you like, but I think there needs to be a system (even if it's just a simple tool somewhere) that lets the user say "I'm sitting 1.3 meters away from this display", and does the subtended angle math to decide what the candidate scale factors should be. That info should also be directly available to applications, so (especially in the case of things like games and image editing programs) they can make judgements about how to size things for display elements that aren't part of the gui toolkit. Things like displaying documents or images "actual size", or games trying to decide how large they should render their GUI text. Todd. -- Todd Showalter, President, Electron Jump Games, Inc. _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel