2014-01-30 99 views
2

本頁面http://source.android.com/devices/graphics.html說:的Android,Skia的,和硬件加速圖形

至Android 3.0之前,帆布使用Skia的 2D繪圖庫繪製, 這無法利用硬件加速的。引入 Android 3.0,Canvas API的硬件加速使用新圖形 庫稱爲OpenGLRenderer將Canvas操作轉換爲 OpenGL操作,以便它們可以在GPU上執行。

但是,Skia頁面http://code.google.com/p/skia/表示Skia可以在OpenGL後端。另外,這個Skia FAQ https://sites.google.com/site/skiadocs/user-documentation/faq說:「SkGLCanvas已經被寫入來指導它的繪圖調用OpenGL。」

所以我想知道,有沒有一個特別的原因Android不會簡單地使用Skia支持OpenGL來獲取硬件加速圖形?(也許OpenGL和OpenGL ES之間的區別?)

回答

3

他們明確打算讓Skia加速某些事情,但它從來沒有真正發生過。 PixelFlinger和libagl也很像早期版本的OpenGL,但從未實際加速過。

大的中斷是OpenGL ES的2.0版本。它的大部分力量在於它的着色語言,並沒有直接的方法通過Skia來利用它。 ICS實際上是一個重要的重新設計,他們放棄了Skia來使用OpenGL ES 2.0--所有這些都是GLSL的功能。

他們還非常需要在2.0中改進對FBO的支持。它是新的TextureView和VideoView類的基礎。

99%以上的Android設備現在都具有OpenGL ES 2.0加速功能也很重要。有關他們如何將GLSL暴露給ICS中的Canvas API的示例,請查看Effects類。

+0

好,謝謝,我還以爲Skia的成爲了硬件加速,但也許這是比較容易添加GLES2加速無Skia的。 – mlepage