我有一个带有GPIO显示屏的Raspberry Pi。我目前在/ dev / fb1中将其设置为帧缓冲设备。有没有办法让它成为X窗口的默认或主要显示?我最终试图绘制图形,我原本打算使用DirectFB和SDL,但DirectFB是pi的alpha版本。我已经尝试过使用SDL1.2,因为它支持Framebuffer,但我无法弄清楚如何让SDL选择帧缓冲设备来绘制而不使用DirectFB。
我考虑使用SDL将我的简单GUI的每一帧准备为原始图像,并使用mmap将其blit到/ dev / fb1而不是使用SDL内置的绘图功能,但我觉得这是一个糟糕的方式来实现我的目标。
我认为如果我能让xorg使用我的帧缓冲设备作为主监视器,我就不用担心做SDL绘制我的图像文件有什么特别之处。但是我不确定xorg是如何工作的,如果可行的话。
任何人的见解或帮助都会有很大的帮助!我一直在讨论这个问题一个星期,看看不同的可能性。
答案 0 :(得分:1)
使用Raspbian上的SDL2,您可以直接在帧缓冲区上绘制而不使用X.图形窗口始终为全屏。你可以从控制台模式启动代码(X停止运行或者运行X运行LXDE,想法是SDL2不会使用X)。
不幸的是,Raspbian没有配备SDL2(Jessie的SDL2不起作用)所以你需要自己构建它(大约需要一个小时)。以下是构建SDL2的过程的描述:
sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev libasound2-dev
从https://www.libsdl.org/download-2.0.php下载SDL2的来源。假设您下载的文件名为SDL2 * .tar.gz,您可以使用以下命令构建和安装它:
cd ~/Downloads
tar zxvf SDL2*.tar.gz
cd SDL2*
./configure --disable-video-x11
make
sudo make install
之后,您应该能够将任何C ++程序与SDL2链接,例如:
g++ my_program.cpp -lSDL2 -o my_program
./my_program