DirectFB-1.5.0移植 支持3D硬件支持

2024-06-23 06:08

本文主要是介绍DirectFB-1.5.0移植 支持3D硬件支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



一.  DirectFB简介

DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。

二. DirectFB移植准备

DirectFB依赖库:freetype-2.4.4.tar.gz,jpegsrc.v8c.tar.gz,libpng-1.2.44.tar.gz,zlib-1.2.5.tar.gz

freetype-2.4.4.tar.gz、jpegsrc.v8c.tar.gz、libpng-1.2.44.tar.gz、zlib-1.2.5.tar.gz 下载地址:


 

三. DirectFB移植步骤

环境变量配置:

export  PREFIX=/usr

export  DEST_DIR=/home                //以上两个环境变量的是移植后库生成的位置,最好是把以后有提到的库都存放到/home目录下

            export PATH=$PATH:/home/opt/FriendlyARM/toolschain/4.5.1/bin
             export CC=arm-none-linux-gnueabi-gcc
             export LDFLAGS=-L$DEST_DIR$PREFIX/lib
             export CFLAGS="-g -I$DEST_DIR$PREFIX/include"
             export PKG_CONFIG_PATH=$DEST_DIR$PREFIX/lib/pkgconfig
             export FREETYPE_CFLAGS="-I${DEST_DIR}${PREFIX}/include/freetype2 -I${DEST_DIR}${PREFIX}/include"
             export PKG_CONFIG_PATH=${DEST_DIR}${PREFIX}/lib/pkgconfig
             export PKG_CONFIG_LIBDIR=$PKG_CONFIG_PATH
             export CFLAGS="-I${DEST_DIR}${PREFIX}/include/"
             export LDFLAGS="-L${DEST_DIR}${PREFIX}/lib"
             export LIBPNG_CFLAGS="-I${DEST_DIR}${PREFIX}/include/libpng12"
             export LIBPNG_LIBS="-L${DEST_DIR}${PREFIX}/lib -lpng12"
             export FREETYPE_CFLAGS="-I${DEST_DIR}${PREFIX}/include/freetype2 -I${DEST_DIR}${PREFIX}/include"
             export DIRECTFB_CFLAGS="-I${DEST_DIR}${PREFIX}/include/directfb -I${DEST_DIR}${PREFIX}/include"
             export FREETYPE_LIBS="-L${DEST_DIR}${PREFIX}/lib -lfreetype"

移植步骤:

1.

#Make zlib

cd $ZLIB

./configure --prefix=$PREFIX

make

make DESTDIR=$DEST_DIR install

2.

cd $LIBPNG

./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi

make

make DESTDIR=$DEST_DIR install

3.

cd $LIBJPEG

./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi

make

make DESTDIR=$DEST_DIR install

4.

cd $FREETYPE

./configure --prefix=$PREFIX  --host=arm-none-linux-gnueabi

make

make DESTDIR=$DEST_DIR install

5.

cd $DFB

./configure --host=arm-none-linux-gnueabi  --prefix=$PREFIX --disable-x11 --with-gfxdrivers=none --enable-jpeg --enable-png --enable-freetype --with-inputdrivers=linuxinput

make

make DESTDIR=$DEST_DIR install

错误及解决办法:

1. ../../lib/direct/atomic.h:188:70: error: expected ',' or '...' before 'new'

解决办法:进入到atomic.h文件,把关键字 new 改成new_1等任意不是关键词。

2. ../../lib/direct/serial.h:112:14: error: invalid conversion from 'void*' to 'volatile int*'

../../lib/direct/serial.h:112:14: error:   initializing argument 2 of 'int _D__atomic_add_return(int, volatile int*)'

解决办法:进入到atomic.h文件,把有这方面的调动, 通过强制转换把(void *) -> (volatile int *)

6.

cd $DFBEXAMPLE

./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi

make

make DESTDIR=$DEST_DIR install

这样就完成了基本的DirectFB的移植,把/home/usr目录下的全部文件拷贝到开发板的/usr下,运行测试用例就知道成不成功了。

四. DirectFB的硬件加速配置

环境说明:这么加速你有移植成功了DirectFB,且你的开发板支持硬件加速功能。不同的硬件平台有不同的配置,我这里就说说我的配置。这里所说的目录都是/home/usr下。

步骤:

编译你的硬件加速模块,会生成相应的库文件。把生成的所有库放到/home/usr/lib下。

在/home/usr/lib/directfb-1.5-0目录下,创建目录gfxdrivers,并把编译硬件模块的有关DirectFB的库放到此目录下,我这里的库文件是libdirectfb_gal.so.

在/home/usr目录下,创建目录etc

进入到/home/usr目录下,在终端输入:no-software>>directfbrc

完成以上步骤后DirectFB就可以支持相应的硬件加速了。

这篇关于DirectFB-1.5.0移植 支持3D硬件支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086341

相关文章

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建