Why Apple didn't use X for the window system
developers.slashdot.org
Why Apple didn't use X for the window system
1–10 of 37 posts
Re: Why Apple didn't use X for the window system
#2It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000)
2) Extend drawing primitives to include PS-like path operations.
It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model.
3) Add dithering and phase controls.
It does that. See Cairo/XRender.
4) Add ColorSync support for drawing and imaging operations, display calibration
Yeah, color management sucks. On all systems. There's work to make it better on X, with XRandR 1.2 CRTC properties, but the linear lookup tables that hardware exposes can only do a rough approximation. The "right" way of doing it that would provide good results is slow, complicated, and difficult to get right.
5) Add broad alpha channel support and Porter-Duff compositing, both for drawing in a window and for interactions between windows.
It does that. See composite/cairo/XRender.
6) Add support for general affine transforms of windows
It does better than that - this is under application control, and can do weird and wonderful stuff like cutting holes in windows, rendering them in 3d, recoloring them, etc
7) Add support for mesh-warps of windows
See above -- arbitrary manipulation to window images is possible because it's under application control.
8) Make sure that OpenGL and special video playback hardware support is integrated, and behaves well with all above changes.
Yeah. drivers suck under X. the situation is rapidly improving though, especially under Intel and ATI.
9) We find that we typically stream 200 Mb/sec of commands and textures for interactive OpenGL use, so transport efficiency could be an issue.
No, it really isn't. Unix domain sockets are fast. really fast. as in, beating shared memory sometimes fast. And if you really need shared memory (this can be a win in large, one-time blits, although usually you're better off not using it), it's also there through the XSHM extension which is about 15 years old.
So why did they do their own window system from scratch? Well, because they didn't. They merely extended NeXT's disply postscript, which they already owned and had code for.
Re: Why Apple didn't use X for the window system
#31) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Still, it shows how fast X is progressing, now that we've ditched XFree86.
Since the split, X has really moved into the 90s, gaining esoteric features like monitor hotplugging, being able to configure more than one input device at once (like a touchpad and external mouse) and other silly things that nobody would ever want.
It's also jumped ahead of other window systems by leaps and bounds in some areas -- for example, multitouch support has been merged in, and X will be the first desktop window system to support multiple pointers, input redirection is on it's way, a new OpenGL framework (Gallium3D) is coming, new 2d acceleration (Exa/GEM/TTM/...) are in various states of merged-inness, etc.
And they've done all of this while deleting between 10,000 and 50,000 lines of code per release. And preserving backwards compatibility.
I'd say the future looks pretty bright for X.
[edit: give a better overview of what I mean by X progressing]
Re: Why Apple didn't use X for the window system
#41) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Notice that this is an old comment. Did all those features you describe exist back in 2003 on X?
Re: Why Apple didn't use X for the window system
#51) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Re: Why Apple didn't use X for the window system
#61) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Perhaps they also wanted as much control as possible. Whilst they have done benevolent forks before (webKit) perhaps they thought that with X it would be unlikely to be taken well if they "had their way with it".
Re: Why Apple didn't use X for the window system
#71) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Oh. Oops, noticed the date. How things change in just a few years. =) Still, it shows how fast X is progressing, now that we've ditched XFree86. Since the split, X has really moved into the 90s, gaining esoteric features like monitor hotplugging, being able to configure more than one input device at once (like a touchpad and external mouse) and other silly things that nobody would ever want. It's also jumped ahead of…
Re: Why Apple didn't use X for the window system
#81) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
Is this a gimmick post to prove that block quotes lower the quality of discussion?
I just don't read posts like the one above. My brain literally refuses to bother anymore -- it scans the first couple of lines, sees the stuff it's already read, sees the repeated lines, and then starts looking around for something else to do.
The author's actual intelligence couldn't be better disguised if it came in the shape of a banner ad.
Re: Why Apple didn't use X for the window system
#9Earlier quoted context omitted.
Is this a gimmick post to prove that block quotes lower the quality of discussion?
I cannot possibly upmod this enough. I just don't read posts like the one above. My brain literally refuses to bother anymore -- it scans the first couple of lines, sees the stuff it's already read, sees the repeated lines , and then starts looking around for something else to do. The author's actual intelligence couldn't be better disguised if it came in the shape of a banner ad.
A short snippet that is being responded to puts the text in context, allowing the reader to see exactly what I'm going on about, without reading the article over and over, matching up what part, exactly, I'm responding to.
Sure, massive copy-and-paste is a waste of time, and obscures the post. However a lack of context, in my opinion, will make things even more confusing to the reader, especially in the case of the text that's being responded to being on a different page.
Ah well, each to their own.
Re: Why Apple didn't use X for the window system
#101) Extend font server and services to vend outlines and antialiased masks, support more font types, handle font subsetting. It does that. See Cairo/XRender. or XFT. or any of the other client-side font stuff (available since 2000) 2) Extend drawing primitives to include PS-like path operations. It does that. See Cairo/XRender. Cairo was explicitly designed around a postscript-style drawing model. 3) Add dithering and…
I'm coming from years of Windows lower-level UI coding (Win32/GDI/GDI+) and I wanted to look into Gnome/GTK+/Firefox drawing slowness (particularly with scrolling on weaker/older machines). I don't do much "pixel programming" at work, but I figured it would be fun side optimizing project to hack on.