gpt4 book ai didi

qtembedded - Qt Embedded 交换颜色位 : Red and Blue

转载 作者:行者123 更新时间:2023-12-04 21:47:37 25 4
gpt4 key购买 nike

我在帧缓冲区 (/dev/fb0) 上具有 16 位颜色深度的 ARM 显示设备上使用 QtEmbedded (4.8.0)。在这种情况下,我们正在交换颜色位 RED 和 BLUE。

我们使用以下编译标志:

./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -prefix /home/rchaves/Toolchain -release -opensource -shared -fast -depths 16 -largefile -no-exceptions -no-accessibility -stl -no-sql-mysql -no-sql-psql -no-sql-oci -no-sql-odbc -no-sql-tds -no-sql-db2 -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -no-openssl -no-nis -no-cups -iconv -no-pch -no-dbus -qt-freetype -no-opengl -qt-gfx-linuxfb -qt-kbd-linuxinput -qt-mouse-tslib -nomake demos -nomake examples

以及执行应用程序的以下参数:
QWS_DISPLAY=LinuxFb:/dev/fb0:depth=16 ./app -qws

这里有应用程序帧缓冲区(样本)日志:
The framebuffer device was opened successfully.

Fixed screen info:
id: DISP3 BG
smem_start: 0x93800000
smem_len: 7864320
type: 0
type_aux: 0
visual: 2
xpanstep: 1
ypanstep: 1
ywrapstep: 0
line_length: 2048
mmio_start: 0x0
mmio_len: 0
accel: 0

The framebuffer device was mapped to memory successfully.

Successfully switched to graphics mode.

Variable screen info:
xres: 1024
yres: 768
xres_virtual: 1024
yres_virtual: 3840
yoffset: 0
xoffset: 0
bits_per_pixel: 16
grayscale: 0
red: offset: 0, length: 5, msb_right: 0
green: offset: 5, length: 6, msb_right: 0
blue: offset: 11, length: 5, msb_right: 0
transp: offset: 0, length: 0, msb_right: 0
nonstd: 0
activate: 64
height: -1
width: -1
accel_flags: 0x0
pixclock: 15385
left_margin: 157
right_margin: 157
upper_margin: 16
lower_margin: 15
hsync_len: 5
vsync_len: 1
sync: 0
vmode: 0

Frame Buffer Performance test...
Average: 43020 usecs
Bandwidth: 174.338 MByte/Sec
Max. FPS: 23.245 fps

Will draw 3 rectangles on the screen,
they should be colored red, green and blue (in that order).
Done.

最佳答案

迟到总比不到好。我在使用 Qt5.5.1 和 linuxfb 插件的 SAM5 处理器上遇到了这个确切的问题。重新配置或重新编译 Qt5 框架不会解决问题。

显然 LinuxFB 插件不支持 BGR 格式。有一个open bug跟踪这个问题。检查 determineFormat函数在 ../src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp ,您会发现无论提供什么样的帧缓冲区信息,ImageFormats 都被硬编码为 **RGB。

为了解决这个问题,应用patch附加到错误可能会帮助您解决此问题。

我说“可能”是因为我的帧缓冲区驱动程序错误地报告它是 RBG 格式。所以要注意这一点。如果是这种情况,只需硬编码 swapRgb标志,直到您修复帧缓冲区驱动程序。

关于qtembedded - Qt Embedded 交换颜色位 : Red and Blue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com