|
|
|
|
|
by lobster_johnson
5192 days ago
|
|
I think one of the reasons is that OS X provides automatic double-buffering of window content at the OS level (it also has a somewhat different drawing model than Windows), which adds a bit of latency but reduces flicker. Another factor is that Mac apps typically adapt themselves to the size of a window, and resizing will trigger a redraw of everything. Apps like Mail have always been really slow at redrawing themselves, whereas Chrome is very fast. OS X was written from the ground up to be graphics-intensive. From very early on, Quartz, OS X's compositing manager, has been using the GPU to render windows to OpenGL textures, essentially using the graphics card's very fast 3D support to render a 2D screen. Windows's classic GDI (which has been replaced by Aero, afaik, but I guess most apps are still GDI) is considerably simpler, and leaves the drawing entirely to the application. This is the reason you see a lot more redraw flickering in Windows apps. Some apps are so slow at redrawing that when you resize the window to make it bigger, you can see the new unpainted areas filled with various garbage (or with some default background colour at best) before the actual content comes in. To create smooth, non-flickering widget drawing in Windows you have always been forced to do the double-buffering yourself. Even in Windows 7 there is a lot of redraw flickering. I'm particularly annoyed about how the mouse cursor tend to flicker randomly -- eg. when Internet Explorer is loading a page -- which is such a small, trivial detail, but one that ends up making the entire OS feel shoddily built. |
|