2013-12-12 22 views
1

我得到了一個UI應用程序,分別在16,24或32 bpp中將輸出渲染到屏幕外幀緩衝區。如何計算Framebuffer音調?

我需要計算音高,我的理解是pitch是一個掃描行中的字節數,是否等於screenx * bitsperpixel?雖然顯然它不會產生正確的結果。

我們可以有一個公式(通用)來計算音高嗎?

回答

4

根據this

緩衝器在視頻RAM一般都有一個與之相關的步幅(也稱爲間距)。步幅是緩衝器的字節寬度

例如,如果你有16個比特的1024×768像素緩衝器/像素(2個字節/像素),您的步幅將是:

1024像素×2個字節/像素= 2048字節

所以通用的方法來計算,它是:buffer_width * bytes_per_pixel

然而重要的是要注意,對於瓦片渲染器幀緩衝器未在存儲器線性和,我認爲那個球場是一個瓦片的寬度(我找不到來源來確認t他)。

+0

感謝Raxvan的回覆,我正在瀏覽網頁,並通過這個公式來計算音高(對不起,現在沒有鏈接)...(((Framebuffer.Width * 32)+ 31)&〜31)> > 3,這看起來像32bpp,如果我有16bpp?它會工作,如果我只是用16取代32,任何想法> – Saqlain

+0

@Saqlain我認爲公式用填充計算寬度(以字節爲單位),並且很難爲您的問題找到明確的好答案 – Raxvan