GTK+ to Use Cairo Vector Engine 247
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."
Quartz is not vectorized (Score:2, Interesting)
it is live compositing like postscript on screen but it is not yet vector.
the best mac community on the web [tribbles.org]
Re:Quartz is not vectorized (Score:5, Informative)
The Aqua interface elements (brushed metal, gel buttons, title bars, wtc) are bitmaps but that's not a limitation of quartz.
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.
Re:Quartz is not vectorized (Score:5, Informative)
also exists in X11--just turn it on (Score:3, Informative)
The reason it isn't turned on by default is that that kind of buffering consumes a lot of memory. Furthermore, once
Re:also exists in X11--just turn it on (Score:5, Insightful)
Except it's not quite that easy. Many applications do not use the backing store, mostly because the way the old backing store system works in X is not useful. Just as a test, turn on backingstore and drag one firefox window over another - you will see trails of the top window in the bottom one, no matter how fast your hardware is. This is because X is continually telling the lower window to redraw itself because the upper window has exposed a different portion of it.
The real solution to this problem is the Damage and Composite extensions. Damage allows the server to be more intelligent about what needs to be redrawn, listening for changes from clients. Composite allows a compositing manager to run which can keep all the windows contents available and redraw changed windows (via damage). The compositing manager is then using a backing store properly to make opaque move smooth.
A backing store is no good if you don't/can't use it for anything.
Re:Quartz is not vectorized (Score:2)
The situation with OS X appears to be reversed: it inherited vector drawing in the server, but mostly seemed to be using bitmaps for theming.
Re:Quartz is not vectorized (Score:2, Informative)
No, it doesn't. This is still client-side. The X server knows nothing about GTK+ or Cairo.
There are discussions about putting Cairo in X (via RENDER?), but this is not it.
Re:Quartz is not vectorized (Score:2)
You are correct in stating that Quartz handles vectors just fine. Quartz (split into the Quart 2D layer and the Quartz Compositor) is primarily a vector API. As all good vector APIs (e.g. SVG, Cairo), it can also deal with bitmap graphics, hence the confusion in some minds.
Yet PDF is _not_ underneath. Quartz uses the same graphics model first introduced in Postscript, then re-used in PDF/Java 2D/GDI+/Quartz/(maybe others ?) . Still, no PDF is gen
Open Source 3D (Score:5, Insightful)
Oh well, at least it's a start to get some OS X-like eye candy.
Open Source drivers for 3D (Score:5, Informative)
Have a browse around Direct Rendering Open Source Project [freedesktop.org] for details of video cards with open source 3D drivers.
Re:Open Source drivers for 3D (Score:2)
nVidia
Status
nVidia provides their own closed source, binary drivers and therefore nVidia cards are not supported by DRI.
Unless of course you run FreeBSD on AMD64...like me...then you're SOL. Bullshit.
Re:Open Source 3D (Score:2)
I've been using the Open Source radeon driver for about a year with my Radeon 9200 Pro. There appeared to be some stability problems at first and I tried to stay away from OpenGL programs to avoid crashing. But it seems to have cleared up since about the middle of last year. I'm not a gamer, so the performance of this 2-year-old card is perfectly fine.
I was never able to get the ATI binary driver to work on my Debian system. That's one of the main reasons I don't like binary drivers: I don't use a "popu
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2)
There's currently a project underway to develop an opensource r300 driver. It's making decent progress considering that ATI refuses to give the specs to the developers (though they have given the specs to Xi Graphics).
Dinivin
Re:Open Source 3D (Score:3, Informative)
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2)
So I either f**k around with Alien and their broken RPM's
No, you don't. Others have done that for you already: http://www.stanchina.net/~flavio/debian/fglrx-inst aller.html
Re:Open Source 3D (Score:3, Informative)
Tsss, you didn't even _try_ to look, now did you?
It's very simple;
GTK+ can now use Cairo.
Cairo uses Glitz.
Glitz uses Mesa for OpenGL.
Mesa uses DRI to interface with the hardware.
DRI drivers implement hardware acceleration under X, using DRM drivers.
DRM drivers are kernel drivers.
These layers are handled by at least 3 or 4 totally different organizations. Fortunately software engineers are known for their fabulous communication sk
Re:Open Source 3D (Score:4, Interesting)
There ARE OS drivers for lots of cards! (Score:2)
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
Re:Open Source 3D (Score:3, Informative)
Re:Open Source 3D (Score:4, Funny)
shit. etc-update just overwrote all my config files. I'll be back in week or two, asshole. Then you'll be sorry.
Gentoo Rocks, but this Parody Rocks even more (Score:2)
Absolutely hilarious!
PS - Gentoo is recompiling my genome as I
Re:Open Source 3D (Score:5, Insightful)
Remeber that while good binary drivers exists for Linux and FreeBSD other OSes are not that lucky, and free software is for everybody.
An new free sofware project should not need to talk to Nvidia and ATI (Who would not give a shit anyway) to get basic functionality going.
I like many others use binary GFX drivers today to drive my desktop but today it isn't needed except for some extra fluff like games.
Re:Open Source 3D (Score:2)
Why?
So by your logic OSS shouldn't be written for "closed source" cpus like the x86 series.
nvidia implements a standard driver [which X can talk to and works in OpenGL]. They follow standards. The fact that the s
Re:Open Source 3D (Score:5, Insightful)
If the complete driver was in the firmware of the hardware and it exposed somekind of API (like x86 is) it would be ok, because then we could use the full hardware just as good with open or closed software.
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2)
If there where no open drivers for things like video TIVO may never have happened (or they would have used windows) because they couldn't get a licencing deal with nvidia. Even if they could li
Re:Open Source 3D (Score:4, Insightful)
I should note that this is exactly how most USB and FireWire devices do work, which is why you rarely need to install drivers for them (except on Windows).
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2)
Sure. But the graphics cards cost a whole lot more money.
Re:Open Source 3D (Score:3, Informative)
Imagine you are in a foreign country where you don't speak the language, and you want to buy an apple from a fruit merchant. Without a common word for "apple" it's going to be hard to get what you want. You can make your desire clear by pointing at the apple, but that's just because then you've reverted to a different kind of langua
Re:Open Source 3D (Score:5, Insightful)
OpenGL may not be optimal for a hardware interface. You may want more light sources available from OpenGL than the card can do on its own. The interface to the hardware needs to support compositing of several renders to implement many more light sources than the hardware can do.
Furthermore, textures may use a sophisticated compression technique that must be done on the host CPU, the hardware will have to have registers programmed, and they may have a clever video RAM page mapping technique that gives them a large performance or temperature boost. they may not use IEEE floating point numbers in the same format as the host CPU and don't want to give away the format they use, or include extra silicon to decode them.
Lots of very good reasons for a business with interests in money rather than quality of service.
> If nVidia and ATi collaborated on the interface specification then they could even use the same drivers (driver initialises, driver checks for supported OpenGL version and extensions, driver loads emulated code paths for everything else), cutting their own driver development costs without having to expose any of the internal workings of their hardware.
They specifically want to avoid using the same drivers since driver performance is a *major* factor in performance in general, and they want to maintain any advantage they have in whatever areas they have. The first one to open up is the first one to lose the advantage.
The only solution is to design an open 3D video interface that supports the implementation of the very highest performance hardware, and write the drivers for it to the very highest quality. Then the first hardware manufacturer to port their core to the new interface (which could be a lot of work) might be the first to *gain* the advantage. Only then will you see any movement.
And I make no pretense that anything would happen even then.
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:3, Insightful)
> They follow standards. The fact that the source is closed shouldn't bother people.
Speaking only for myself, the main difference is that the nVidia driver has to be linked with the kernel.
This may seem like an unbelievably eggheaded reason to dislike it, but I'll try to explain. When nvidia's
giant binary blob is linked with my kernel, all bets are off as to debugging any problems that might arise. If
the driver crashes,
Re:Open Source 3D (Score:2)
My K8 at 2.2Ghz hits a max of 45C, can you say the same about a PM? Can a PM at full load do as much as a K8?
And my point was even though the working specs of the cpu are largely not disclosed I can still CHOOSE which product I want. I'm not locked into Intel or AMD [hell I could go VIA, PPC, ARM, etc... if I wanted].
Similarly if I really want an open card I could buy an oldschool s3 or something. If I want a cheap, robust card that gives decent perf
Re:Open Source 3D (Score:2)
Them bitching about closed source nvidia drivers is like me bitching about closed source Pentium cpus.
You say there is choice amongst cpus
Almost like WE'RE SAYING THE SAME FUCKING THING!!!!
Tom
Re:Open Source 3D (Score:2)
Re:Open Source 3D (Score:2, Informative)
I don't remember having to download a proprietary kernel module to use my RAM.
Dumbass.
Re:Open Source 3D (Score:2)
nvidia-glx:
Installed: 1.0.6629+1-1
Candidate: 1.0.6629+1-1
Version Table:
*** 1.0.6629+1-1 0
600 http://ftp.uk.debian.org sid/non-free Packages
100
You suck!
Mono and cairo (Score:5, Informative)
Re:Mono and cairo (Score:2)
Why give up bitmaps (Score:2, Insightful)
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. Whe
Re:Why give up bitmaps (Score:3, Funny)
"Bitmaps should be enough for anybody" -- slashdot, 2005
Re:Why give up bitmaps (Score:3, Interesting)
At the moment GTK uses gdk (essentially xlib) to paint widgets, and programs which want to display lines, shapes etc in their application window use GtkCanvas (declare a lot of objects for how you want your screen painted, it gets rendered clientside in tiles, then sent to the screen with XPutImage() or somesuch).
Cairo should give gtk a single API for drawing both widgets + application which will be (eventually!) hard
Vector are Faster (Score:2, Informative)
Re:Why give up bitmaps (Score:3, Informative)
Re:Why give up bitmaps (Score:2, Interesting)
One of the things I always assumed, and this may not have any basis in "computing reality" but it would seem something like an X server that rendered everything with vectors is the perfect solution for remote windows. You no longer have to send bitmaps, just a mathematical description of the screen, then you let the client decide how detailed they want to render the screen... maybe no antialiasing or shadows for a low-end box and
Re:Why give up bitmaps (Score:5, Interesting)
1) Smaller sizes also give a performance boost on all types of data transfer, including expensive memory bandwidth
2) The rasterized vectors can still be cached, this reduces overhead during redrawing operations (something already being done with bitmaps)
3) Vectors give you resolution-independent displays that have better visual quality at negligible performance differences between resolutions (this is debatable, but I'm talking about full hardware-acceleration)
4) Cairo, Quartz and Avalon are ultimately designed for GPU acceleration, so ideally there won't be a performance hit on the CPU
Yes, you may still need a somewhat powerful PC to have full-access to all the benefits of these vector-based engines, but on less powerful equipment you can do something you can't do with bitmaps, and that's having a smoother and more graceful visual degradation using the same source material.
And, by the way, we'll still be using bitmaps for a long time, so you don't need to worry about GTK/X developers deprecating bitmap rendering and everything becoming vectors overnight, chances are that most users will need to have some form of programmable GPU before that happens. I guess that's why Avalon is getting delay after delay, and Apple can get away with it so much earlier because it has better control on its out-of-the-box hardware capabilities.
Re:Why give up bitmaps (Score:2)
Sure they have, although you had to pay attention to spot it (Graphics & Media state of the union [apple.com]).
I don't have a time marker in the stream, but Quartz 2D Extreme is demonstrated. It is the OpenGL/GPU-accelerated implementation of the Quartz 2D vector library.
The other reply to your post was also somewhat correct in stating that Apple is already using the GPU to accelerate Quartz. However it is only the co
Re:Why give up bitmaps (Score:2)
Re:Why give up bitmaps (Score:2)
Re:Why give up bitmaps (Score:2)
In any case, that's not the reason for going to vectorized graphics; vectorized graphics makes development and theming easier and allow new kinds of interaction. This isn't Apple's idea; Tcl/Tk and Gtk+, for example, use a stored vector canvas extensively. Apple is rather late to the party, sticking with bitmaps for a long time.
The time is about right to switch to vectorized graphics now: it is less efficient, it is harder to implement, but it will simplify applica
Re:Why give up bitmaps (Score:3, Insightful)
Wi
a question... (Score:2, Interesting)
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?
Re:a question... (Score:2, Informative)
Re:a question... (Score:2)
Gnome: supports scalable SVG icons, fun!!! [gnome.org]
Inkscape: is an open source SVG editor that has recently added Text-on-a-Path to its feature list [sourceforge.net]
librsvg: lib for adding SVG support to apps. Also, has a command line SVG rasterizer (although inkscape can do that also) [sourceforge.net]
Now - finally (Score:3, Insightful)
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 [cairographics.org] that work together with SWT [eclipse.org] 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...
Re:Now - finally (Score:2)
No more than that they both use XLib somewhere along the line.
Re:Now - finally (Score:2)
Re:Now - finally (Score:2)
Gnome marketing (Score:4, Insightful)
> support for the Cairo 2D vector graphics library"
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep
6 months later....
real news please? (Score:5, Insightful)
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.
Comment removed (Score:4, Interesting)
FLTK and Cairo (Score:2, Informative)
All we need now is mesa-standalone, and then XGL (Score:4, Informative)
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...
Cairo Vector Engine, eh? (Score:2)
Convergence (Score:2)
The idea of GTK+, KDE, and Windows all supporting the same API is enough to make a cross-platform developer giddy.
Go Cairo!
Scaling? (Score:3, Informative)
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.
Re:Scaling? yes (Score:3, Informative)
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 gre
OpenGL on linux (Score:3, Informative)
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?
Re:Vector Graphics is a DUPE of the NeXT box... (Score:4, Informative)
Some programs exploited Display Postscript more than others, but on the whole, I'd expect to see a lot more vector graphics use in a typical free software OS in the next few years than I saw with NeXTSTEP and OPENSTEP. I was never much of a PS hacker, but I understand that PS can do a lot more than graphics work.
I own a NeXT cube system (currently in my attic, unused) which I used to use regularly from NeXTSTEP 2.1 through NeXTSTEP 3.2.
Re:Vector Graphics is a DUPE of the NeXT box... (Score:5, Interesting)
PostScript is a Turing-Complete language. This actually makes it a bad choice for interactive graphics (i.e. not printing), because it is impossible to determine how long a piece of PS code will take to run in advance (or even if it will ever terminate - see the halting problem). Display PDF, used in Quartz, eliminates this problem, since PDF is a non-Turing-Complete subset of PS.
I own a NeXT cube system (currently in my attic, unused)
I don't suppose you're interested in selling it are you?
Re:A little knowledge is a dangerous thing (Score:2, Insightful)
Re:Vector Graphics is a DUPE of the NeXT box... (Score:2)
Jargon explanation (Score:2, Informative)
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:
I hope it helps. (Your comment has t
Re:No shit, sherlock (Score:3, Insightful)
[...]
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."
Well, Trolltech is not really secretive about their investors. Do a little research and you'll find this site [trolltech.com]. Out of the 9 parties and groups listed there, Canopy is number 7 and SCO number 9, with a combined share of abo
Re:No shit, sherlock (Score:2)
More like a complicated way of saying "we have no idea whether there's any merit to it or not, but even if it were, we think they took the wrong approach" He says we do not support these actions from SCO twice. How much clearer could he be considering it's an ongoing case?
Now, if a certain Darl had been the speaker here, 100 negations would have been worthless. But unless there's evidence to the contrary, I would consider this to be in good faith. H
Re:No shit, sherlock (Score:2)
There is nothing they can do about this investment, and with ~5% it's also nothing to worry about. Apart from that,
Re:Cairo vs Longhorn's Avalon (Score:5, Informative)
What's your definition of "out"? From the Cairo download page [cairographics.org], "Cairo is still under active development. The API is rapidly approaching stability, but is not quite there yet, so there is not yet any official "release" of cairo." So, Cairo is not a 1.0 release, or even a .01 release. Dev snapshots are available, in an unstable form (the API is "approaching" stability). How does this differ from the available technology [microsoft.com] preview [microsoft.com] of Avalon (aside from the openness of the source, of course)?
Both are still in pre-release stages. Both are available in a publicly-consumable form even though they've not reached API stability yet. Declaring one or the other the "winner" is still premature.
Oh, yeah, and Avalon will be available on XP and 2k3, not just Longhorn.
Re:Cairo vs Longhorn's Avalon (Score:3, Insightful)
So will Cairo. Remember that GTK+ is cross-platform. =D
Re:Bloat (Score:2)
4 seconds here. Using the X-one-thousand counting method, where X is an integer greater than 0. Perhaps it's time for you to (a) upgrade or (b) use xterm? I mean...open source is about choice, right? Choose to use a less resource-intensive terminal for your out of date hardware. HELL, i'm using FreeBSD and it's fucking DEAD man!
Re:Bloat (Score:2)
Both GNOME and KDE tick me off in this regard.
Re:Bloat (Score:2)
Re:Bloat (Score:2, Informative)
FVWM already exists for those who want it (Score:2)
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 busi
Re:FVWM already exists for those who want it (Score:2)
The parent post isn't asking for solutions, though; it's about generating FUD regarding Linux not being "ready for the desktop"(!). The 10s he quotes makes my old 366 MHz laptop look like a supercomputer. Maybe I'll hold onto it for a while longer...
Re:Bloat (Score:2)
Re:Bloat (Score:2)
It's been a while, I could use a whole article devoted to generating a KDE v Gnome flamewar. It's the weekend - entertain me!
Re:Bloat (Score:2)
It's Pango (Score:3, Interesting)
Re:I missed somthing... (Score:2)
For me, just the opposite. App icons on docking panel of my linux pda are 8x8 and 6x7 pixels. With sub-pixel rendering from vector definition, they are just looking much better than filtered down 32x32 raster.
Re:I missed somthing... (Score:2)
So, create 8x8 and 6x7 bitmaps from the vector definition, and save memory on a 32x32 bitmap! a 32-bit 8x8 image is 256 bytes in size.
Re:I missed somthing... (Score:2)
Hardly. 8x8 and 6x7 are docking icons. In the list icon view of a directory, they are 24x24, and 32x32 big-at-center-of-screen while starting up something. Some of these vector icons are even animated.
So, I still prefer to have vector icons in precious pda flash, rendering them in sub-pixel quality to raster icon cache ram on the fly as they are needed in whatever size is
Re:I missed somthing... (Score:2)
Re:I missed somthing... (Score:3, Informative)
This will allow all gtk application to render everything using cairo, much like gdk was used in the past. This makes high quality vector (and bitmap) operations available in gtk, where they weren't before. And the plan is to later accelerate this through the graphic cards GPU or 3d engine to make all graphics fast and smooth.
And you can have some honkin' big icons if you want...
Re:I missed somthing... (Score:3, Interesting)
Yes, it does if you can figure out how to build it yourself. When I say future, I mean when this is all released and distributers pick it up so that I can rpm it (or apt, as the case may be.) I have spent the past several days trying to build the freedesktop x server with the opengl goodies, and I haven't had much luck.
Re:I missed somthing... (Score:2)
You disgust me.
(Actually, I've switched to ones a quarter of the size [deviantart.com] since then. Also, I got myself a nice Debian laptop, but it's not as customized as the XP box.^-^)
Re:Cairo? Windows NT 4.0 Beta? (Score:2)