mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-22 17:12:55 +08:00
65 lines
5.9 KiB
Markdown
65 lines
5.9 KiB
Markdown
# Header Files Summary {#headers}
|
|
|
|
## 1 Overview
|
|
|
|
As an open-source project, arm-2d serves users with different purposes and background. In general, arm-2d is designed with two groups of users in mind:
|
|
|
|
- **Library Users** - who use arm-2d public APIs in their applications
|
|
- **Professional Users** - all other users who are
|
|
- Integrating arm-2d with GUI stacks
|
|
- Accelerating arm-2d with some 2D HW accelerators
|
|
- Hobbyists writing new GUIs and/or 2D game engines based on arm-2d.
|
|
|
|
For the Library Users, **Public Header Files** provide all the information required to use arm-2d services. For the Professional Users, additional information are provided in **Private Header Files** to help their design.
|
|
|
|
|
|
|
|
## 2 Public Header Files
|
|
|
|
In the `Library/Include` folder, all header files (*.h) **without** double-underscore-prefix, i.e. "__", are considered as **PUBLIC HEADER FILES**. They are listed in the **Table 2-1**.
|
|
|
|
**Table 2-1 Summary of Public Header Files**
|
|
|
|
| File Name | Description | Note |
|
|
| ----------------------------- | ------------------------------------------------------------ | ---------------------------------------------------- |
|
|
| ***arm_2d.h*** | **The main entry for all users.** To use any arm-2d services, you **must** include this header file first. It includes all other public header files list below. | |
|
|
| ***arm_2d_types.h*** | This header file provides the definitions for the common and/or important data types, enumerations etc. | |
|
|
| ***arm_2d_utils.h*** | This header file provides utilities used in arm-2d, such as macros for compiler-detection, OOPC, C language helpers etc. | |
|
|
| ***arm_2d_features.h*** | This header file provides feature detection services for compiler and target processors. It also help to define, detect and validate macro-based-options for switching arm-2d features on and off. | **Do Not Modify** |
|
|
| ***arm_2d_op.h*** | This header file list all the arm-2d OPCODE, i.e. ***ARM_2D_OP_xxxx*** | |
|
|
| ***arm_2d_tile.h*** | The header file for all basic tile operations, e.g. tile-copy/filling with/without mirroring, with/without colour-keying etc. | [Doc](../../documentation/how_to_use_tile_operations.md) |
|
|
| ***arm_2d_draw.h*** | The header file for all drawing related operations, e.g. filling rectangular area, drawing points, drawing bit-patterns etc. | |
|
|
| ***arm_2d_conversion.h*** | The header file for colour-format conversion operations, e.g. conversion between RGB565 and RGB888 etc. | |
|
|
| ***arm_2d_alpha_blending.h*** | The header file for alpha-blending centric operations, e.g. alpha-blending, copy with masks, colour-keying with opacity etc. | |
|
|
| ***arm_2d_transform.h*** | The header file for transform operations, i.e. rotation and/or scaling (zooming). | |
|
|
|
|
|
|
|
|
## 3 Private Header Files
|
|
|
|
In the `Library/Include` folder, all header files (*.h) **with** double-underscore-prefix, i.e. "__", are considered as **PRIVATE HEADER FILES**. Only professional users should read them.
|
|
|
|
**Table 3-1 Summary of Private Header Files**
|
|
|
|
| File Name | Description | Note |
|
|
| ------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
|
| ***__arm_2d_impl.h*** | **The main entry for all professional users.** For advanced development (not for normal applications), you must include this header file that includes most of the private header files list below. | |
|
|
| ***__arm_2d_direct.h*** | This file lists all the low level implementations for specific variants of 2D operations. It is useful when integrating arm-2d with a GUI stack. | This file is included by ***__arm_2d_impl.h***, please do NOT include it directly. |
|
|
| ***__arm_2d_math.h*** | This file provides some math related utilities. | |
|
|
| ***__arm_2d_math_helium.h*** | This file provides some math related utilities for helium only. It is **NOT** intended to be used outside of arm-2d. | **Do NOT Use.** |
|
|
| ***__arm_2d_paving.h*** | This file lists some internal macro templates. It is **NOT** intended to be used outside of arm-2d. | **Do NOT Use.** |
|
|
| ***__arm_2d_paving_helium.h*** | This file lists some internal macro templates for helium only. It is **NOT** intended to be used outside of arm-2d. | **Do NOT Use.** |
|
|
| ***__arm_2d_utils_helium.h*** | This file lists some internal utils for helium only. It is **NOT** intended to be used outside of arm-2d. | **Do NOT Use.** |
|
|
|
|
|
|
|
|
## 4 Templates
|
|
|
|
In the `Library/Include/template` folder, there are some header files used as templates for purposes including but not limited to configuration etc.
|
|
|
|
**Table 4-1 Summary of Templates**
|
|
|
|
| File Name | Description | Note |
|
|
| ------------------ | ------------------------------------------------------- | ---- |
|
|
| ***arm_2d_cfg.h*** | A configuration template used in the arm-2d cmsis-pack. | |
|