2013-12-12 25 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