最近移植SDL,发现SDL2已经不支持framebuffer了、SDL2比SDL新增了更多的特性。SDL1。2版本已经弃用,不再发布更新了。SDL1。2。15移植到zynq上,已经成功运行。 想尝试SDL2的更多特性,自然需要有一个中间层,如X11,wayland,DirecFB等。很多小游戏都是基于SDL2开发的。SDL版本在Linux平台上对图形库的支持 Name Description 1。2 2。0 x11 (default)UsetheX11windowingsystem yes yes dga UseXFree86DGA2。0forfullscreenhardwareacceleration yes fbcon Usetheframebufferconsole yes directfb UsetheDirectFBAPI yes yes svgalib UsetheSVGAlibAPI yes ggi UsetheGeneralGraphicsInterfaceAPI yes aalib UsetheAsciiArtlibrary yes wayland UseWaylandprotocolforhardwareacceleration yesDirectFB简介 DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。移植步骤 编译directFB相比较而言更简单,所以就开始动手交叉编译directfb到我的armLinux平台,步骤如下: 1。下载DirectFB1。7。7。tar。gz 2。解压缩tarxvzfDirectFB1。7。7。tar。gz 3。交叉编译依赖库 我们这里用到以下几个库,交叉编译后,将他们都makeinstall到相同的目录,方便后面统一上传到目标板。zlib1。2。11。tar。gzjpegsrc。v9d。tar。gzlibpng1。6。37。tar。gztiff4。3。0。tar。gzfreetype2。10。4。tar。xz 基本上没什么难度,如果遇到问题,可以在评论区提问〔what〕 4。交叉编译DirectFB1。7。7 DirectFB的编译需要flux工具https:github。comdeniskroppflux。git 下载后直接编译安装到Ubuntu中,我们实际上只需要编译出来的可执行文件fluxcomp 执行配置。autogen。sh。configurehelp根据提示配置需要的库文件路径 注意 freetype如果依赖png,则FREETYPELIBS后面需要添加lpng png如果依赖zlib,则LIBPNGLIBS后面需要添加lz 5。交叉编译DirectFBexample1。7gitclonedepth1https:github。comatishnaziryouviewDirectFBexamples。gitcdDirectFBexamples配置。configurehostarmlinuxgnueabihfCCarmlinuxgnueabihfgccprefixPREFIXDIRECTFBCFLAGSIPREFIXincludedirectfbDIRECFBLIBSLPREFIXlibCPPFLAGSIPREFIXincludeLIBSLPREFIXlib编译安装makemakeinstall 6。上传到目标开发板。 运行出错相关运行出错DirectFBcoresystem:Nosystemfound 根据自己上传的目录配置相应的环境变量exportLDLIBRARYPATHusrlibexportDFBARGSmoduledirusrlibdirctfb1。77 在移植过程中有问题在下方留言!!!