2010-01-22 9 views
2

我越多地瞭解不同類型的視圖/上下文/渲染後端,我越感到困惑。不同macosx圖形API,框架和圖層的硬件加速/性能和鏈接

關於http://en.wikipedia.org/wiki/Quartz_%28graphics_layer%29 MacOSX提供Quartz(Extreme)作爲渲染後端,本身是Core Graphics的一部分。 在蘋果文檔和一些書籍中,他們說無論如何你都會使用OpenGL(很明顯,因爲這個操作系統使用OpenGL來渲染它的所有UI)。

我目前有一個應用程序,應該從相機捕獲實時視頻(通過QTKit這是基於Quicktime,但是可可),我想進一步處理幀(通過核心圖像,GLSL着色器等)。

迄今爲止好。現在我的問題是 - 它performancewise重要,如果你

  • a)擬訂通過石英和隱含通過OpenGL或
  • B中捕獲的幀),如果你設置OpenGL上下文和DisplayLink的並繪製緩衝圖像明確地通過OpenGL?

去哪種方式的優點或缺點是什麼?

我已經看過不同的例子(特別是CoreImage101和CoreVideo101)和蘋果開發者頁面的文檔,但我不明白他們爲什麼要去(或必須去)那樣?

我真的不明白Core Video和Core Animation在哪裏發揮作用? 確實會去b)自動錶示我使用Core Video?和我可以使用Core Animation的方式?

附加信息:

PS:順便說一句,我是在Leopard上,所以還沒有QuicktimeX混亂:)

回答

2

一般而言OpenGL只是給你更多的靈活性比更高層次的API。如果更高級別的API不提供您需要的功能,那麼您很可能需要下拉到OpenGL層。

如果他們不提供你需要,那麼你應該相應速度的一切。考慮到Objective-C的開銷,可能是一個很小的(幾乎可以忽略不計的)降級。