fb0スキャンラインの長さを取得するには?

fb0スキャンラインの長さを取得するには?

私はHP Envy Touchsmartノートブックを使用してコンソールモードであるDebian 10で作業していますが、fwrite標準C機能を使用して/ dev / fb0(画面のフレームバッファ)にアクセスしています。

私はこのページを読みました: https://techoverflow.net/2015/06/21/querying-framebuffer-solution-in-linux/

"cat /sys/class/graphics/fb0/virtual_size" は fb0 のサイズを返さなければならないと明記されています。

1366 x 768 ピクセルを返します。これが私の実際の画面解像度です。今まではそんなに良くなった。

ただし、/ dev / fb0に書き込むときは、実際に新しい行を開始する前に1376ピクセルを書き込む必要があります。

ピクセルは32ビットパケットなので、潜在的なスキャンラインの整列に問題はないようです。私たちは10倍の4バイトの違いについて話していますが、これは40バイトなので非常に大きな違いです。

この違いはどこから来るのか?視覚的に見つけることなく走査線幅情報をどのように取得できますか?

答え1

/sys/class/graphics/fb0/strideで値を見つけることができます。行の長さ(バイト)~によると源泉bits_per_pixel8で分割する必要があります。ストライドピクセル単位です。

関連情報