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.
...negotiating with graphics card manufacturers to get some solid, open drivers for Linux.
That would make this endevour much easier in the long run, would it not?
There's a Mercedes gap too. I want one and can't afford one, but it's not government's job to do anything about it.
Forward: For a drawn out post on next-generation X rendering, this blog entry is really short on eye candy. I apologize, but I'm at home, separated from my beloved eye candy, and figured I should write this while I felt motivated. As a way of forcing my own hand, I'm making a link now to a blog entry I haven't yet written that will contain screenshots in the future :-)
Next-Generation Rendering For the Free Desktop
For the past half year or so Red Hat's desktop team has had people working toward making accelerated graphics rendering on the free desktop badass, but doing an ass job of actually talking about what they're doing in a larger public / GNOME context. They've been doing a combination of experimentation (from that cracktastic OpenGL compositing/window manager luminocity to xsnow for the Xcomposite generation) and knuckle-down no-holds-barred infrastructure work (like making Win32 GTK work on Cairo so GTK can move to cairo as the default backend). With RHEL4 kicked out the door we've been able to rebalance day-to-day work on GTK and X onto other people to give the nextgenren hackers free hands. Currently the full-time nextgenren team at Red Hat is Owen Taylor (gtk/pango maintainer), Søren Sandmann (x hacker), Diana Fong (visual designer), Kristian Høgsberg (x hacker) and Carl Worth (cairo maintainer).
I'm really excited because these guy's expertise is across a broad chunk of the rendering pipeline, from the toolkit down to the x server, which is going to give this effort the ability to work on this from a global perspective rather than optimizing the bits where we happen to have influence in. I'm doubly excited because other companies (well, Novell at least, but hopefully others will join) are starting to invest in this effort too!
I'm hoping to drag Owen into spinning this off into an umbrella effort (ala project utopia) to help maintain a coherent story/platform even as lots of people pour work into lots of different packages and distros. There are so many different ways to attack the X rendering issue that I'm a little worried about seeing a lot of fragmentation of effort and the result not being particularly coherent. I do hope people experiment with lots of different approaches, but I also really hope that in we can give developers a consistent platform for doing cool graphics on the free desktop. It would be a real shame to end up with the message in two years being "well, platform X has the feature you want, but you have to worry about also working with Y because X won't work well on distro Z". This sort of technology-choice morass can really dampen developers playing with this stuff and adding support all over GNOME, which is exactly the sort of quick-fiddling big-payoff stuff I think we'll see a lot of as soon as this stuff starts landing. In other words, lets push toward the point where people can feel confident and start hacking up cool things for this system inside GNOME.
What It Might Look Like
A really good system needs to have lots of pieces in place all hooked together....its not something that can be hacked apart and replaced by arbitrary random incompatible bits (though there are points of commonality, such as OpenGL or Render). For example the pieces in one imaginable architecture - by no means the decided-upon final one or anything - might look like:
* A sophisticated drawing layer (cairo using glitz/opengl or render as backends)
* Stock renderers built on top of that drawing layer (pdf/ps rendering backed by cairo - such as Alex Larsson's xpdf fork in evince, svg rendering backed by cairo, etc)
* A toolkit that agressively takes advantage of the features in the drawing layer, exposing them to applications and themes (gtk+)
* A window+compositing manager that can work closely with the toolkit but essentially takes the window contents as a static image in compositing (metacity with luminocity-like GL compositing manager features fused in to deal with window effects, synching up smooth resizing
Actually reading through it now, it looks like they are going for a combination of OSX and XP. Still got to ask, are they beating a dead horse, when OSX does Xwindows too?
"Slashdot, where telling the truth is overrated but lying is insightful."
oh. sorry. parsing error.
I read that as "Next Gen-X Window Rendering for Linux"
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
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...
Seems to be working toward the same goal as the E folks with their DR17 and associates libraries.
Windows that shrink scale and move all over the fucking place with cool animations
Yes, sounds... nice. And easy to work with.
Life is Reality
"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.
I didn't see any specific mention in here, but does this include having a fully 3D accelerated Framebuffer device across graphics cards? I've been missing this for a while in X, having just gotten triple-monitor across two Radeons working. It would be cool to be able to play any 3D game across three monitors.
I'm not losing any sleep over this, but it would be cool. I read on an X board that some people are looking at this, but it's obviously a big undertaking.
overall the idea is good, however...
1) rendering to texture is slow on some GPUs, especially GPUs with limited memory.
2) alpha blending is expensive on almost all GPUs.
imo X needs an overhaul, needs to ditch the legacy crap (lose Xaw for example) and move on. stop interfacing with video hardware like it's 1980.
but considering this guy has basically laid out a "What It Might Look Like" roadmap, this looks like more more vaporware than Avalon ever was. Three more years, at least.
Go somewhere random
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Particularly true with Tiger (what with the new CoreImage technology), OS X really can push eye candy more than Windows (and Linux) for one main reason - the mac development team have a limited number of graphics cards to develop for, and the drivers are pretty much rock solid.
I just don't see that happening in Linux / Windows - developers must write for as wide a range of hardware as possible. One would therefore imagine that such eye candy being talked about in Linux would be optional, and you'd only get the full benefit with the highest powered and most compatible graphics card - whereas in OS X, most users can get the eye candy without any problems. Of course, there are certain graphics cards on macs that don't support Core Image, Quartz Extreme etc, particularly on the older macs people are upgrading, but I'm willing to bet the majority of macs will be able to run Core Image etc. Whereas here, the minority of PCs will be able to run the Linux eye candy.
Seriously. Otherwise all the effort being put into X.Org's newest extensions is basically tied to the good will of card manufacturers when it comes to modern videocards.
Anyway, there's a lot of terrific work being done on X.Org - Cairo, XComposite and Damage specially. When these extensions become supported by the GUI toolkits, we'll be in for a treat. It's a shame it took guys like Keith Packard so long detach themselves from XFree86.
"Don't make it snazzy, make it *functional*, snazzy can come later."
I was under the impression that most of the UIs for Linux already are functional.
With that said: Visual feedback is part of being functional. Imagine if ythe cursor you used in the field you typed this into didn't blink. You could adjust to it, but admittedly this 'snazzy' feature is helping you.
'Snazzy' is more benefical than most realize. Remember that we, as a species, are interactive creatures. Visual snazziness really isn't all that different from body language.
"Derp de derp."
no... because basing it on OpenGL means that they are abstracting the GUI from the GFX card and the GUI will run on a computer that does not have the right hardware. if the right GFX card existed in the system, all the better.
I am the Alpha and the Omega-3
Hey, this will get you "Windows that shrink scale and move all over the fucking place with cool animations". What more could you want?
My other account has a 3-digit UID.
A few things that sound useful, like:
- Hardware accelerated PDF viewers
- Synchronized smooth resizing so there's no disjunct between window borders moving and the contents redrawing (you should see the demos of this in luminocity... it really makes a difference in how real the interface feels, just as double-buffering did for stuff moving)
- A shared path between on-screen display and printing (using Cairo's PDF/PS backends)
- Alpha transparency in applications whenever and wherever the urge strikes us
A couple things that may lead to greater usability:- Toolkit themes that draw with layer blending effects, delightful bezier curves, and irritating alpha gradients
- Live window thumbnails
And lots of rather pointless fancy eye candy:- Indiana Jones buttons that puff out smoothly animated clouds of smoke when you click on them
- Hundreds of spinning soft snowflakes floating over your screen.... without messing up nautilus
- A photograph of a field of long dry savanna grass as your desktop background... where the grass is gently swooshed around by a breeze created by moving your mouse across the background
- Windows that shrink scale and move all over the fucking place with cool animations
- Vector icons with very occasional super subtle animations rendered in realtime...a tiny fly which buzzes around the trash every several minutes, etc... think mood animations as in Riven (which as a total random aside is still a shockingly beautiful and atmospheric game years after it came out, postage stamp sized multimedia videos notwithstanding)
- Workspace switching effects so lavish they make Keynote jealous
- Brush stroke / Sumi-e, tiger striped, and other dynamically rendered themes where every button, every line looks a little different (need to post shots / explanation of this stuff, but another day)
- Progress bars made with tendrils of curves that smoothly twist and squirm like a bucket of snakes as the bar grows
- Text transformed and twisted beyond recognition in a manner both unseemly and cruel
- A 10% opaque giant floating head of tigert overlayed above all the windows and the desktop.
Now, these fancy effects are certainly kind of cool, and may look nice. (Though I can guarantee that when they're all in, I'll probably still be using Blackbox.) However, is that really all that the future holds? More special effects, without any substantial improvements in usability?How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
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
It's a nice idea, for sure. I just hope it fares a little bit better in reality than Seth Nickell's last grandiose idea. I'd like to see some of these idea implemented and not just discussed. Of course, I've contributed nothing to the success of these projects either -- and Seth's ideas are great. I'm not saying that I'm so much better than him, just that I hope some reality can emerge from this grandiose idea so that Linux doesn't develop the same reputation for vaporware as does Duke Nukem.
501 Not Implemented
You know what? I'm really sick of seeing OSX trolls posting all over slashdot.
Everytime ANY topic comes up, some OSX troll pipes in "So its just like OSX!" well, OSX isn't fully (or even mostly) open source, Quartz Extreme isn't an open standard, etc. Ok? Do you understand that? Even if it was, we like our software to be GPL'd so that we don't just shift ourselves from being slaves to Bill Gates and Microsoft, to being slaves of Steve Jobs and Apple. Mabye you don't care if you really 'own' your PC or not but we linux users do. So STFU with your OSX this and OSX stuff that.
Its even getting absurd. Someone mentions making a Linux network for sharing sound -- some OSX Troll pops in "Just spend thousand of dollars on mac parts and there you go! You don't have to use an inexpensive solution!"
Pretty soon I'm gonna start seeing "If those idiots voted in OSX instead of Bush everything would be perfect now".
The Gentoo-Emerge trolls never came close to the kind of witless trolling that you OSX fuckers are reaching!
I don't like your cheesy OS! I think the widgets are ugly! I think that stupid bar on the bottom of the screen looks like CDE back from the grave! I like my Athlon64 instead of your goddam PPC! I like my beige case instead of your tiny little silver box! I want to be able to open my case and see what shits inside it, and I don't want to have to use a fucking laptop harddrive in a non-portable computer!
Every-fucking-topic some OSX troll shoes his stupid platform in, its worse then the Liberal-Conservative crap from the Americans.
Look you obnoxious pricks -- not everyone digs your fucking Macs.
--SD
"Computers will never truly be free until the last windows user is strangled with the entrails of the last mac user."
Well, forgetting ATI, the nVidia drivers are solid, and I don't see why you're so adament on them being open. I've created some great 3d renders in OGL code without needing to know the details on the drivers. Also Windows GUI was designed all without knowing exactly what code is in the drivers.
Good documentation is all that's needed, and if you are going to insist on something from the manufacturers being open, how about we get Open standards so the same calls work on all vid cards.
Wait, we have that, it's called OpenGL and standard driver formats.
DarkMantle I been bored, so I started a blog.
Those of us who like out UIs fast, featureful, and pant wettingy gorgeous, already have what we want
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
Don't make it snazzy, make it *functional*, snazzy can come later.
Or not at all. Personally, I turn off just about any eye candy. Don't even need rendered window dragging.
Such "negotiation" would be largely a waste of time. You need to give graphics card manufacturers a market to care about and demand for their cards. Currently usage of 3d on Linux is very limited, a few games, visualisers and niche apps.
If 3d is used more widely used on the desktop then more card makers will see linux as a market for their cards and more people will be using 3d and pressuring for better, more open drivers.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
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)
'Indiana Jones buttons that puff out smoothly animated clouds of smoke when you click on them,'
Now that is a useful extension..
No wonder our brand new 4ghz machines run slower then my 20 year old AtariST..
Morons. "just beacuse" isnt a reason.
---- Booth was a patriot ----
Don't be so condescending to OSS. Prior to MacOS X, the Mac was an OS in the dark ages.
If MacOS didn't gut BSD, it would still be using cooperative multitasking.
Don't get me wrong -- I think X is "usable enough," but really, I don't think the moniker "next generation" is appropriate for anything but the most fundamental technological advances. Buttons that go "poof?" Is this seriously what we're concentrating our effort on?
So...you tell people that specialize in graphics programming to drop their keyboards and start calling people for specs? Why would you have some of the most talented programmers in the community become lobbyist?
One key points of open source development is that there is lots of different people from lots of different backgrounds doing the jobs they do best. I mean, how much do you think people would contribute if they were told not to work on their field of expertise to but to just email companies and bother them about specs all day? Its like having a bad job except, your not getting paid.
Open source is NOT about controlling the efforts people are making to contribute. Thats why X was forked in the first place. Now that we have people coming out of the woodwork to add great features to X, your complaining?
OS X is wonderful, to be sure. But it is proprietary and only runs on Mac hardware. Xorg is open source and runs on many operating systems and architectures. Big difference. You will continue to see Linux improve in the coming years and there will be more and more Linux desktop deployments. That is the advantage of open source. The battle is far from won. You didn't hear it here first, but you did hear it here.
Celebrate the finer things in life
IMHO, no app should be given information about it's environment. The only reason expose events exist is because back in the day there wasn't enough memory to store a complete image of every window - so the apps had to be asked to update parts of the display when they were exposed. Apps interacting with other apps without user intervention is definitely a no-no and is the source of some Windows security holes. I just how when (even IF) an app gets to screen capture itself they don't show other data through the transparent parts. It needs to be pulled from its private video memory and not off the screen. The user of course should be able to take a screen shot, so either the window manager needs to have special privledge or it needs to be integrated into the server. I think the special privledge is consistent with what exists today.
Hardware-accelerated PDF viewers, huh? Aqua beat already does that.
Well and before Aqua beat there were "hardware-accelerated postscript viewers" - but they were normally just called "printers".
If Linux can beat Longhorn to the punch with a fully 3D rendered GUI, ala OS X, I will switch 100%
Not to smack the OSX hornet's nest, but...
Linux needs to do far more than get to the OSX level if it wants to hold a candle to the Avalon plans Microsoft is not only putting in Longhorn, but WindowsXP.
The only things OSX is doing that Windows2000 didn't do is the off-screen rendering and having a more extensive vector based drawing capabilities ala Adobe.
Avalon is not only a whole new UI system for the OS and applications, but it is a simple development model that will let 10 year olds create 3D applications that look awesome. Easy programming will be a key part of the Avalon in Microsoft's Windows. DO NOT UNDERESTIMATE MICROSOFT IN THIS AREA. You will see awesome 3D applications and true 3D implementation that is functional in simple Visual Basic apps written by novice programmers even. Mark my words. (Letting things like Kylix die on Linux is another mistake everyone here is letting happen and should also be addressed, but is off topic for this post)
Additionally, OSX uses very few GPU hardware accelerated features in the UI and is only a 2D accelerated UI. It is not a 3D UI, you can place cameras, lights, etc in a application like you can with Avalon, they are night and day comparisons at this point.
With that said, it is sad that Microsoft's UI Beta is far more advanced that even what Apple seems to be planning or providing for its users, Apple is supposed to be the Graphics leader, and once again they are still playing catch up.
As to Linux, and the open source world, we need a revamp on a mass scale. A new X11 system that is hardware integrated expanded OpenGL and a whole Multimedia API like Microsoft's DirectX.
Someone above mentioned that things are harder on Linux and Windows, but actually they are right now easier on Windows, as developers, even hard core gaming developers can write to DirectX for all aspects of input, and audio and visual output and not have to deal with specifics of the user's hardware. This is something Apple also needs to implement, but they never have had to since they always control the hardware, but as their hardware expands with different features, it is something Apple needs to consider as well.
Hardware abstraction is a good thing, especially when dealing with high performance hardware like GPUs and Sound Cards that have built in rendering capabilities.
Linux, Open Source in General, and even Apple need to think past just getting by with OpenGL, and have a full consistent API if we are ever going to see a lot of great UI enhancements to these OSes, and offerings of Games that are easier for developers to port and create for the OSes.
Just like the Xbox, half the reason of its success is the ease of development for the games, using a DirectX interface made it super easy for Windows game developers to flip out an Xbox version and vise versa. It also made it easy for developers to take a game for the PS2 or GameCube and drop it into the standard DirectX programming on the XBox and Windows to create games for both platforms.
With DirectX the ports to the XBox and Windows became easy and routine as they only had to learn to port to DirectX, not a mass array of hardware. Which is where we are now, even with OpenGL and the driver situation in the open source world.
Ok, kind of got off on a rant, but we need to encourage the original developer and our open source leaders need to sit down and design a system that if far beyond OpenGL and the standard *nix models that are outdated for pumping mass amounts of audio and visual data to the screen and even across networks.
We also need to slap Apple in the face to get their attention. Them having control of the hardware is GREAT for them and their OS development, but it DOES LITTLE for gaming developers for OSX or for application programmers that want to add real 3D interface elements to their applications.
so are they putting any work into how these applications will work in the X Client/Server model, or are they just sweeping that under the rug (a la the dri and shm extensions). i'd be thrilled if they were looking at how they can add these as extensions that reduce the amount of X calls that need to be sent accross the wire, so you could use meaningful gui applications over slow to moderate speed network connections. of course it doesn't sound like it from any of the things that he mentioned, and it seems that X development lately has taken a 'the thin client is dead, so who needs network transparency' route.
If I don't put anything here, will anyone recognize me anymore?
XGL, also known as X they way it should have been (and will be)
Back in 2000, I remember Raster showing how cool EVAS was (the rendering backend of E17), and he pointed out that OpenGL sucked for doing a lot of 2D windowing because creating textures was so resource intensive. If you had textures that had to be rendered on the fly back then, you were pretty much limited by the hardware. Now 5 years later, we've got another project implementing the same basic idea, and largely because of politics and waiting for hardware we've barely moved anywhere. Congrats Raster you were right all long :)
From PDF Information: OS X and PDF:
"MacOS X is the first operating system on the market that actually uses PDF-technology within the operating system itself. Apple calls this technology 'Quartz'. Quartz is a layer of software that runs on top of Darwin, the core (or kernel) of the MacOS X operating system. It is responsible for the rendering of all 2D objects. Alongside Quartz, OpenGL takes care of handling 3D data (used in games like Quake or Unreal as well as professional 3D applications like Maya) and QuickTime handles multimedia stuff (movies, sound,...).
Quartz
Quartz replaces QuickDraw, which was used within earlier versions of MacOS. Within QuickDraw, the native file format was PICT. With Quartz, this now becomes PDF.
Quartz performs a number of tasks that include include:
automatic PDF generation and save-as-PDF (disk and clipboard)
conversion of PDF data to raster data or PostScript. The fact that Quartz can rasterize PDF files means that even cheap inkjet printers can output complex files. Gone are the days when only the screen preview of EPS-files was printed on non-PostScript printers.
a consistent feature set for all printers
automatic on-screen preview of graphics
high-quality screen rendering
In short: Quartz implements a set of rules for describing how pictures and text are displayed and printed. Because Quartz uses the PDF drawing model for imaging, native applications can create and import PDFs without the need for outside programs.
Some people have been wondering whether Apple pays licenses to Adobe for the technology used in Quartz. Here is what an Apple employer had to say about this: The Quartz renderer and the PDF interpreter that Apple ships with Mac OS X are built with Apple code, with no external licenses, by Apple employees. Adobe just publishes a specification for how it's supposed to function. This gives Apple considerably more flexibility with regard to what Quartz and the PDF interpreter can be used for.
Adobe PDF versus Quartz PDF
Since Quartz uses PDF, one would assume that everything that is possible within a PDF file is also supported by Quartz. This is not the case. Quartz uses only some of the features of PDF, it is based on a subset of the full PDF specs.
These are some of the things that are used within both the official PDF specs and Quartz:
the PDF imaging model
Common colour spaces: grayscale, RGB and CMYK
Embedding of images (even though Quartz does not support masks)
And these are things that are feasible in PDF but that are not (yet?) implemented in Quartz:
Annotations
Colour management using ICC profiles
Forms
Actions
Bookmarks
Digital signatures
Security
DeviceN (used within PDF to offer improved support for images containing spot colours)
Embedded fonts
Form XObjects: in some ways the PDF-equivalent of an EPS, meaning a group of objects that are a sub-part of a page.
Transparency
In fact, one of the main differences between both systems is that the PDF specs are now at version 1.4 while Quartz adheres to a subset of the PDF 1.2 specs."
Because its the technology being described in the article
Because your post is about different rendering systems and whether they use OpenGL. The thing I linked to is about X and OpenGL.
LINUX != x86!
2^5
I already have what I want:
- Zero eye candy.
- Zero window decorations to maximize screen real estate
- Ability to quickly manipulate windows without the mouse
- Ability to show multiple windows simultaneously without tediously resizing each.
- Ability to quickly switch tasks without touching the mouse.
I use X and a window manager called "ratpoison". Combined with xbindkeys it provides speed, elegance, and simplicity like nothing else.
This new next gen window rendering system looks like a load of junk to me. What productivity benefit will it provide?
I don't know about this. Linux Geeks really don't have the eye to make an appealing desktop. Microsoft's and Apple's (especially Apple's) UIs are the results of lots of studies, then professional cooperation between graphic artists, professional animators, and programmers. With an open source project like this, it tends to be a mish-mash of gaudy concept effects in odd places stuck in by guys who's idea of a perfect GUI is a VT1000 terminal. If they could all get together and hire some real graphic consultants, then maybe they could come up with somethat is really appealing and easy to use. If you use a Mac, after the first minute or so you don't even notice the effects, they are just part of the experence (unless you are using an old G3). The same is true of Windows XP much subtler alpha transparency effects.
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
I think it's more that Quartz is another graphics API, where many of the rendering features ever-so-conveniently map on to PDF 1.4's rendering model.
:-)
In other words, it's easy to go from one to the other - it's trivial to convert a bunch of Quartz instructions to an equivalent PDF document and vice versa, even though the internal representations of the data are completely different.
Quartz isn't about applications sending actual PDF data across a pipe or socket into a renderer, it's a bit more sensible than that.
Tedious Bloggy Stuff - hooray?
http://cbbrowne.com/info/xbloat.html
X11 on OS X is dog slow compared to running X11 natively. In fact, Quartz itself is dog slow for text rendering. And that's not surprising: contrary to what you are stating, the use Quartz makes of hardware acceleration is still quite limited.
If XGL is fully OpenGL accelerated, it is leapfrogging anything Apple has implemented in Quartz today.
mo X needs an overhaul, needs to ditch the legacy crap (lose Xaw for example)
X11 is a protocol. Xaw is not part of the protocol. It was "ditched" long ago. People still use it because they still have applications that depend on it, but that doesn't need to bother you.
stop interfacing with video hardware like it's 1980.
I don't know what that is supposed to mean. X11 has numerous server implementations that interface with hardware in all sorts of ways. Many commercial and workstation X11 implementations have had dedicated hardware acceleration for more than a decade. What more do you want?
If you are saying that XFree86's architecture is a bit dusty, well maybe you are right, but XFree86 isn't X11, it's one of many implementations.
NeWS used it's own interpreter written at Sun. In many ways it was much better than DPS. Most important was that it defined operators to actually create and manage windows, while DPS required you to use X or whatever to create the window and then you could use DPS to draw into it. NeWS also supported an object oriented extension to the PostScript language that was used to create user interface objects in it. NeWS also had many other minor improvements over PostScript, such as allowing null to be a dictionary key, and allowing non-bool to be the argument for if statements, types for colors and paths, etc. It also had a much better "wire compression" scheme for reducing the PostScript program down into bytes, the NeWS one had no structure and thus could be streamed easily.
In many ways Adobe/DPS were way behind NeWS.
I can't tell you how many potential Linux/UNIX users I know that have told me they're waiting for something like buttons that disappear in a puff of smoke and, until Linux has that, they'll stick with Windows.
Darn it! I forgot the "sarcasm" tags.
CUR ALLOC 20195.....5804M
Perhaps the drivers are solid, but only if you are running the right Linux (not *BSD, reactos, or any of the other open source operating systems that would like good support for these cards) on 80386 (not PPC, sparc, MIPS, or any of the other systems linux and the others run on - though admitidly not all of them have the right hardware to connect the card - but some do. I'm not sure about x86-64 either, though I suspect not)
In short, your stable drivers are useless to me because I'm an old BSD guy (complete with beard) and I'm convinced that the sysV style init that most of linux uses is evil and all that. I'm looking for drivers that are stable on my systems, not theoretically stable if I'm willing to run something I don't otherwise like.
It looks like they are moving toward the direction of Mac OS X (Open GL accelerated, Vector Graphics 2D backend). Why not put the effort on GnuStep and make it easier for Mac OS X app developers to bring Mac OS X apps to Linux and extending Linux developers' access to a more commercial market of Mac OS X applications.
I don't know much about Quartz vs. PDF, but it is clear you are missing an important metaphysical point.
DATA != REPRESENTATION
Simple example: the digits "42" are not a number. They are a textual representation of a number, which is an abstract concept. A number has certain properties which the textual representation does not. I can add and subtract numbers, but I can't add and subtract text.
A "PDF" file is a representation of an image using various bytes, starting with "%PDF-1.3". Another representation of that image is a mathematical idealization with certain properties. The bytes that a Mac stores in memory to process the image is yet another representation, the bytes that travel to the video card are yet another, and the glowing pixels on your screen are yet another. Finally, the light from these pixels stimulates the optical cortex in your brain.
When you are looking at the screen of your Mac, is your brain using Quartz?