日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

從Windows的角度看Mac OS X上的軟件開發(fā)( 四 )


操作系統(tǒng)服務(wù) Win32 API 系統(tǒng)服務(wù)多半可從POSIX layer用stdc/stdc取用
系統(tǒng)核心服務(wù) Win32 API CoreFoundation/CoreServices
繪圖與GUI Win32 (GDI32, USER32) Quartz (C API)/HIToolBox (Carbon)/AppKit (Cocoa)
面向?qū)ο蟮腁PI .NET Framework/MFC Cocoa
面向?qū)ο蟮腉UI及繪圖系統(tǒng) WPF/GDI (with MFC) AppKit (Cocoa)以及Cocoa Graphics
桌面應(yīng)用程序的數(shù)據(jù)庫方案 ODBC/ADO.Net CoreData
基礎(chǔ)繪圖系統(tǒng)使用的單位 Pixel (GDI) Point (Quartz)
默認(rèn)的屏幕分辨率 96 DPI 72 DPI
表二:開發(fā)語言與API的對照
圖形作業(yè)環(huán)境的差異:繪圖系統(tǒng)大家對OS X最主要的印象,想必還是它的圖形作業(yè)環(huán)境 。GUI的確是OS X與Windows差異最多的地方 。
在Windows環(huán)境里,傳統(tǒng)上Win32 API同時包括了繪圖(所謂的GDI/GDI )和GUI組件(窗口、對話盒、按鈕等等)的操作 。到了.Net 3.0有所謂的WPF (Windows Presentation Foundation) 。嚴(yán)格說來所有Windows上的概念和組件,都可以在OS X上找到相對應(yīng)的作法 。但是在架構(gòu)上OS X確實和Windows有相當(dāng)大的差異 。
OS X的繪圖系統(tǒng)核心是Quartz 。Quartz的繪圖基礎(chǔ)概念是路徑(path),而不是像素(pixel) 。驚人的事實是:Quartz是一套PDF繪圖系統(tǒng) 。所有Quartz能繪制的對象都能輕易轉(zhuǎn)換為PDF文件 。至于在圖像處理上,Quartz提供了一套完整的合成模型(compositing model) 。簡單地說,Quartz賦予了Mac OS X極為優(yōu)異的繪圖能力 。從一些細(xì)節(jié)就可以看出Quartz在視覺上的細(xì)致度:例如,OS X在顯示字型時的去鋸齒(anti-aliasing)處理就要比Windows來得細(xì)膩,在點陣影像的縮放上效果也往往比Windows好 。OS X的應(yīng)用程序可以輕易做出各種透明度的圖層、以及為圖形對象加上陰影、或者繪制不規(guī)則形狀(但這并不代表你應(yīng)該只是為了為了吹噓而濫用這些功能,我們馬上會提到用戶體驗這件事) 。倒是有個細(xì)節(jié)應(yīng)該馬上一提,那就是Quartz的默認(rèn)分辨率是72 DPI,所使用的單位是點(point),這跟PDF繪圖系統(tǒng)是一致的,和Windows預(yù)設(shè)為96 DPI、以像素為單位的點陣式繪圖系統(tǒng)很不一樣 。這在一開始可能很困擾人 。因為在OS X上,不改變屏幕設(shè)定的情況下,12 pt的字,就真的會被會繪制成12 px(而在Windows上,12 pt卻是16 px) 。同時,Quartz默認(rèn)的坐標(biāo)系統(tǒng)跟數(shù)學(xué)上的習(xí)慣相同,也就是(0, 0)坐標(biāo)起點是位于左下方,而不是一般計算機繪圖使用的左上方(當(dāng)然,Quartz有各種坐標(biāo)變換功能,因此當(dāng)然還是可以把(0, 0)設(shè)定為左上方的) 。
看似復(fù)雜,然而,當(dāng)你開始想輸出PDF(打印作業(yè)大幅簡化)或進(jìn)行精細(xì)的繪圖工作時,慢慢就會發(fā)現(xiàn)Quartz這樣設(shè)計的直觀了 。
另外,Quartz的基礎(chǔ)API是以C寫成的,所有對象操作方式都跟CoreFoundation一樣(從Quartz建立的對象都是用reference counting的方式在管理內(nèi)存,同時也都可以用CFRelease來釋放) 。不過,Cocoa也提供了絕大多數(shù)的API對應(yīng) 。使用Objective-C來操作繪圖對象會更輕松些 。
在Quartz之上,或者與Quartz并行的,還有Apple的各種圖形和媒體相關(guān)的子系統(tǒng) 。諸如可以快速制作動畫的Quartz Composer、新一代文字輸出編排系統(tǒng)CoreText、應(yīng)用層的2D動畫系統(tǒng)CoreAnimation,以及Apple的招牌多媒體架構(gòu)QuickTime,還有業(yè)界標(biāo)準(zhǔn)的OpenGL,這些構(gòu)成了Mac OS X在視覺及媒體經(jīng)驗上的核心 。

推薦閱讀