Long-term death of bitmaps
Posted Jul 28, 2004 8:40 UTC (Wed) by
pm101 (subscriber, #3011)
Parent article:
X at OLS
While we're on the topic of X, I'd like to point out one more change that will likely happen in the mainstream at some point (if not yet): The death of bitmaps. My notebook has a 1920x1200 15.4" display (about 150dpi, if I'm not mistaken). We have projectors and plasma displays with about 20dpi. I have near-perfect vision, but some of my older relatives are blind as a bat. We need different minimum sizes to see correctly. We're getting these wonderful 3d screen candy GUIs where window pixels no longer correspond to screen pixels. On Macs, I've seen hacks where when you move over an icon, it gets bigger. On Windows, I can resize fonts, but I can't resize icons. My mother always complains they're too small on my notebook display. There's no way to fix it.
What I'm saying is that with very few exceptions, everything ought to be scalable. When things are scalable, if you're in a 3d rendering environment, it doesn't make sense to render to bitmap, then scale/stretch/skew/rotate that bitmap.
It's stopping to make sense to have little 32x32, 64x64, and 128x128 icons, and pick the best one. In most cases, and artist will draw an icon at something around 1024x1024, scale down to those resolutions, and then have [X/the window manager/etc.] scale back to some arbitrary resolution. Fonts, in Looking Glass (the new Sun 3dUI) get rendered to an arbitrary resolution, and then scaled again when rendered in 3d, giving ugly artifacts. You can get much better quality output if you just start with the original vector (or high-res bitmap) images, and scale directly to whatever size, skew, and orientation you need them in. Done in hardware, this can be very, very fast, but we're almost (if not already) at the point where this can be done more-or-less in software. A normal app should not know or worry about pixels.
I'm not saying this is a feasible approach with today's apps and hardware. But it will be shortly, and it should be built into the X architecture if we're redoing it. No reason to design for obsolence straight off the bat. Apps should be written to pure vector display, and in the short term, we can just prerender to bitmaps for 3d, scale icons only once to some fixed resolutions, and cache the low-res ones, and so on. Once we can scale in realtime, we can have a neato SGI-like zoom roller in our file manager, beautiful 3d windows, animated resizing icons, and so on.
(
Log in to post comments)