Next-Gen X Window Rendering For Linux
Bytal writes "Seth Nickel, a GNOME hacker, has an extensive treatment of the next generation Linux graphics technologies being worked on by Red Hat and others. For all those complaining about the current X-Windows/X.org server capabilities, things like 'Indiana Jones buttons that puff out smoothly animated clouds of smoke when you click on them,' 'Workspace switching effects so lavish they make Keynote jealous' and even the mundane 'Hardware accelerated PDF viewers' may be interesting."
And only a few days ago we were asked, "Where have all the cycles gone?" Sheesh.
I am sure the new Linux desktop will make OSX look like Windows. And then the entire creative department will rush out and buy Linux based laptops just to look trendy.
This is not the sig you are looking for...
"Indiana Jones buttons that puff out smoothly animated clouds of smoke when you click on them"
This is kinda cool. I know it seems gimmicky and all, but I have to say there's something to be said for having a UI that subtley lets you know what you just clicked on.
I know a few people aren't keen on eye candy. They worry about slowing things down etc. But I have to say, in my own experience, the more visual feedback I get from my computer, the more attuned I get to using it. A lot of my actions become reflex instead of having to decipher what I should do next. For example, I use Opera. When a page is loading, a red X lights up. (Click on it and it stops the page from loading.) It's subtle, but I actually do react to that red icon there when it's on. Somewhere deep down, I have a sense of "This page is ready for you to browse". I find that sort of thing useful.
Of course, it can be done badly or absurdly, but eye candy like this can actually be really useful.
"Derp de derp."
I submitted this story to Slashdot last week, but for some reason it seems to be stuck in "Pending" status, so go here: http://nat.org/2005/february/#9-February-2005
It's an OpenGL-based X11 server, complete with some screenshots. Apparently, window dragging is very smooth (no repaint events are even given to the apps), and with Cairo and GTK, this really could be the future backend for Linux desktops.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
i wrote a paper on this topic for my CG1 class, and it covers most of the modern display systems with a few right around the the horizon.
i'm hoping cairo/glitz will give quartz extreme a run for its money. now we just need to get started on implementing something similar to coreimage/corevideo!
- tristan
Granted, Enlightenment is a window manager that lives on top of the existing X protocol, but nearly every single piece of 'eye-candy' this guy mentions is already do-able in E17.
Sounds just like the themeing system in E17 to me... http://enlightenment.org/pages/systems.html
Don't get me wrong, the things Seth describes sound cool, but the way he describes it makes it sound like they're the only ones with these ideas, when in fact Enlightenment 17 is already enabling most of what he mentions in this article. Sure, it's not a "production" release yet, but DR17 is certainly usable today, and has most of the features he mentions.
Heck, some things Seth talks about (Live window thumbnails) have been available in Enlightenment for quite some time (I know DR16 has them, and maybe earlier versions as well)
Hard to hate something like that?
You have go to be kidding. It even got worse when System 8 would chastise you for "not shutting down properly" when you were forced to hard reset the locked up bastard. Gah! Nothing like that smiling little MacOS face telling me I've been a bad boy and to be more careful next time. YOu! YOU! Be more careful! You don't overwrite other programs memory space and trash my work!
Oh yeah and the crash dialog boxes may as well have been labeled "Fuck me" for all the good they did. Force quit? Yeah that worked well. Should have been labelled "Finish Crashing".
Sometimes my arms bend back.
"...is that really all that the future holds? More special effects, without any substantial improvements in usability?"
Improvements such as.... (?)
Don't think I'm singling you out, as I'm not, but why is it whenever someone posts articles regarding improvements to X, and really to Linux in general, that everyone comes out of the woodwork to complain, without offering any positive comments, or conclusions?
Your post goes into detail about how you don't want these effects, and run Blackbox still, but WTF do you want then? And I ask this to everyone when they complain about what developers are working on in Linux... Everyone can complain, but few are able to offer good input, let alone suggest how we get from point "a" to point "b".
Let's face it... Eye candy sells pc's (No... Not to you Blackbox users... You guys are probably happy running on a PII still). You want to know why the Amiga still gets the nod a lot of the time? Because it did things with graphics (aka 'Eye Candy'), which no one, on any platform, was doing at the time!
Yes, they had a multi-tasking environment, and a lot of other unique things about them (as a former Amiga owner, I can tell you that the pro's and con's were pretty equal in some ways... Lemme tell you that I don't miss the "black screen of death", with tis esoteric guru errors!), but the fact remains that the Amiga stood out from the pack due to its eye candy capabilities.
You know why a lot of people (again... Not us typical Slashdotters, but the average Joe Computerguy) are drawn to the Mac? It's clean, well thought out, and it looks good on screen! You laugh at the puffs of Indiana Jones smoke comment, but one of the things which many people notice first about my Mac is the "puff of smoke" that appears when you drag an icon off the dock. Yeah, it's cheezy, and won't entertain anyone for too long, but it grabs the eye and sticks with you!
A lot of people in this thread, and elsewhere, point out how much they hate Windows, and its GUI, but look at one of the faster growing segements of consumer software: GUI Mods, and eye candy! People want a cool looking computer, and have shown that theyr'e willing to pay for this.
So when everyone's here knocking these guys for adding new and accelerated features to X, I applaud them! Will it win over new users? Very possibly, and even if it does not, it will show that Linux is capable of the same kind of cpu-waste than Windows and OSX is, which is important to a very large demographic of people.
And I hope that this also indicates that more hadrware vendors will be jumping on board soon too! I still find it very frustrating that if I want accelerated graphics in Linux, I have to either run it on older hardware (My old ATI Pro Wonder, and a CompUSA branded S3-Virge, for instance, will run in accelerated modes), or purchase an Nvidia card. I personally like ATI card, and have them in both my X86 boxes, as well as my Mac, and they perform great! Until you add Linux into the mix...
Under X, my 9600 card still will not run in accelerated mode when driving dual monitors. My OSX box and Windows however will handle this just fine.
My point is rather than berating people for developing something that you're not interested in (all the while alluding to the fact that they should be focused on something else, without quite saying what that something else is), why not focus on the potential increase in users of OSS software (Linux), and think about the hardware support and technology which will follow such an increase in usage. Or better yet, start learning how to code, and prove to the world that you're right. All's you're doing otherwise is whining IMHO, and potentially driving developers over to other platforms.
Think about it... You're an OSS developer trying your best to ignore the financial gains of developing for Windows or OSX, in favor of developing something the whole world can enjoy for free, and all's your target audience do
What do you have to offer other than your word?
Well, an understanding of the topic we're discussing, for starters. I mean, I know what all the words mean, which is clearly something that you can't truthfully say. All you've done is pull quotes from marketing brochures! There's no evidence at all that you have even a passing familiarity with the basic concepts under discussion here.
you're going around claiming Quartz doesn't use PDF for imaging
Correct.
when every developer documentation from Apple directly states that Quartz uses the PDF imaging model
Also correct.
Gasp!
How can this be! How can Quartz 2D both be PDF and not PDF!? He's a witch!
Friend, in order to wrap your head around this topic, you're going to have to understand what the expression "imaging model" means. An imaging model is not a file format, and it's not an instruction set, and it's not an interpreter. It's not actually any type of computer software at all. Rather, it's a way of looking at things.
Back in the old days, we had QuickDraw. QuickDraw used a pixel-based imaging model. You drew to the screen by specifying coordinates in terms of pixels: integer coordinates, bottom-left origin, one pixel was exactly one seventy-second of an inch. Regions were translated literally by shifting bitmaps around in memory. That was the QuickDraw imaging model.
That worked great for drawing to the screen, but it didn't work at all for drawing to a laser printer. For drawing to a laser printer you needed a totally different imaging model. Which means you had to do one of three things in your program: Either you had to maintain an internal representation of whatever you were drawing in whatever form was appropriate for printing and then convert that to QuickDraw for on-screen display, or you had to maintain a QuickDraw representation and convert it at print time, or you had to do both.
But the advantage of QuickDraw was massive: You could draw right into video memory. Toggle a bit in memory and a pixel changed color on screen. Very efficient.
Quartz 2D is different. It uses an entirely different imaging model. Rather than representing on-screen graphics as bitmaps in memory, Quartz 2D creates a layer of mathematical abstraction. With Quartz 2D, you still have a bottom-left origin, but you're not longer on an integer plane. Coordinates are given as floating-point numbers. You don't deal in pixels, but rather in mathematically pure regions of the drawing plane.
You draw in Quartz 2D by defining regions. A region is a locus of floating-point coordinate pairs. For example, (2.1, 3.37), (6.29, 5.3), (7.889, 1.961) defines a triangle. You draw by telling Quartz 2D to fill that region with a certain color, defined by any of the supported color spaces. For instance, you might use RGBA, meaning you'd specify red, green and blue color components and a floating-point opacity value.
Sending these commands to Quartz 2D from within your program creates an in-memory data structure called a display list. This display list doesn't look like anything at all; it's just a sequence of bytes that are encoded to represent the scene you drew. The display list doesn't become anything until you send it to Quartz Compositor (or Quartz Extreme) to be rendered into pixels.
The fundamental assumptions behind Quartz 2D drawing -- the coordinate system, the color spaces, all the low-level details --are referred to collectively as the "imaging model."
PDF has an imaging model that is very similar to Quartz 2D's imaging model. Not identical, but very similar. That's because Apple's engineers were inspired by both PostScript and PDF when they created Quartz 2D.
Because Quartz 2D and PDF use the same imaging model -- the same set of fundamental assumptions --it's very easy to convert a PDF file describing a scene to a Quartz 2D display list that describes that scene. Or you can go vice versa, starting with a Quartz 2