Slashdot Mirror


Xr Renamed to Cairo

Charles Goodwin writes "Xr, the vector graphics extension for XFree86 that Keith Packard, Carl Worth, and a few others have been hard at work on, has been renamed and is now officially called Cairo. Keith and Carl recently gave a detailed presentation on Cairo (then known as Xr) which should be a useful read for those wishing to understand it a little better. There is already a useful Gtk+ rendering backend that uses Cairo, as well as an SVG test suite. This, along with Gnome2's subtle adoption of SVG and the inception of Xouvert (which now has goals for both the short term and long term, and an initial plan which includes coexisting with XFree86), spells a bright future for the eye candy of an X desktop."

37 of 216 comments (clear)

  1. great by SHEENmaster · · Score: 3, Funny

    but when do we get an ASCII renderer for it?

    --
    You can't judge a book by the way it wears its hair.
  2. Cairo? Bill Gates will be contacting them. by Anonymous Coward · · Score: 4, Funny

    This is the code name for Windows NT. This is a blantant and illegal DMCA violation, and a dilution and sullying of Windows NT's good name. They will be served.

    1. Re:Cairo? Bill Gates will be contacting them. by samael · · Score: 2, Informative

      NT 4.0 was EOL-ed back in June. 2000 is, however, NT5 and XP is NT5.1 (I think).

      Cairo was never the codename for NT anyway, it was the codename for the Object Oriented File System microsoft was working on that was going to go into Win2k.

  3. Re:Well now, that's just great. by Rooktoven · · Score: 4, Insightful

    In some ways almost transparent is easier on the eyes. I know when I have 4 or 5 mac terminals open the overlay can be confusing-- not to mention if (assuming a dark background) a light colored application ends up behind a terminal.

    I know it's nice for the "see what is possible" factor, but pseudo-transparency has it's place. I might even opt for it at times if I had the choice.

    --

    Acquiescence leads to obliteration
  4. KDE3? by SHEENmaster · · Score: 4, Informative

    QT3 has translucent menu items and such. I haven't checked to see if they cheat by reading from the screen, or if they have implimented an alpha layer.

    The big issue with an alpha layer is that someone has to have the authority to impliment such a change in the X11 protocol, it can't be done as an extension. Anyone who uses the fucked up protocol won't be able to display their app on a different X server. This breaks compatibility with thin clients.

    What I want is complete revamping of the X protocol with backward compatibility maintained (permanently), such that new apps can take advantage of new server-side widgets without breaking compatibility. Wouldn't it be sweet if GTK+ apps could run as well over a 256kb/s line as XAW apps do?

    --
    You can't judge a book by the way it wears its hair.
    1. Re:KDE3? by IamTheRealMike · · Score: 4, Informative

      They do cheat, yes. There is no need to break backwards compatability, in fact the protocol already has what's needed, it's mostly a matter of XFree engineering and getting it effecient enough to not kill performance. If you want GTK apps to run sweet over a modem even, look into NX compression. Again, no need to break X.

    2. Re:KDE3? by andrewl6097 · · Score: 2, Interesting

      Actually the protocol wouldn't have to be changed much at all. I've investigated this - the alpha value can be passed in the word-alignment byte. If you load up transluxent and throw real alpha values into your XImage, then it will be real alpha. It's just that regular XFree86 ignores the word alignment byte, and transluxent just passes it on to OpenGL so it actually works fine. Unfortunately transluxent isn't very stable.

  5. This might even turn out better than expected by justsomebody · · Score: 5, Informative

    According to publications they are going to contact as many organisations and support as many standards as possible. That's something that XFree never did.

    They even plan to contact Freedesktop.org.

    --
    Signature Pro version 1.13.2-3 release 83.5 beta3try7 after-breakfast edition
  6. Re:eye candy? by log2.0 · · Score: 2, Interesting

    I have always thought vectors were the way to go. The mac implementation is really good (I used mac os X for the first time yesterday). Although having a nicer looking desktop (as long as its optimized) is a good thing. Of course, at first, you wouldnt expect it to go very fast but it should get faster and stable in good time.

    --
    Can your karma go above being Excellent?
  7. Re:Windows NT 4.0 by KoolDude · · Score: 3, Interesting


    Actually, it was Windows XP which was code-named Cairo. X and P refer to Greek Letters Chi and Rho. Possibly Xr changed to Cairo using the same logic. Just a guess, though.

    --
    getSexySig(); /* returns sexy signature */
  8. You have no need to upgrade. by HanzoSan · · Score: 3, Interesting



    Cairo is not for you! someone like you should use the old version of Xfree86 because you dont like cutting edge, you dont like polish, you dont need eye candy.

    But please do not hold the rest of us back because you dont want progress.There's the commandline and original Xfree86 for people like you, we also need to attract desktop users, and this requires eyecandy.

    They will not switch from Windows if Windows is better.

    --
    If you use Linux, please help development of Autopac
  9. Re:eye candy? by oc255 · · Score: 2, Interesting

    One of the parts in the article mentions a user-specified error tolerance to control quality vs performance. I'd be curious to see how this performs in the real world.

    There's already a gnome theme by the name of scalable gorilla that uses vector graphics. It runs a little slow on slow CPUs, but it looks fantastic and it's easily configurable. With a bitmap icon, I have to recreate the graphics file, with the Scalable Gorilla theme, I change text in a XML file. Another thing to keep in mind is the size of the hi-res bitmaps that would be required to compete with the computer synthesized perfection of vector graphics.

    Isn't this a disk space vs CPU tradeoff? I have to store a bitmap where I have to compute a vector? I'm all for using my untapped CPU cycles instead of disk storage.

  10. Re:Windows NT 4.0 by bhtooefr · · Score: 2, Interesting

    BZZT! It WAS Windows NT 4.0. Here's a FOLDOC entry on NT4:

    Windows NT 4

    A version of Microsoft's Windows NT operating system, originally code named "Cairo". It was supposed to ship in the first half of 1995. Details are scarce, but it is intended to provide an object-oriented version of Windows.

    (1996-07-09)

  11. Re:WTF? by uhmmmm · · Score: 2, Informative

    because, IIRC, it grabs what's on the screen before the menu pops up, and uses that. if the window, video, etc displayed under the menu changes while the menu is still shown, the menu isn't updated.

  12. Not eye candy!!! by G3ckoG33k · · Score: 4, Interesting

    "right future for the eye candy of an X desktop"

    This is essentially untrue. Accepting vector graphics as the default in computers may alter our perception of what is eye candy completely. As far as I'm concerned the Fresco/Berlin project was the right way already several years ago. Today, the hardware has caught up and there is nothing to be lost in user space with vector graphics everywhere.

    In fact, we have no idea what kind of possibilities may open up here. If we're unlucky, yes, it might be a can of worms... ;)

    1. Re:Not eye candy!!! by penguin7of9 · · Score: 5, Informative

      As far as I'm concerned the Fresco/Berlin project was the right way already several years ago. Today, the hardware has caught up and there is nothing to be lost in user space with vector graphics everywhere.

      X11 doesn't support "vector graphics" any more or less than it used to. What has changed is that X11 now has an imaging model similar to PostScript (subpixel addressing, antialiasing, etc.) in addition to its older bitblit model (pixel-accurate, using boolean operations for drawing).

      (Subpixel addressing also allows you to do zoomable or "resolution independent" graphics, while the bitblit model is resolution dependent. However, the term "resolution independent" is somewhat of a misnomer--even if your imaging model supports arbitrary zooming, you can't just zoom user interfaces up and down and expect them to be usable.)

      When people talk about "vector graphics" in the context of window systems, that usually means the use of display lists: you give the server a list of "objects" to display (lines, triangles, rectangles, etc.), and the server takes care of displaying them when needed. But they might mean something else as well.

      Display lists in X11 are still handled the way it has always been handled: by client-side libraries. Eventually, there may be a server-side extension for handling display lists and perhaps even the ability to transfer display lists and structured graphics in the form of SVG data. That would give you Quartz-like redrawing and rescaling, although while that looks nice it has few real advantages.

      Now, what about Berlin vs. X11? First of all, one big thing in Berlin is the incorporation of GUI components into the server. That is an anathema to X11 designers. Also, while resolution-independent graphics is nice (the same thing X11 now supports with Cairo), it is a poor choice as the only graphics model: well-designed application for low-resolution and/or low-depth screens (e.g., a 160x160 Palm) must be able to draw with pixel-accurate drawing operations and precisely predictable results on every bit on the screen.

      I don't think Berlin "got it right". Berlin concentrated on the obvious, convenient, clean, high-level stuff. Berlin would give you slick-looking OS X-like desktops if it ever caught on, but the Berlin designers have neglected the other imaging models that are really important to real window systems, and they have put way too much policy into the server.

      Fortunately, the way X11 is evolving, we won't have to make a choice: you can have all the slick antialiased, structured graphics you like, and yet still have pixel-accurate drawing in a bounded memory X11 implementation. The only difference will be that X11 still won't enforce policy on the server side, and that's a good thing as far as I am concerned. But the market will decide that issue.

      In fact, we have no idea what kind of possibilities may open up here. If we're unlucky, yes, it might be a can of worms... ;)

      There is no "can of worms". We have had window systems with antialiased drawing, structured graphics, and all that at least since the 1980s; maybe you remember NeXT and NeWS. The feature is nice, but it doesn't radically change what people do with GUIs.

    2. Re:Not eye candy!!! by penguin7of9 · · Score: 2, Insightful

      it offers possibilities to take advantage of and adapt to the available hardware. (server knows if the screen is only a 4" PDA screen, or a 30" 3D display - the application shouldn't have to know these things)

      But the application has to know--scaling applications down to a PDA screen requires some hard choices to be made in terms of what is displayed. Merely scaling down the display won't help, and the server simply doesn't know enough about the application to do it automatically

      - it's bandwith friendly if you're only transferring high-level info to/from the servers.

      That is far from clear. Think of a grid bound to a large database table--does transferring all that data make sense? I don't think so. Not even on demand. In fact, even X11 may be too high-level in terms of bandwidth: VNC actually is often better in terms of bandwidth (but it is too low-level to be useful as a replacement for X11).

      - you don't get different apps using different policies on the same server.

      You get that on Windows and OS X. And Berlin were to catch on, people would port FLTK, Swing, wxWindows, and all those other toolkits to it as well.

      The X11/toolkit/UI layering is completely standard and analogous to GDI/MFC/Explorer and Quartz/Cocoa/Aqua. The only difference is that X11 is well-designed and mature enough that there are, in fact, multiple commonly used toolkits and that those toolkits can even somewhat interoperate. That's a good thing.

  13. So, when does this turn in to a practical product? by Vexalith · · Score: 3, Interesting

    I like the sound of Xr/Cairo, seems pretty cool. But how long is it going to take for this to turn in to something I can actually use? I guess the eventual goal is to have GTK and QT running on top of Cairo (maybe with extensions to do explicitly vector things?), but this strikes me as something that's not going to happen fast. Maybe I'm just being impatient.

  14. That sample rasterized penguin looks contented! ;) by f1ipf10p · · Score: 2, Interesting

    Stuffed on the finest of herring no doubt!

    Great news on the arrival of rasterized graphics output for Xfree86. That should allow for some superb gaming, visual modeling, and graphic apps for Linux.

    XrStroke is sure to be a popular command...
    maybe that explains the contented look... randy penguin!

    If you are lost with these references, you might enjoy "Why a penguin?" and "linux" together as a google search.

    --
    ~8^]
  15. Re:eye candy? by fireboy1919 · · Score: 2, Interesting

    The lack of vector graphics was on of the major arguments citing why X11 doesn't work very well over low-bandwidth links.

    Is having X over low bandwidth eye candy?

    --
    Mod me down and I will become more powerful than you can possibly imagine!
  16. Finally, buffering. by TheRaven64 · · Score: 4, Insightful
    From the short term goals:

    Provide an option to force backingstore on all windows.
    This is the one I've been waiting for for a while. When RAM was $500 for 64K it made sense not to buffer windows, but now it is insane not to, forcing redraws which drain CPU and networt bandwidth (on remote displays).
    --
    I am TheRaven on Soylent News
    1. Re:Finally, buffering. by listen · · Score: 2, Interesting

      Of course, once we have backing store it is a small step to provide (unaccelerated) translucent windows.

      The *really* important thing to do after that is to provide an extension to use the backing store of each window as a pixmap, and as a OpenGL texture.

      This will allow a window manager to do nice tricks.
      * On a window move, unmap the window, get its backing store as a GL texture, and do all the flippy rolly effects that have got everybody salivating over longhorn and OSX.
      * Expose like effects. See if those patents (or the will to sue) hold up ;-)

      It could also allow desktop pagers to get an accurate picture of whats on the screen, and maybe provide a slightly improved performance for remote desktops like NX and x0rfb. Not as good as a drawing command redirect, as I said here.

      For some really nice currently available eyecandy, see 3ddesktop . This should make clear that its not neccessary to shove too much into the server to get nice things done.

  17. Here is what I think the Linux GUI needs. by HanzoSan · · Score: 4, Interesting



    I think the whole friggin GUI should be vectors. The Icons should be vectors, and these vectors should be manipulated in realtime via the video card/hardware.

    Forget software rendering, we need hardware rendered GUI, using SVG for the interface and icons.

    We also need to somehow maybe via OpenGL or some technique, to get the special effects of the video card applied to the GUI.

    Then someone can write KDE4 or whatever, and the eyecandy/special effects should be plugins, a person should be able to code an effect via a scripting or programming language, someone should be able to download say, the motion blur or sparkle plugin, and then I click it and suddenly my menus motion blur or sparkle with fairy dust when I move them.

    You could break the effects up into groups.

    Scaling effects
    Trails for cursor
    Trails for menu
    Icon effects/animations

    etc, and when this is done, then people can write themes easily etc and we can innovate.

    The key should be a system that allows a newbie who isnt a coding genius to actually manipulate a video card either via scripting, or some high level interface.

    What I want is complete revamping of the X protocol with backward compatibility maintained (permanently), such that new apps can take advantage of new server-side widgets without breaking compatibility. Wouldn't it be sweet if GTK+ apps could run as well over a 256kb/s line as XAW apps do?

    I dont care so much about backward compatibility and I dont think most desktop users do. Servers sure as hell wont be running this. But if back compatbility is so important that can be handled to.

    QT3 has translucent menu items and such. I haven't checked to see if they cheat by reading from the screen, or if they have implimented an alpha layer.


    Fake translucency is not what people want, we want alpha channeling. This will only happen when the whole interface changes from pixel based to SVG based and then an OpenGL backend to access the video cards.

    I think Evas has the right idea here, now its just time to have X catch up to it.

    --
    If you use Linux, please help development of Autopac
  18. Re:Well now, that's just great. by Jon+Abbott · · Score: 3, Insightful

    I can't remember where I read this quote, but it went something like, "In the publishing industry, tons are spent and much effort is made to ensure that the paper is thick enough so that the reader can't see the words underneath the current page... In the computer industry, it seems that the effort spent is for the opposite effect." :^)

  19. Re:Its not done right, but its a start by aardvarkjoe · · Score: 2, Insightful

    This is 2003 and Linux should just go 100 percent SVG.

    Linux should have nothing to do with either bitmaps or SVG. You mean that XFree86 should be 100% SVG. (Which I think is a stupid idea, by the way. Breaking backwards compatibility for the sake of "market domination" is something that Microsoft would do, not engineers who actually care about the technical side of things.)

    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  20. Who names these things? by IntelliTubbie · · Score: 4, Interesting

    Whatever happened to descriptive naming? Who would instinctively associate "Cairo" with "vector graphics for XFree86"? Why not name it something sensible, like "XVector" (if that's not already taken)?

    In all seriousness, I think that poor name choices hurt the adoption of free software. Think about "Photoshop" vs. "The GIMP," or "Internet Explorer" vs. "Mozilla." Rather than something simple, descriptive, and catchy, we usually opt for indecipherable codenames, stupid recursive acronyms, or lame in-jokes that few people but the developers themselves will get.

    Poor naming limits the spread of the software meme to those who are already in the know, especially when the names are designed to enforce an only-the-anointed-get-it, us-vs-them mentality.

    Cheers,
    IT

    --

    Power corrupts. PowerPoint corrupts absolutely.

    1. Re:Who names these things? by bitMonster · · Score: 2, Interesting

      X r -> Chi Rho -> Cairo

      Names are all about first impressions, anyway.

    2. Re:Who names these things? by damiam · · Score: 2, Insightful

      Jaguar, XP, Outlook, KaZaA, QuickTime, Quartz, DirectX, etc., there are a million proprietary apps or technologies with nondescriptive names. Besides, no end user should ever have to hear about Cairo, they should just see good-looking graphics.

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
    3. Re:Who names these things? by fireboy1919 · · Score: 3, Informative

      That depends largely on your perspective.

      "P" is the closest thing we have to the greek letter rho, which phonetically is "R." The "P" sound is taken by the greek letter pi.

      Since Xr is written by people who speak English, not ancient Greek, it is likely that they're taking the letters from the modern alphabet, not the greek one. Therefore using the letters "Chi Rho" make sense when doing the translation into greek - since such translation is almost always done phonetically.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    4. Re:Who names these things? by nathanh · · Score: 3, Insightful
      In all seriousness, I think that poor name choices hurt the adoption of free software. Think about "Photoshop" vs. "The GIMP," or "Internet Explorer" vs. "Mozilla." Rather than something simple, descriptive, and catchy, we usually opt for indecipherable codenames, stupid recursive acronyms, or lame in-jokes that few people but the developers themselves will get.

      Oh? So Excel just says "spreadsheet" to you? How about Quark Express? Or Oracle? Or Solaris? These names are only "obvious" because you have heard them before. There is nothing descriptive about them.

  21. Everything is coming together by smallpaul · · Score: 3, Interesting

    Over the next few years, desktop graphical environments will move increasingly towards vector graphics and away from bitmaps. The Mac is already there. Windows and Linux are both in the development stage (Longhorn and Cairo respectively) and it will be interesting to see who gets there first. Desktops will finally scale properly to different sized monitors and there will be no excuse for apps that do not scale properly.

    Once every operating system supports vectors natively, SVG will become a no-brainer. Why would we use vectors for everything on the desktop and then dumb it down to bitmaps for transmission over comparitively thin network pipes to devices of arbitrary size and shape? It would make no sense whatsoever. So SVG will replace a huge number of the GIFs and PNGs on the Web, to say nothing of Flash files.

    A wonderful side effect of this will be that people will finally be able to have richly rendered text on the Web without resorting to binary formats like GIF and Flash. Imagine being able to cut and paste text even when it is embedded in highly stylized corporate graphics (as is becoming more and more common!).

    There are really so many follow-on effects that we could have a long thread discussing them. Congratulations to the Cairo and X teams for taking a few more steps down the path!

  22. Re:Well now, that's just great. by Squareball · · Score: 3, Funny

    Maybe you'll get your alpha-blending from Cairo?

    Importing alpha-blending from Cairo is WAY to expensive. Just try getting it through customs!

  23. Re:Its not done right, but its a start by aardvarkjoe · · Score: 2, Interesting
    Since when is removing support for something "progress?" You could make the exactly same arguments for Linus to remove support for IPV4, PCI support, IDE support, and a bunch of other stuff from the kernel. That, of course, would be stupid beyond belief. You can support SVG for new apps while retaining support for hundreds of applications that already exist. I'm not going to hold anyone or anything back, but I'm not going to go along with those who make technical decisions based on ignorance.

    Why is backward compatibility so important to engineers who create Xfree86 when they only use Linux to create Xfree86?

    What is this supposed to mean? Are you under the impression that XFree86 only runs on Linux? If so, here's a quote for those of you who live in the "Linux is the only thing there is" box:

    The XFree86 Project, Inc is the organisation which produces XFree86(TM), a freely redistributable open-source implementation of the X Window System. XFree86 runs primarily on UNIX(R) and UNIX-like operating systems such as Linux, all of the BSD variants, Sun Solaris x86, Mac OS X (via Darwin), as well as other platforms like OS/2 and Cygwin.

    That's directly from the XFree86 home page. Apperently, the engineers who create XFree86 do care about compatibility.
    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  24. X r == "Cairo" by musselm · · Score: 5, Informative

    Pronounce the Greek letters.

    X == Chi

    r == Rho

    Okay

  25. Re:Not really a rename, is it? by Fnkmaster · · Score: 3, Funny
    Very interesting, I never thought of that. And IANAPOS (I am not a professor of symbology), but "chi rho" was the classical symbolic representation of the name of Christ (written in the Greek as "XP" of course, and often rendered with the P superimposed on top of and through the middle of the X). In Greek, of course, chi and rho form the first two letters of "Christos", or Christ.


    Makes you wonder what that "XP" in Windows XP and Athlong XP really stands for. A plot by the religious right to infiltrate Microsoft? Hmmm...

  26. Re:eye candy? by TRACK-YOUR-POSITION · · Score: 2, Insightful

    Steve Jobs doesn't want you to theme your Aqua eye candy--which kinda defeats the purpose, IMHO. Not to mention that Mac OS X doesn't let you exploit the most important benefit of vector graphics--resolution independence.

  27. All I know is I want.. by mattr · · Score: 2, Interesting
    That awesome icon resizing wheel widget you get in SGI desktops. I've wanted one for years and years, didn't get one with BeOS, and now finally I'm gonna get one!! Hooray!!

    For anyone who has not used an SGI machine before, windows often have one or two widgets (if two then one would be oriented on the horizontal axis, the other on the vertical) which resemble long, thin, ridged wheels. When you click and drage so as to rotate the wheel showing in a file manager window the file icons will all resize automatically in realtime and smoothly, since it is all drawn in vectors. To me this would make a graphic desktop in linux a lot more useable.

    That, and the way you can use a mouse and three buttons in OpenInventor windows to navigate/manipulate in three dimensions are a couple of the best things about SGI user interfaces to my mind.

    A picture of an IRIX desktop with an icon resizing wheel is here