Arm-2d 作为一个开源项目,为不同目的和背景的用户提供服务。一般来说,arm-2d 的设计考虑了两类用户:
arm-2d库的使用者,在他们的应用程序中使用 arm-2d 公共 API
专业用户,他们将arm-2d集成到GUI栈中,可以使用2D硬件加速加速arm-2d,可以基于arm-2d编写新的GUI或者2D游戏引擎
对于arm-2d库的使用者,公共头文件提供了使用 arm-2d 服务所需的所有信息。对于专业用户,私人头文件中提供了其他信息,以帮助其设计。
在 Library/Include 文件夹中,所有头文件(* .H) ,都没有双下划线__前缀
,则被视为 PUBLIC HEADER 文件。它们列在表2-1中。
| 文件名 | 描述 |
|---|---|
| arm_2d.h | 主头文件,包括下面列出的所有其他公共头文件,使用arm-2d的用户都必须首先包含这个头文件。 |
| arm_2d_types.h | 这个头文件提供了通用或重要数据类型、枚举等的定义 |
| arm_2d_utils.h | 这个头文件提供了 arm-2d 中使用的实用工具,例如用于编译器检测的宏,OOPC, C语言助手 |
| arm_2d_features.h | 这个头文件为编译器和目标处理器提供特征提取服务。它还有助于定义,检测和验证宏基于选项切换arm-2d 特性功能开启和关闭 |
| arm_2d_op.h | 这个头文件列出了所有 arm-2d OPCODE,例如:ARM_2D_OP_xxxx |
| arm_2d_tile.h | 所有基本贴图操作的头文件,例如瓷砖复制/填充有/没有镜像,有/没有颜色键控等 |
| arm_2d_draw.h | 有绘图相关操作的头文件,例如填充矩形区域、绘图点、绘图位图案等 |
| arm_2d_conversion.h | 用于颜色格式转换操作的头文件,例如 RGB565和 RGB888之间的转换等 |
| arm_2d_alpha_blending.h | 用于以 alpha 混合为中心的操作的头文件,例如 alpha 混合、使用掩码复制、使用不透明的颜色键控等 |
| arm_2d_transform.h | 转换操作的头文件,即旋转和/或缩放(放大) |
在 Library/Include 文件夹中,所有头文件(* .h)带有双下划线前缀,即“ __”,被认为是 PRIVATE HEADER 文件。只有专业用户才需要阅读。
| 文件名 | 描述 | 注意 |
|---|---|---|
| __arm_2d_impl.h | 专业用户的主头文件,对于高级开发,必需包含此头文件,其中包含下面列出的绝大多数私有头文件 | |
| __arm_2d_direct.h | . 该文件列出了2D 操作的特定变体的所有低级实现。它在将 arm-2d 与 GUI 栈集成时非常有用 | 此文件被包含在__arm_2d_impl.h,不要直接include它 |
| __arm_2d_math.h | 这个文件提供了一些与数学相关的函数 | |
| __arm_2d_math_helium.h | 该文件针对helium提供一些数学相关的函数 | 不要使用 |
| __arm_2d_paving.h | 此文件列出了一些内部宏模板,并不打算在arm-2d之外使用 | 不要使用 |
| __arm_2d_paving_helium.h | 这个文件列出了一些只针对helium的内部宏模板,并不打算在arm-2d之外使用 | 不要使用 |
| __arm_2d_utils_helium.h | 这个文件列出了一些仅用于氦气的内部函数 | 不要使用 |
在 Library/Include/template 文件夹中,有一些头文件用作模板,用途包括但不限于配置等。
| 文件名 | 描述 | 注意 |
|---|---|---|
| arm_2d_cfg.h | 在arm-2d cmsis-pack中使用的配置模板 |