30#ifndef __ARM_2D_HELPER_SHAPE_H__
31#define __ARM_2D_HELPER_SHAPE_H__
41#if __GLCD_CFG_COLOUR_DEPTH__ == 8
42# define COLOUR_INT uint8_t
43#elif __GLCD_CFG_COLOUR_DEPTH__ == 16
44# define COLOUR_INT uint16_t
45#elif __GLCD_CFG_COLOUR_DEPTH__ == 32
46# define COLOUR_INT uint32_t
48# error Unsupported colour depth!
56#define __draw_round_corner_box2( __target_tile_ptr, \
62 __draw_round_corner_box( \
63 (__target_tile_ptr), \
67 ((const arm_2d_tile_t *)__circle_mask_ptr))
69#define __draw_round_corner_box1( __target_tile_ptr, \
74 __draw_round_corner_box2( \
75 (__target_tile_ptr), \
80 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
82#define __draw_round_corner_box0( __target_tile_ptr, \
86 __draw_round_corner_box2( \
87 (__target_tile_ptr), \
92 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
94#define draw_round_corner_box( __target_tile_ptr, \
99 ARM_CONNECT2( __draw_round_corner_box, \
100 __ARM_VA_NUM_ARGS(__VA_ARGS__))( \
101 (__target_tile_ptr), \
104 (__opacity), ##__VA_ARGS__)
106#define __draw_round_corner_image2( __source_tile_ptr, \
111 __circle_mask_addr) \
112 __draw_round_corner_image( \
113 (__source_tile_ptr), \
114 (__target_tile_ptr), \
118 ((const arm_2d_tile_t *)(__circle_mask_addr)))
120#define __draw_round_corner_image1( __source_tile_ptr, \
125 __draw_round_corner_image( \
126 (__source_tile_ptr), \
127 (__target_tile_ptr), \
131 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
133#define __draw_round_corner_image0( __source_tile_ptr, \
137 __draw_round_corner_image( \
138 (__source_tile_ptr), \
139 (__target_tile_ptr), \
143 ((const arm_2d_tile_t *)&c_tileWhiteDotMask))
145#define draw_round_corner_image(__source_tile_ptr, \
150 ARM_CONNECT2( __draw_round_corner_image, \
151 __ARM_VA_NUM_ARGS(__VA_ARGS__))( \
152 (__source_tile_ptr), \
153 (__target_tile_ptr), \
155 (__is_new_frame),##__VA_ARGS__)
157#define draw_round_corner_border(__target_tile_ptr, \
158 __target_region_ptr, \
161 __draw_round_corner_border( (__target_tile_ptr), \
162 (__target_region_ptr), \
167#define draw_round_corner_border_with_circle_mask(__target_tile_ptr, \
168 __target_region_ptr, \
172 __draw_round_corner_border( \
173 (__target_tile_ptr), \
174 (__target_region_ptr), \
177 (const arm_2d_tile_t *)(__circle_mask_ptr))
191 uint8_t chBottomLeft;
192 uint8_t chBottomRight;
220void __draw_round_corner_image( const
arm_2d_tile_t *ptSource,
229void __draw_round_corner_border(const
arm_2d_tile_t *ptTarget,
241 bool bIsReflectionOnTop);