30#ifndef __ARM_2D_HELPER_SHAPE_H__
31#define __ARM_2D_HELPER_SHAPE_H__
36#if defined(RTE_Acceleration_Arm_2D_Alpha_Blending)
43#if __GLCD_CFG_COLOUR_DEPTH__ == 8
44# define COLOUR_INT uint8_t
45#elif __GLCD_CFG_COLOUR_DEPTH__ == 16
46# define COLOUR_INT uint16_t
47#elif __GLCD_CFG_COLOUR_DEPTH__ == 32
48# define COLOUR_INT uint32_t
50# error Unsupported colour depth!
58#define __draw_round_corner_box2( __target_tile_ptr, \
64 __draw_round_corner_box( \
65 (__target_tile_ptr), \
69 ((const arm_2d_tile_t *)__circle_mask_ptr))
71#define __draw_round_corner_box1( __target_tile_ptr, \
76 __draw_round_corner_box2( \
77 (__target_tile_ptr), \
82 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
84#define __draw_round_corner_box0( __target_tile_ptr, \
88 __draw_round_corner_box2( \
89 (__target_tile_ptr), \
94 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
96#define draw_round_corner_box( __target_tile_ptr, \
101 ARM_CONNECT2( __draw_round_corner_box, \
102 __ARM_VA_NUM_ARGS(__VA_ARGS__))( \
103 (__target_tile_ptr), \
106 (__opacity), ##__VA_ARGS__)
108#define __draw_round_corner_image2( __source_tile_ptr, \
113 __circle_mask_addr) \
114 __draw_round_corner_image( \
115 (__source_tile_ptr), \
116 (__target_tile_ptr), \
120 ((const arm_2d_tile_t *)(__circle_mask_addr)))
122#define __draw_round_corner_image1( __source_tile_ptr, \
127 __draw_round_corner_image( \
128 (__source_tile_ptr), \
129 (__target_tile_ptr), \
133 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
135#define __draw_round_corner_image0( __source_tile_ptr, \
139 __draw_round_corner_image( \
140 (__source_tile_ptr), \
141 (__target_tile_ptr), \
145 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
147#define draw_round_corner_image(__source_tile_ptr, \
152 ARM_CONNECT2( __draw_round_corner_image, \
153 __ARM_VA_NUM_ARGS(__VA_ARGS__))( \
154 (__source_tile_ptr), \
155 (__target_tile_ptr), \
157 (__is_new_frame),##__VA_ARGS__)
159#define draw_round_corner_border(__target_tile_ptr, \
160 __target_region_ptr, \
163 __draw_round_corner_border( (__target_tile_ptr), \
164 (__target_region_ptr), \
169#define draw_round_corner_border_with_circle_mask(__target_tile_ptr, \
170 __target_region_ptr, \
174 __draw_round_corner_border( \
175 (__target_tile_ptr), \
176 (__target_region_ptr), \
179 (const arm_2d_tile_t *)(__circle_mask_ptr))
188} arm_2d_border_opacity_t;
193 uint8_t chBottomLeft;
194 uint8_t chBottomRight;
195} arm_2d_corner_opacity_t;
222void __draw_round_corner_image( const
arm_2d_tile_t *ptSource,
231void __draw_round_corner_border(const
arm_2d_tile_t *ptTarget,
234 arm_2d_border_opacity_t Opacity,
235 arm_2d_corner_opacity_t CornerOpacity,
243 bool bIsReflectionOnTop);