Arm-2D  
2D Image Processing Library for Cortex-M Processors
Header Files Summary

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
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.