虽然裸机环境下,所有arm-2d的API都是以同步模式来工作的(即退出API就意味着任务完成或者出现了错误)——理论上的确完全无需arm_2d_op_wait_async(NULL)调用来实现所谓的同步,但以“异步工作模式”使用API写出来的代码拥有最高的兼容性——可以同时在RTOS环境和裸机环境下使用,因此,本系列文章统一以异步模式为蓝本...
芯片厂家:你只要按照我的标准为你的2D加速引擎写好驱动就行了——分分钟获得所有以Arm-2D作为底层的GUI的支持; GUI提供商:但凡你GUI中需要用到硬件加速的地方,都可以直接调用我提供的API就行了——如果芯片实际有硬件加速,自然就能得到加速,如果芯片没有硬件加速,那就用我提供的软件优化算法——总的来说,就是一...
“ 人在大学,刚刚下课 ”,根本没能力自己来移植Arm-2D到开发板上; 纯粹对Arm-2D的API感到好奇, 但在了解Arm-2D的API之前,并不觉得这值得自己亲自动手去做一下移植—— 如果有一个移植好的平台让自己玩就行了; 纯粹喜欢在各类模拟器上玩硬件 …… 说白了就是懒,是拖延症,得治…… 其实,从诞生到现在四个...
在其Github仓库的文档中可以看出,Arm-2D致力于打造一层抽象层,为芯片供应厂商提供的硬件以及GUI厂商提供的图形图形库之间的接口设立一层驱动标准。并且Arm-2D也提供了一系列的2D图形加速API。 本文以移植Arm-2D到i.MX RT1050-EVKB并绘制一些图形界面为例,动手部署。 二、准备工作 1. 工程下载 首先,我们需要获取Ar...
每个人都可以专注于扩大自己的东东。例如,通过为其专有的 2D 加速器添加 arm-2D 适配器驱动程序,硬件厂商可以获得来自 GUI 供应商的广泛支持,这些供应商在 ARM-2D API 上构建 / 移植他们的 GUI 代码。 上图列出了 Arm-2D 所处的位置。介于硬件厂商和图形组件之间,做到了承上启下的作用,棒棒哒!!
而Arm-2D的PFB技术是可以支持任意大小的,哪怕只有8*8大小的PFB也可以支持任意大小的屏幕,最关键的是用户界面API是不用关心PFB的大小的,Arm-2D都为我们弄好了,我们可以假装拥有完整的Frame Buffer。 3、部署Arm-2D与PFB性能测试 Arm-2D 的PFB技术这么好,还省RAM,那他有什么不足吗?显而易见的就是性能问题,...
Arm-2D几乎所有API的基本操作单位都是“贴图(Tile)”,它的数据结构定义如下: /*!* \brief a type for tile**/typedefstructarm_2d_tile_tarm_2d_tile_t;structarm_2d_tile_t{implement_ex(struct {uint8_tbIsRoot :1;//!< is this tile a root tileuint8_tbHasEnforcedColour :1;//!< does this...
还可以使用API函数arm_2d_tile_generate_child动态生成Child Tile,如下所示: arm_2d_region_ttChildTileRegion = {.tSize = {.iWidth =10,.iHeight =10,},.tLocation = {.iX =0,},};arm_2d_tile_tChildTile;//! generate a child tile for texture pavingarm_2d_tile_generate_child(ptTarget, |...
支持原生API 可使用ARM-2D原生API进行开发 LDGUI和ARM-2D混合编程,灵活性高 动态自动裁剪 无需宏定义裁剪,自适应最小化体积 自由扩展控件 使用脚本自动生成新控件框架,专注实现显示效果 内置便捷功能 软件定时器 多功能按键,支持实体按键和触摸按键 队列
Arm-2D always keeps a flat and straightforward framework, i.e. API Wrappers, Frontend and Backend. API wrappers take user input and generate task descriptors for the following stages. Frontend is responsible for the commonly used and necessary services, ...