GTK+ to Use Cairo Vector Engine
Eugenia writes "GTK+ is now the first major toolkit to have added support for the Cairo 2D vector graphics library, which is designed to provide high-quality display and print output. GTK+ project leader Owen Taylor has commented on the X/GTK integration of Cairo. To put it in perspective, Cairo is similar to OSX's Quartz engine and Longhorn's Avalon (PPT analysis). The 3D hardware accelerated image compositing OpenGL part of Cairo will be provided by the Glitz library. Cairo is 'possible' to be part of Qt 4.x at a later date, according to Trolltech's Qt 4 technical preview document."
One thing should be noted, is, OSX aqua quartz isn't vector based it is still bitmapped, as many people are under the apprehension that it is all vector when it is just good bitmaps.
it is live compositing like postscript on screen but it is not yet vector.
the best mac community on the web
Now if we had some sort of open source 3D drivers to take advantage of this . Sure we have ATI and Nvidia binary drivers, but the uncertanties in the licensing pretty much keeps them from getting bundled in most distributions.
Oh well, at least it's a start to get some OS X-like eye candy.
The race begins.. do we see distro's with this first or Longhorn??
Inquiring minds want to know.
Do not look into laser with remaining eye.
It's 1992 all over again.
Hmm...since Cairo is out and Avalon isn't, the Penguin now has a step up on Redmond in terms of graphics. Granted, Avalon includes some other spiffy 3d eye candy, but this is a first where the Linux GUI beats out the Windows one.
--
Free iPod? Try a free Mac Mini
Wired article as proof
Have a browse around Direct Rendering Open Source Project for details of video cards with open source 3D drivers.
The Internet's nature is peer to peer - 20050301_cs_profs.pdf
Windows 95 = Apple 1984
Actually, mono is currently using cairo a lot. In fact, their new Windows.Forms is switching to a native implementation. System.Drawing uses cairo. This implies gtk# as well. :D
----
Go canucks, habs, and sens!
More Bloat stuffed into GTK+ and GNOME. Makes things depend on even more technology and makes stuff become slower and bloddier. What are we up too ? Competition to Microsoft or 'getting a usable Desktop' ? I doubt the majority of people ever give rats arse for Cairo or not, they don't even know what the hell it does. All they want is a fast cool Desktop and a fast applications and execution speed. Opening GNOME Terminal these days takes 10 seconds and more because of the overkill junk tied to all of it.
when all the wanto-lick eye candy comes in bitmaps for OS X?
I know vector based GUI may reduce file sizes but to the cost of performance? I mean bitmap = load and display, vector = load and process then display not to mention that windows can be resized, be transparent, transform (maybe) and all of this needs CPU power. This is not counting that if it is done right then we all want a piece of it.
The tendency nowadays is to make files smaller and smaller which requires more and more processing power. When will we stick to something that has good speed and then just make it look good? Of course generally speaking. It's like always buying the latest processor chip, the biggest hard drive and the super thin and large monitor. There is always a faster one, bigger one, smaller... Whe do we stop to make something good out of what we have and then move to the next step??
No I didn't RTFA
No I will not fix your super computer
No I don't care about drivers being bundled with linux or not
Your bitmap are belong to us... got it?
Man I can't sleep!!!!
Have a good one. Have a good one.
===== "Every head is a different world so don't invade mine you FREAK!" smartSAGA said
I have a better idea: let's shed some light on the apocryphs used in the story. Seriously, I had hard time to hunt all of those definitions. Here's a handy list of links for anyone who is not up to date with "ppd," "glitz" and other bloody-edge jargon:
- GTK+ *
- Cairo *
- X *
- X/GTK *
- OSX *
- Quartz *
- Longhorn *
- Avalon *
- PPT *
- 3D *
- OpenGL *
- Glitz *
- Qt *
- Trolltech *
I hope it helps. (Your comment has too few characters per line (currently 20.2).)... Assuming (even cheap) OpenGL hardware. Like you say, the description is smaller. It is the description you are sending the GPU, be it triangles or pixels. That is where your bottlneck lies. GPUs are designed to process these triangles and and they do it FAST.
Holy Toledo!!! I was seriously thinking about jumping ship to Longhorn or MacOSX before I read about this. This development looks like it could seriously narrow the technological gap between the proprietary MacOSX/Longhorn world and the open source community. Well done GTK+ people!!!!
But now here's a realistic goal question: Can the open source community really deliver, and do an official, working release of this before Longhorn comes out?!? Now THAT would be AWESOME, cause it might even put the F/OSS community AHEAD of the curve and at the forefront of innovation!!!
I guess it just had to be said:
Now wouldn't Microsoft just hate it if this was released before Longhorn?!?
Then again: I urge caution--supposing Microsoft has already patented such things in Longhorn? The F/OSS community could be in serious trouble...
The bottom line is that Trolltech has some ties with the Canopy group. Unless you've been living under a rock for the past two years, here's tne executive summary: Canopy is also a major stakeholder in the SCO group, and funds Darly-girl's litigious bastard frivolous attack against FOSS in a last ditch attempt to make a few bucks off the corpse of a dying company.
Do a little research and you'll find that Trolltech is going to answer any questions you may have regarding their connection to the Canopy Group, their board of directors, and the connections between same with a bland "no comment."
Wake up and smell the coffee fer cryin' out loud.
-STM
Please
it looks like a nice feature, which will be good, for both gtk and qt. looking at the Cairo site, it looks to serve a purpose similar to SVG, which used to be the big buzzword.
can anyone tell us, is Cairo in direct competition with SVG applications? i notice cairo advertises "high quality...printing outputs" - is that its focus while SVG deals more with graphic displays and the web?
This is a big step forward. Something I've waited for a long time. If it is possible to unite all those vector-graphics efforts in cairo more time can be spent on "stuff that matters".
Well, I always hoped X11 would do this step but they seem to enjoy doing politics instead of standards... On the other hand this approach has some unique advantages:
Interesting is, that there are also java-bindings that work together with SWT which is an interesting step (mono is already on board -- see previous comments)
So hopefully the time of ugly graphics in platform-independent OpenSource-Software is finally over... (just watch OpenOffice -- uaaahh)
Well, a last wish: If Qt guys come aboard, this means KDE is in which on the other hand means that gnome and KDE join on the same backend... just dreaming...
A new X.org release comes out every 6 months.
Currently Linux desktops ALREADY HAVE vector based graphics.
The icons are vector for instance. Some simple games like Gnome's solitare version (the command is sol) is vector based. And this has been for a year now or so.
Gnome 2.8 I know has vector based graphics, because I use it everyday. I think that 2.6 had it a bit for applications. Icons and such have been vector based for a long time now.
So 50% of the new stuff that Longhorn promises, we already have. Longhorn isn't due out for another year or two, and it's going to take another year to two to start to get popular (based on history from Win98 and WinME and the time it took for WinXP to get popular over those).
So X.org and Freedesktop.org and the Gnome and KDE people have between 3 and 5 years to surpass Longhorn in Gui-sexy-ness. Then as far as looks go Linux should be pretty freaking capable.
X Windows has other benifits, too, that go far beyond what OS X or Windows will ever be able to do. And if Linux folks are able to extend on those current capabilities we will see new things that nobody would think much about.
Say your at your office. Your working on your word proccessor, but your building gets hit by electrical outage and your computer dies, but other computers are OK.
You haven't saved any of your information or work, but that's ok because your application is still running fine on a central X application server, so you go to a different workstation and open up your word proccessor and it's like nothing never happenned. Everything is just as you left it.
Say your setting up a presentation. You open up your OO.org and start a power-point-like presentation. You have to take off to go use the restroom and so your partner will finish up before the meeting starts. So you drag and drop your current applicaton to his desktop and you close your laptop and run off for a powder.
Stuff like that. That's the future potential power of X Windows network transparency.
You can already acheive it in a limited way with Sun's X terminals, and other software, but X.org hasn't yet gotten to that point. They are working on it now though.
... what was wrong with bitmaps? If your icons are large enough that you need vector icons... they're way way too damn big.
> "GTK+ is now the first major toolkit to have added
/ gn ustep/core/back/Source/cairo/
> support for the Cairo 2D vector graphics library"
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep
6 months later....
Are you serious? Sorry, when I first read "Canopy" I didn't connect it to SCO. Is it true that Trolltech has some ties to SCO? Could anyone confirm it please? If so, wouldn't it make more sense to boycott them instead of giving them free publicity?
did someone actually read the _20 lines_ post made by Owen Taylor? He just commited gtk dependancy on cairo in the cvs repository, but that's all. Nothing's working on Cairo yet, not even font support.
I'm really not a fan of Windows, but they've been showing Avalon demos for a while now, so could you please at least wait for the Gtk team to reach a similar level before comparing their work to Microsoft's one, or Apple's(!)?
Now, if we are to speak about the possibilities offered by such technologies, I'd like to know your opinion on the topic guys.
I don't think Cairo necessarily means things will suddenly start to look better, but they don't necessarily have to. GTK+ apps already look pretty good with a decent theme. It's sufficient if apps continue to look the way they do, and see a performance boost. In fact, I think I'd rather see than than fancier graphics and no speed improvements.
Then again: I urge caution--supposing Microsoft has already patented such things in Longhorn? The F/OSS community could be in serious trouble...
Not in europe... we're never gonna have software patents.
A quick scan of the headline and I was wondering why they'd use a Casio engine - OS + calculator-style graph graphics in perfect harmony!?
AT&ROFLMAO
agreed. layer upon layer of nonsense.
Get rid of X,Qt,GTK, and the silly ass bloatware DEs that sit on top of that and start again with a proper GUI for Linux and I reckon it will vastly increase it's market share.
Great. More dependancies, so they can break, and then i cant upgrade... hurray.
The finished backends for Cairo (the X-backend in particular) are not very fast. Even scenes with a quite small number of solid paths take a noticeable while to render.
I like the Cairo-API, though. It is coherent and consistent, a rare trait in Linux-graphics APIs.
So is cairo or more specifically cairo+GTK going to be like the *nix GDI equivalent?
Windows has supported vector graphics forever (WMF format). Check the clipart from Word 6. How exciting.
Of course that's not what the article is talking about, so you are a dumbass.
gcj and GNU Classpath have been using cairo for well over a year now in order to implement the Java2D API.
OS X 2002 == Windows NT 1994
People on the OS X side rave about the smooth opaque window moves and exposes under Aqua and try to portray it as if it were some advanced technology in OS X. But you can get the same behavior under X11--turn on "backing store", it's a server option. Lots of other systems had the same functionality, including AmigaOS (notable because it came out around the same time as the original MacOS).
The reason it isn't turned on by default is that that kind of buffering consumes a lot of memory. Furthermore, once you turn it on by default, software authors will not pay attention to redraw logic anymore and applications will become unusable without backing store.
X11 made the decision to leave it off by default, OS X made the decision to turn it on.
Seeing as Apple have already been doing it for years, you neither need to worry about patents, or getting near the forefront of innovation.
I looked at Cairo because it purported to be fixed point, which would have made it ideal for many embedded consumer products (which rarely have FPUs), and enabled them to have pretty OS X style graphics.
I was most disappointed when I found out it was only the API that was fixed point, and most of the internals used floating point.
Apple have been doing nothing for years that both Linux and Windows have not also been doing. They just market it better, so Apple fanboys end up thinking they're getting something amazingly innovative. (I can't get over the marketing blurb for the iPod Shuffle, which tried to make out that random playlists were an AMAZING NEW INNOVATION!!!)
FLTK 2.0 http://fltk.org/ is able to draw using Cairo too, by defining "USE_CAIRO" variable (--enable-cairo).
Cairo was NT5
Mesa-standalone is a GL layer that doesn't run through X.
XGL is an X server where everything displayed on screen is accelerated.
Cairo makes toolkit graphics vector.
Then it's all done, we'll party with hookers and coke while some guy from Sun complains loadly about daniels removing xeyes from the so called 'modular' tree...
I just nearly spewed my morning coffee on my screen. The desktop right next to it is doing an "emerge system" right now.
Gentoo rules, but this is pretty good!
...welcome our redundant Simpsons quotes.
This thread is useless without pics!!
The mechanical engineers in the audience collectively ask, "How many horsepower?"
The idea of GTK+, KDE, and Windows all supporting the same API is enough to make a cross-platform developer giddy.
Go Cairo!
Instead of developing on two fronts, why not take the resources and combine QT and GTK to make Gnome and KDE GUIs compatible?
The apparent intellectual conundrum of the halting problem has absolutely nothing to do with the application of pdf and postscript to the domains you describe. Hey, maybe they should try a reduction algorithm to reduce the image sizes???
Now assuming you like graphics and different size fonts, fvwm, twm, or fluxbox etc are debugged, stable and widely available. Install one of them and go about your business.
This has to be one of the funniest parodies I've read in a very long time, and I say that as an avid fan of Gentoo who uses it at work and at home.
... oh damn ... addfjjjjj
Absolutely hilarious!
PS - Gentoo is recompiling my genome as I
The Future of Human Evolution: Autonomy
So, is this or is this not what I've always been seeking in a GUI: total resolution independance? E.g. right now I can have my monitor at 800x600 and everything is *huge*, and I can have it at 1600x1200 and everything is *tiny*. Sure I can have Gnome/Gtk+ use larger icons and fonts. But not larger everything. Currently in Gtk+, one specifies the spacing between widgets in pixels. Will this change to vector units and allow the ability to smoothy scale everything up so I can use the full 1600x1200 but still have things readable? (And no, using a resolution in between those two extremes is not a solution. They are too few; none is quite right. Or it's an LCD where all but one is garbage.) And what will these vector units be?
Actually, I'm usually running at 1024x768. There's always those few programs that just don't fit on the screen... The ability to scale them down would be fantastic. Ideally I'd have an enormous monitor, but I don't.
If this is the direction this small step is headed in, then I applaud the Gtk+ team and look forward to the future with excitement.
Are you kidding me? Anyone who's actually used OS X knows how far behind Linux and Windows are. That gap won't be bridged for a long time if ever.
Actually Cairo was back then vaporware, Bill Gates constantly under the impression of NeXTStep which back then was just released for x86 was talking about an OO based Windows which never saw the light of day. Typical Bill Gates, hold on dont buy that stuff we are working on something similar talk. That is one of the constant tactics Billy boy uses, to keep a competition away from the Windows territory.
You need to take some valium or something.
I say this weekly on Slashdot, but there ARE open-source 3D drivers in xorg. I've got a RADEON 7500 and a 9200 which are both fully-accelerated for 3D in xorg and xfree.
If you're gonna use Linux, PLEASE buy hardware that works with it from the start. I wouldn't go out and buy a video card that I can't get accelerated 3D on out-of-the-box. Every time you buy a piece of hardware without open specs and interfaces you support the closed philosophy.
It's always been the case that the open-source drivers for 3D cards come out a while (sometimes a LONG while) after the cards are out, it takes a while for the developers to figure out the interfaces and get things working.
"Sometimes, I think Trent just needs a cup of hot chocolate and a blankie." -Tori Amos on Nine Inch Nails
Believe it or not you're not the first person to have suggested that. The problem with your idea is that it can never happen under the open-source development model.
Say, for example, that Jesus appears to you in a dream and gives you the ultimate design for a GUI. Then, by another stroke of incredible luck, you actually rally 100 developers to set to work on your idea.
Now, if the story ended there and we all lived happily ever after, we'd have the ultimate GUI in very little time at all. But, people being people, during the development process you're going to have at least one smartarse who objects to the way something has to work, or some bit of politics, or whatever. Anyway, he ultimately decides to fork the project, and take half your developers with him.
After a while, the the same thing happens to him. After another while, then the same thing happens to you again. Now you've got 4 teams of 25 people all working on seperate forks.
Things continue on for a while and then you've got 100 seperate projects each with only a single developer working on them, which means nothing gets done whatsoever, and all the projects grind to a halt, with nothing to show from any of them.
This is where closed-source, commercial ventures such as Microsoft will always kick the ass of the OSS community. Instead of 100 people pulling in completely different directions achieving nothing, you've got 100 people pulling in a single direction, working together to build a design. Even if the design isn't perfect, at the end of the day you've achieved more than the 100 nobodies who're still thinking of a name for their fork.
This isn't meant to be a troll or to point the blame on any one entity.
I think the current state of opengl on linux desktops in general can be a pain in the ass. Have an NVIDIA chip in my laptop so I'm pretty much forced to use NVIDIA's drivers if I want 3d acceleration. Now xorg has opengl drivers, but I must use the ones nvidia provides. Sometimes this means switching between interfaces just to get software to compile. To get kde's screen savers, I had to switch to xorg and then back to nvidia' opengl interface. Just to get matlab running, I had to switch to xorg opengl and keep it that way. Now I can't use nvidia's opengl drivers so I can't run any opengl screen savers as long as I plan on using matlab. X crashes if I even try to run glxgears.
So I don't know if it is because of xorg, nvidia, or mathworks, but opengl on my system is becoming a source of lots of problems. That said, will more opengl usage make things better because it will force others to fix the problems, or will I just end up with a system that requires different drivers for different apps and things won't run properly?
Yes some some good points you bring up, but I don't think it wouldn't take a hundered programmers. I reckon 1 with reasonable design skils or 2 maybe. Now if it forked and went in 20 different directions afterwards well that's a shame I guess.
For thoses people who still wanted to run X instead and all the other stuff they could.
I suspect the other big problem is a lot of applications rely on X and those other libraries so it would actually mean new applications.
Perhaps from what you say OSS is not the way forward for such a radical change, and it would benefit from a different approach.
The API is floating point. One implementation of Cairo uses XRender as the backend, and that is fixed-point (8 bits after the decimal point).
Some internals of Cairo is in this same fixed-point format due to the expectation when it was being written that XRender would be the main back-end, however I think this is being rewritten to float due to Glitz becoming much more popular and requiring float as well.
Cairo makes it trivial to scale all the drawing done by an application. The big step is that a toolkit such as GTK has to draw *everything* with Cairo. Then only a few small fixes to set the initial size of the windows and to back-transform the location of mouse clicks, you will be able to scale applications.
Yes it is quite possible that the resulting graphics will not be perfect. However at least it will be possible and easy to get to that point. This makes the hurdle of adjusting the graphics to look great much easier.
So the answer is that Cairo is a huge step in the direction you are talking about.
Vector graphics are all about resolution independence. Why have a monitor set at 1024x768, if it can display at 1900x1600? You're losing SO much quality, just because your software is hard-coded to a certain DPI. This should never have happened on a serious desktop system, never mind that it's STILL happening.
I tried compiling myself a 10-inch vibrating penis, and it didn't work. Maybe I was misusing portage.
Anyway, I switched to Arch. A wide variety of pre-compiled penises are available. I highly recommend it.
Please stop stalking me, bro.
xxx_self_intersect
That sounds sort of, you know, obscene.
Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
Now I will have dogcows and little buildings all over my linux!
But really... I wish they would adopt some time in actually making an OSX port so we can compile native apps without using X11. Seriously, what the heck happened to gtk-aqua or whatever that project was called? Is it too much to ask for a cross platform toolkit other than Qt (for compiling existing apps without heavy modification anyway)?
Yeah.. Puppy Helmet! Popcorn Eyeglasses! Peanut-Butter Monkey!!
--grendel drago
Laws do not persuade just because they threaten. --Seneca
You're assuming that there are only 100 developer through the live of all projects that are interested enough to work on it, and no new developers will join the separate projects as time goes on...and that none of the projects will share code. Those are pretty loose assumptions.
Of course everything you see on the screen is eventually rasterized before being displayed - but that's a requirement for any display thats out puting to a CRT, LCD, etc.
I guess you were not around when top-of-the-line CG was represented as "display lists", basically list of vectors for DAC to convert to voltages steering CRT e-beam across the screen. THAT was true vector graphics! Of course it was so much better suited for engineering blueprints rather than porn collections, so it was quickly replaced by modern bitmapped displays. I think that bitmapped displays became pupular only in late 70s-early 80s, while "vector" dispplays have been around since 60s...
Paul B.
Fuck you. This is pure bullshit.
/any/ program will eventually terminate. But this prediction is very easy to do for a lot of computations, which could very well be the case here.
The Halting Problem means you can't determine wether
You suck.
Pango is what causes all of the problems with GTK apps being slow. It renders text very nicely - rich text support is all there, i18n support is right in, it can render antialiased bold multibyte kanji as easily as anything else. But the price of that is that it's very slow. I think Qt does some ascii optimisation so you only have the i18n stuff slowing you down if you need it.
I am trolling
What, you mean other than a vectorised rendering backend which is exactly the topic of discussion?
Get rid of X,Qt,GTK, and the silly ass bloatware DEs that sit on top of that and start again with a proper GUI for Linux and I reckon it will vastly increase it's market share.
You could try, but you would probably end up with exactly what you had before.
At the very least, users would want a windowed system that could support multiply displays across networks. They would also want multiple font styles and the ability to read the mouse, keyboard and other input devices. This of course, would have to support accelerated 2D graphics (X-windows) GUI, along with support for accelerated 3D graphics to run games (GLX)
Application developers would want an easy way to develop applications using design tools (Qt), and users would want to have their preferred desktop environment (bloatware DEs) to run their web applications.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads