gravatar

Next-Generation Rendering for the Desktop GUI

如果看到這個網頁的影片, 應該會覺得蠻神奇並且有趣. 畢竟現在電腦配備的顯示卡都具有很多圖形加速功能, 若只是拿來打 3D game 或是看影片的動態補償也只是偶而才用到. 若是根本用不到這些的人, 裝著一張雖然不是等級非常高的顯示卡, 但是卻也很多功能也用不到卻是很浪費. 對於 Mac OS X 和四月份將要上市的 Tiger CoreImage 功能都能夠整合機器上的顯示卡來作 window rendering 及一些影像處理和合成的工作. 像是視窗上常見到的將程式的 icon 加上一個小箭頭的圖示變成shortcut圖示便是常見的東西; 將空白文件配上小的應用程式圖示, 就可以說明這種文件的格式是屬於那種. 或是視窗的半透明, 色彩變化等等, 以往的 Desktop GUI和Windows大概都是利用軟體和CPU來處理

舉個例子來說明, Mac OS X 上的視窗內容是由 Window Server 在負責, 即使程式 busy 不能更新 content, 但是視窗內容被覆蓋過後還是可以看得到, 還是可以任意移動等等. 還有 Exposé 這個功能, 尤其當工作視窗一堆時候, 他可以把視窗排列整齊讓你選擇. 選擇之後視窗各自回到自己的位子, 只有被選擇的視窗被移動到最上面.

在Windows裡面也有非常多的程式來模仿Mac OS X的效果, 其中一個是模仿 Exposé, 叫做 iEx. 不過要是使用過便會發現跟 Mac OS X 相差十萬八千里. 原因是Windows下應用程式要做到Exposé的功能, 需要擷取每個應用程式的視窗圖片, 所以使用時會發現每個視窗會一一顯示出來然後消失, 若是該視窗要是被其他視窗覆蓋, 便會擷取到別的視窗內容. 像是不規則視窗如 MSN Messenger, 會有一塊黑黑的矩形外框出現, 要是 Media Player 正在播放影片, 內容也會是黑黑一片. 然後接著突然出現整齊的視窗圖案在桌面讓使用者選取, 這時候視窗內容是固定不會變的, 不像 Mac OS X 把視窗排好但是內容或是影片還是會繼續顯示, 且排列視窗過程是 smooth 的快速移動.

因此很多東西如果只靠 windows 那套 DC/GDI/GDI+的畫圖和擷取功能, 是用不太到顯示卡的效能, 除了視窗加速外, 以及 DirectDraw/Overlay 這些功能. 在windows上要做到這些功能來幫助 users 使用視窗環境, 只靠 application 是不太夠的. 不知道 longhorn 有否改進以及增加這些視窗能力, 不然只是靠著 DC/GDI/GDI+ 以及 theme 來改變視窗外觀, GPU 只被定位在遊戲以及影片的地位, 那麼電腦上的 GPU 猶如沒有太多用武之地.