LWN.net Logo

Advertisement

E-Commerce & credit card processing - the Open Source way!

Advertise here

Long-term death of bitmaps

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)

Long-term death of bitmaps: Compositer policy?

Posted Jul 30, 2004 1:05 UTC (Fri) by AnswerGuy (subscriber, #1256) [Link]

Sounds like that would just be a byproduct of rendering to the virtual frame buffer and allowing a compositer policy to manage the scaling to the real display.

JimD

Long-term death of bitmaps: Compositer policy?

Posted Jul 30, 2004 8:03 UTC (Fri) by pm101 (subscriber, #3011) [Link]

It really wouldn't -- the problem is double scaling. You lose quality. If you render a 24 pixel font, and scale it to 18 pixels, it looks worse than the original font rendered at 18 pixels. It looks even worse if you stretch it to 48. You could render at 400 pixels, and scale, but it would suck in terms of performance, memory, etc.

It'd be nice if the input to the compositor could be vector, so that fonts and so on would come out nicely.

[nt] SVG Fonts?!

Posted Jul 30, 2004 19:12 UTC (Fri) by Luyseyal (guest, #15693) [Link]

Long-term death of bitmaps

Posted Jul 30, 2004 1:23 UTC (Fri) by daenzer (subscriber, #7050) [Link]

Sounds pretty much like what Cairo, SVG and friends are about...

Long-term death of bitmaps

Posted Jul 30, 2004 22:53 UTC (Fri) by cdurst (guest, #2953) [Link]

Hey! I know!

Let's build an X server on top of a programmable vector graphics layer... like, say PostScript!

:-)

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds