Slashdot Mirror


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."

15 of 652 comments (clear)

  1. "Hardware accelerated PDF viewers'' ? by Neil+Blender · · Score: 5, Funny

    And only a few days ago we were asked, "Where have all the cycles gone?" Sheesh.

    1. Re:"Hardware accelerated PDF viewers'' ? by AJWM · · Score: 5, Insightful

      Um, if it's hardware accelerated, it will be eating fewer of your CPU cycles.

      --
      -- Alastair
    2. Re:"Hardware accelerated PDF viewers'' ? by bonch · · Score: 5, Insightful

      Hardware-accelerated PDF viewers, huh? Aqua beat already does that. The entire OpenGL-composited interface is described using PDF, which also makes it awesome for publishing because what you see on screen is how it's going to look on paper (and you get a free "Save to PDF" in your print dialogs).

      Not that it isn't cool to see the OSS desktop community finally looking ahead like this. It's something people have definitely been crying out for. But when I see the section titled "What It Might Look Like," I look over at my Mac and see what it already looks like. :)

      Then again, I am quite happy to have people follow Apple's lead rather than Microsoft's. Please, no more taskbars, "start menus," integrated filesystem/net browsers, and whatever else is coming over from the Windows world and polluting desktop Linux. Though KDE is still cool, at least Gnome is willing to try some different directions in the name of usability (rather than familiarity...because from a usability standpoint, the Windows GUI sucks the most of all, and we should not be cloning it).

    3. Re:"Hardware accelerated PDF viewers'' ? by Leo+McGarry · · Score: 5, Informative

      The entire OpenGL-composited interface is described using PDF

      I sobbed when I read this.

      I wrote a really long post correcting this widely and wrongly held opinion some weeks back. I don't feel like finding it, or being that verbose again. So short versions.

      No PDF, no OpenGL.

      Quartz 2D is a display-list engine, but it is not a PDF interpreter. Rather, Apple wrote some very, very simple shims that quickly translate PDF files into Quartz 2D display lists and back. Nothing in Quartz 2D is represented in PDF format unless it's sitting in a file on the disk.

      The windows are drawn on the screen by a piece of software called Quartz Compositor. A couple of years ago, Apple rewrote Quartz Compositor to take advantage of hardware acceleration. They did use OpenGL for this, but only in a very limited way. Each window is represented as a texture on a surface and fed to the graphics pipeline for compositing.

      Quartz is amazing. Nothing else in the world comes anywhere close to it, despite what some very confused people seem to think. But you're really selling it short when you describe it as "PDF and OpenGL." Because it isn't.

    4. Re:"Hardware accelerated PDF viewers'' ? by Sark666 · · Score: 5, Insightful

      ...because from a usability standpoint, the Windows GUI sucks the most of all, and we should not be cloning it

      Hmm, I can't really agree there. There's lots of things wrong with windows, but there is a lot of things they have done right in the gui.

      It's seems too many linux devs detest windows to the point where they don't allow themselves to see what they have done right. We should be thinking embrace and expand whenever it's appropriate. We should look at what they have done right and benefit from it.

      Here are some examples I find of things that just should not exist at this point. In these examples I'm talking about gnome.

      1) Remembering windows size/positions. This drives me nuts. I've read that the reasoning behind this is for the most efficient use of the desktop (e.g. you launch a 2nd term and it positions itself beside the 1st term instead of overlapping). Sounds good, but in practice it makes me a less efficient user. Back in my windows days, I liked that whenever I launched the file browser it was always in the same position where I left it. I could rely on this and be ready to click whereever I needed. Same with the file dialog, calculator or whereever. I EXPECTED them to be in a certain position and thus I could work faster/more efficiently. I think maybe a compromise on this would be the default should be that gnome remembers size/position for all apps unless the developer of an app explicitly coded an app not to follow this behaviour. So the wm is the default unless the app says otherwise. I can see the benefit of autopositioning maybe with terms, but for most other apps it just makes me slower and gets in the way. As it stands I feel like I never know where an app will be when it launches.

      2). Hot keys. For the love of god can someone fix hotkeys in gnome! Ok again this is coming from a windows background but bare with me. I was used to the alt key toggling the menu of whatever is the active app. Toggles are good, they are efficient and I believe intuitive. Just like play/pause on almost every player that exists. Ok so when I first used gnome, no alt hotkey toggle. Ok fair enough, I have to actually press alt f, but then I try alt f again to get out of the menu and nothing. I have to press escape to get out of the menu. Ok ignoring that, once I'm in the menu the other hot keys are rendered useless. Go ahead try it, press alt f, and then press alt e to get to say edit. Nothing. This is clunky. Once you are in the menu only the arrow keys navigate the menu's.

      I work for a company testing applications and a key thing we look at is the hotkey placement of apps as when employees are using apps everyday all day, you want those hotkeys to be laid out efficiently as possible. So sometimes once in a menu it's quicker to just left arrow over once but sometimes it's less keystrokes to use the hotkey while in the menu.

      I was going to go on about the menu functionality with gnome but I'm going on too much. You might say it sounds like I want kde but there are many more things about kde I don't like over gnome, and I appreciate the streamlined environment of gnome over kde.

      Now you might say I was conditioned to the windows way of things. But really look at what I said above about say the hot keys. Which system is the more efficient. I'm talking number of keystrokes here and navigation.

      It erks me when people say just flat out say the windows gui suck most of the time. On my thought of embrace and expand. I think there should be a document really analysing what windows has done right, and if they have done it right, why would we or would we NOT implement it.

  2. Cool by M3rk1n_Muffl3y · · Score: 5, Funny

    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...
  3. Inevitable comment about bloat by NanoGator · · Score: 5, Insightful

    "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."
    1. Re:Inevitable comment about bloat by bonch · · Score: 5, Insightful

      What you're describing are called visual cues.

      There's a difference between eye candy and visual cues. The genie effect on OS X looks cool and is fast because of the hardware compositing going on. But more importantly, it's a quick visual cue to show you that you have just minimized a window, and it travelled down to the second spot on the right of your dock, so you know where it is. You also get a scaled version of your window down there. When an icon bounces for your attention, it's a cute little effect, but it's also a visual cue to let you know the app is wanting your attention.

      It goes beyond animation effects, too. People have commented on OS X's "gumdrop" window controls, which look cute and friendly, but few seem to notice they're arranged like a traffic light, which is intuitive for most people. Red, yellow, and green circles--red closes the window, yellow minimizes, and green zooms.

      Note that I use OS X as an example simple because I think it's the undisputed king of GUI visual cues. I think Linux needs more creative taste and aesthetic in its interfaces. I'm willing to contribute.

  4. XGL, OpenGL-based X11 Server by bonch · · Score: 5, Interesting

    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.

  5. What next... by GillBates0 · · Score: 5, Funny
    'Indiana Jones buttons that puff out smoothly animated clouds of smoke when you click on them.

    ...a paperclip that bats its eyelids and talks to you when you click on it? We could call it Xlippy.

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
  6. overview of modern display systems by OmniVector · · Score: 5, Informative

    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
  7. Uhm, E17 anyone? by CountZer0 · · Score: 5, Informative
    From reading the article, it really just sounds like they are talking about ideas that Raster and co. have been long advocating (and developing) in Enlightenment DR17.

    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.

    Since taking advantage of these new toys would require a new theme system, Havoc and I have been talking about how a very different theme / widget rendering system might work with this that allows for custom design of any window, widget, or anything in between. One of the things us designers have been experimenting with behind closed doors is what you can do with a window's design when its not drawn out of a bunch of stock widgets but you have a freer hand.

    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)
  8. Re:Finally? by snuf23 · · Score: 5, Funny

    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.
  9. Re:Yet more eye-candy... by Mr.+Cancelled · · Score: 5, Insightful

    "...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

  10. Re:Let's run through the list, shall we? by Leo+McGarry · · Score: 5, Informative

    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