2014-01-07 45 views
0

據我所知,Android中有兩個圖形引擎:OpenGL ES和Skia。它們都提供了一組繪圖API和輸出圖形數據給底層的GraphicBuffer。我的問題是GraphicBuffer的數據格式是什麼?這是一個標準嗎?Android:GraphicBuffer數據格式

+0

你爲什麼不做自己的研究?我們不是爲你做這件事,也不是教你各種各樣的事情以及它們的工作方式! – Vallentin

+0

@Vallentin你投下了這個問題是不公平的。我不認爲它有任何問題。我在這裏問了之前,我做了研究。 – Dagang

+0

所以你說這是不公平的投票,因爲你沒有閱讀SO的指導方針和要問什麼?並且因爲你根本沒有遵循指導原則! – Vallentin

回答

2

OpenGL不是一個圖形引擎,它是一個直接與GPU對話的繪圖API。它不像OpenGL是一個庫,用它來繪製一個特定格式的圖像,其中然後加載到圖形處理器上。 OpenGL通常直接在圖形處理器上運行。

然而,Skia 的一個圖形引擎。它可以用軟件渲染到像素緩衝區或PDF。或者它可以進行OpenGL調用,這是它通常在Android上執行的操作。

一個圖形緩衝區對象實際上是一個抽象句柄事物,它表示存儲圖形數據的實際內存。但沒有「標準格式」;每個GPU可能有自己的最佳佈局。重要的參數是每種RAW圖像格式的參數:原點,行長度,步幅,通道數量,每通道位數,像素數據對齊。

但是最常見的格式是BGRA,每個像素8位,stride ==行長,4字節數據對齊。但是作爲開發人員,操作系統在幕後使用它並不重要。