我正在控制台模式、Debian 10、使用 HP Envy Touchsmart 笔记本电脑、使用 fwrite 标准 C 函数访问 /dev/fb0(屏幕的帧缓冲区)。
我读了这一页: https://techoverflow.net/2015/06/21/querying-framebuffer-resolution-in-linux/
它指出“cat /sys/class/graphics/fb0/virtual_size”应该返回fb0的尺寸。
它返回 1366 x 768 像素。这是我的实际屏幕分辨率。到目前为止一切都很好。
但是当我写入 /dev/fb0 时,实际上需要在开始新行之前写入 1376 个像素。
请注意,像素是 32 位数据包,因此看起来不存在潜在的扫描线对齐问题。我们谈论的是 10 乘以 4 字节的差异,即 40 字节,这是很多。
这种差异从何而来?如何获得扫描线宽度信息而不必通过目视找出?