Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for May 23, 2013
An "enum" for Python 3
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
Retina display support
Posted Jan 9, 2013 12:34 UTC (Wed) by NAR (subscriber, #1313)
Posted Jan 12, 2013 16:14 UTC (Sat) by intgr (subscriber, #39733)
Posted Jan 14, 2013 10:38 UTC (Mon) by NAR (subscriber, #1313)
Posted Jan 21, 2013 23:30 UTC (Mon) by oak (subscriber, #2786)
Posted Jan 9, 2013 12:56 UTC (Wed) by roc (subscriber, #30627)
Posted Jan 9, 2013 13:18 UTC (Wed) by robert_s (subscriber, #42402)
"They were never defined to be screen pixels. The new Firefox behavior is completely consistent with the spec."
Thing is, they _have_ effectively been screen pixels for the last ~20 years, and that's how people have been using them.
Being able to describe things in terms of screen pixels is fairly critical in order to avoid fuzzy graphics.
Posted Jan 9, 2013 13:35 UTC (Wed) by Kit (guest, #55925)
I wouldn't be surprised if it hadn't been true in practice even before that.
Posted Jan 9, 2013 13:36 UTC (Wed) by roc (subscriber, #30627)
We've found ways to avoid almost all problems when zooming Web pages.
Posted Jan 9, 2013 15:02 UTC (Wed) by robert_s (subscriber, #42402)
Depends what you mean by reliably. I'd say it's a good 90% of the time people aren't zooming or using a mobile browser and they do correspond. And in a world where nearly half of visitors use IE so nothing really works properly anyway, I call that relatively reliable.
I'm just quite depressed by the whole way "retina" has been handled by everyone. There have been many efforts at resolution independence over the last ten years - now when significantly different resolution devices come into the market all that seems to have been thrown out the window and everyone seems to need to go round adding "retina"-specific hacks, "retina"-specific icons and whatnot to everything under the sun.
"We've found ways to avoid almost all problems when zooming Web pages."
As a web developer I look at that statement with eyebrows askew.
Posted Jan 9, 2013 15:40 UTC (Wed) by Cyberax (✭ supporter ✭, #52523)
Retina displays allow no such slack. So everyone suddenly realized that their code is not actually that resolution independent and they have to do something about it.
Posted Jan 9, 2013 18:59 UTC (Wed) by redden0t8 (guest, #72783)
The browser still lays things out identically, it just renders extra pixels for text+vector graphics, and anti-aliases raster images. That's the whole reason why it's implemented using a pixel-ratio. Everything automatically works.
Coding webpages in real units is impractical anyways, as you don't know the device it'll be displayed on. No one on a phone wants a webpage to be initially zoomed to be 10 inches wide when their screen is only 2-3 inches wide. The first thing they'll do is zoom out to figure out where to scroll to before zooming back in. Same idea for a tablet. Laptops/desktops are a little easier, but you still don't know the size of the display (9" netbook or 30" desktop?), how far away the user is sitting (HTPC or netbook?), and how good their eyesight is. Ultimately, it's up to the device-maker and end user.
All the web-developer needs is a reference unit. The "pixel", while poorly named, already provides this. Each device maker can decide how to handle the scaling ratio for a given form-factor. Ideally one day, once desktop OS's are truly resolution independent, they'll let end-users pick their "ideal" ratio with a slider somewhere that affects the entire UI.
Yes you'll need to start serving up higher resolution images soon or later, but this is caused by hi-dpi displays in general and not just Retina(TM) displays. It's already possible to query the device pixel ratio in a browser-independent way, or alternately blindly serve up high-res images to everyone.
Posted Jan 9, 2013 20:09 UTC (Wed) by Cyberax (✭ supporter ✭, #52523)
I've actually long wished that we had some kind of 'pixels' with fixed angular size. But I kinda doubt that most web-developers would like to work with steradians :)
Posted Jan 9, 2013 21:41 UTC (Wed) by roc (subscriber, #30627)
Posted Jan 9, 2013 21:59 UTC (Wed) by Cyberax (✭ supporter ✭, #52523)
That's not a problem right now, since browser does all the drawing. But once we move into the brave new Canvas world, we'll start to get this kinds of problems. 1 pixel on a Retina display might be below eye's resolution, but 1px misalignment is easily noticeable.
Posted Jan 10, 2013 10:35 UTC (Thu) by roc (subscriber, #30627)
Posted Jan 11, 2013 10:02 UTC (Fri) by jezuch (subscriber, #52988)
Posted Jan 13, 2013 11:01 UTC (Sun) by jospoortvliet (subscriber, #33164)
Posted Jan 9, 2013 16:08 UTC (Wed) by niner (subscriber, #26151)
"For a CSS device, these dimensions are either anchored (i) by relating the physical units to their physical measurements, or (ii) by relating the pixel unit to the reference pixel. For print media and similar high-resolution devices, the anchor unit should be one of the standard physical units (inches, centimeters, etc). For lower-resolution devices, and devices with unusual viewing distances, it is recommended instead that the anchor unit be the pixel unit."
So for example a 3rd generation Apple iPad with so called "Retina display" has a screen resolution of 263.92 PPI which is much closer to a 300 DPI print than to the usual 90 DPI of a computer screen. Google Nexus 10 features 300.24 PPI. So I would say these devices are what the spec call "print media and similiar high-resolution devices" and 1px sould be 0.75pt or 0.26458333mm.
Using 2x2 device pixels seems to be just as wrong as using 1x1. 2 display pixels on the Nexus 10 for example are just 0.1692mm wide compared to ~ 0.26mm width of the reference pixel the CSS spec uses.
Posted Jan 9, 2013 21:39 UTC (Wed) by butlerm (subscriber, #13312)
As a result, 2 x 2 device pixels per CSS pixel is just about ideal for a 192 DPI desktop display. Ideal as in minimizes aliasing for pixel oriented page designs, which are commonplace. If you have a handheld device, the DPI should be higher because the viewing distance is going to be less. 384 or even 400 dpi sounds about right for 2 x 2 scaling (2 dppx) on a device like that. 4x4 scaling someday (~768 DPI handheld, 384 DPI desktop) sounds well within the retina limit to me, at least if you want to avoid eyestrain.
Posted Jan 9, 2013 21:45 UTC (Wed) by roc (subscriber, #30627)
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds