30#ifndef __ARM_2D_ROTATION_H__
31#define __ARM_2D_ROTATION_H__
35#include "arm_2d_types.h"
42# pragma clang diagnostic push
43# pragma clang diagnostic ignored "-Wunknown-warning-option"
44# pragma clang diagnostic ignored "-Wreserved-identifier"
45# pragma clang diagnostic ignored "-Wsign-conversion"
46# pragma clang diagnostic ignored "-Wpadded"
47# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
55#define arm_2d_op_rotate_t arm_2d_op_trans_t
56#define arm_2d_op_rotate_opacity_t arm_2d_op_trans_opa_t
64#define arm_2dp_gray8_tile_transform_with_opacity_prepare \
65 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare
67#define arm_2dp_rgb565_tile_transform_with_opacity_prepare \
68 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare
70#define arm_2dp_cccn888_tile_transform_with_opacity_prepare \
71 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare
73#define arm_2dp_gray8_tile_transform_prepare \
74 arm_2dp_gray8_tile_transform_with_colour_keying_prepare
76#define arm_2dp_rgb565_tile_transform_prepare \
77 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare
79#define arm_2dp_cccn888_tile_transform_prepare \
80 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare
82#define arm_2dp_tile_rotate arm_2dp_tile_transform
84#define arm_2dp_gray8_tile_rotate_prepare \
85 arm_2dp_gray8_tile_transform_with_colour_keying_prepare
87#define arm_2dp_rgb565_tile_rotate_prepare \
88 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare
90#define arm_2dp_cccn888_tile_rotate_prepare \
91 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare
93#define arm_2d_rgb888_tile_rotation_prepare \
94 arm_2d_cccn888_tile_rotation_prepare
96#define arm_2d_gray8_tile_rotation_prepare \
97 arm_2d_gray8_tile_rotation_with_colour_keying_prepare
99#define arm_2d_rgb565_tile_rotation_prepare \
100 arm_2d_rgb565_tile_rotation_with_colour_keying_prepare
102#define arm_2d_cccn888_tile_rotation_prepare \
103 arm_2d_cccn888_tile_rotation_with_colour_keying_prepare
105#define arm_2dp_gray8_tile_rotate_with_opacity_prepare \
106 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare
108#define arm_2dp_rgb565_tile_rotate_with_opacity_prepare \
109 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare
111#define arm_2dp_cccn888_tile_rotate_with_opacity_prepare \
112 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare
114#define arm_2d_gray8_tile_rotation_with_alpha_prepare \
115 arm_2d_gray8_tile_rotation_with_opacity_prepare
117#define arm_2d_rgb565_tile_rotation_with_alpha_prepare \
118 arm_2d_rgb565_tile_rotation_with_opacity_prepare
120#define arm_2d_rgb888_tile_rotation_with_alpha_prepare \
121 arm_2d_rgb888_tile_rotation_with_opacity_prepare
123#define arm_2d_cccn888_tile_rotation_with_alpha_prepare \
124 arm_2d_cccn888_tile_rotation_with_opacity_prepare
126#define arm_2d_rgb888_tile_rotation_with_opacity_prepare \
127 arm_2d_cccn888_tile_rotation_with_opacity_prepare
129#define arm_2dp_gray8_tile_rotation \
130 arm_2dp_gray8_tile_rotation_with_colour_keying
132#define arm_2dp_rgb565_tile_rotation \
133 arm_2dp_rgb565_tile_rotation_with_colour_keying
135#define arm_2dp_cccn888_tile_rotation \
136 arm_2dp_cccn888_tile_rotation_with_colour_keying
138#define arm_2d_gray8_tile_rotation \
139 arm_2d_gray8_tile_rotation_with_colour_keying
141#define arm_2d_rgb565_tile_rotation \
142 arm_2d_rgb565_tile_rotation_with_colour_keying
144#define arm_2d_cccn888_tile_rotation \
145 arm_2d_cccn888_tile_rotation_with_colour_keying
147#define arm_2d_rgb888_tile_rotation_with_colour_keying \
148 arm_2d_cccn888_tile_rotation_with_colour_keying
150#define arm_2dp_gray8_tile_rotation_with_alpha \
151 arm_2dp_gray8_tile_rotation_with_opacity
153#define arm_2dp_rgb565_tile_rotation_with_alpha \
154 arm_2dp_rgb565_tile_rotation_with_opacity
156#define arm_2dp_rgb888_tile_rotation_with_alpha \
157 arm_2dp_cccn888_tile_rotation_with_opacity
159#define arm_2dp_rgb888_tile_rotation_with_opacity \
160 arm_2dp_cccn888_tile_rotation_with_opacity
162#define arm_2dp_cccn888_tile_rotation_with_alpha \
163 arm_2dp_cccn888_tile_rotation_with_opacity
165#define arm_2d_gray8_tile_rotation_with_alpha \
166 arm_2d_gray8_tile_rotation_with_opacity
168#define arm_2d_rgb565_tile_rotation_with_alpha \
169 arm_2d_rgb565_tile_rotation_with_opacity
171#define arm_2d_rgb888_tile_rotation_with_alpha \
172 arm_2d_rgb888_tile_rotation_with_opacity
174#define arm_2d_cccn888_tile_rotation_with_alpha \
175 arm_2d_cccn888_tile_rotation_with_opacity
177#define arm_2d_rgb888_tile_rotation_with_opacity \
178 arm_2d_cccn888_tile_rotation_with_opacity
180#define arm_2d_gray8_tile_transform_prepare \
181 arm_2d_gray8_tile_transform_with_colour_keying_prepare
183#define arm_2d_rgb565_tile_transform_prepare \
184 arm_2d_rgb565_tile_transform_with_colour_keying_prepare
186#define arm_2d_cccn888_tile_transform_prepare \
187 arm_2d_cccn888_tile_transform_with_colour_keying_prepare
189#define arm_2d_rgb888_tile_transform_prepare \
190 arm_2d_cccn888_tile_transform_prepare
192#define arm_2d_gray8_tile_transform_with_alpha_prepare \
193 arm_2d_gray8_tile_transform_with_opacity_prepare
195#define arm_2d_rgb565_tile_transform_with_alpha_prepare \
196 arm_2d_rgb565_tile_transform_with_opacity_prepare
198#define arm_2d_rgb888_tile_transform_with_alpha_prepare \
199 arm_2d_rgb888_tile_transform_with_opacity_prepare
201#define arm_2d_cccn888_tile_transform_with_alpha_prepare \
202 arm_2d_cccn888_tile_transform_with_opacity_prepare
204#define arm_2d_rgb888_tile_transform_with_opacity_prepare \
205 arm_2d_cccn888_tile_transform_with_opacity_prepare
207#define arm_2d_gray8_tile_transform_with_alpha \
208 arm_2d_gray8_tile_transform_with_opacity
210#define arm_2d_rgb565_tile_transform_with_alpha \
211 arm_2d_rgb565_tile_transform_with_opacity
213#define arm_2d_rgb888_tile_transform_with_alpha \
214 arm_2d_rgb888_tile_transform_with_opacity
216#define arm_2d_cccn888_tile_transform_with_alpha \
217 arm_2d_cccn888_tile_transform_with_opacity
219#define arm_2d_rgb888_tile_transform_with_opacity \
220 arm_2d_cccn888_tile_transform_with_opacity
222#define arm_2dp_gray8_tile_transform \
223 arm_2dp_gray8_tile_transform_with_colour_keying
225#define arm_2dp_rgb565_tile_transform \
226 arm_2dp_rgb565_tile_transform_with_colour_keying
228#define arm_2dp_cccn888_tile_transform \
229 arm_2dp_cccn888_tile_transform_with_colour_keying
231#define arm_2d_gray8_tile_transform \
232 arm_2d_gray8_tile_transform_with_colour_keying
234#define arm_2d_rgb565_tile_transform \
235 arm_2d_rgb565_tile_transform_with_colour_keying
237#define arm_2d_cccn888_tile_transform \
238 arm_2d_cccn888_tile_transform_with_colour_keying
240#define arm_2dp_gray8_tile_transform_with_alpha \
241 arm_2dp_gray8_tile_transform_with_opacity
243#define arm_2dp_rgb565_tile_transform_with_alpha \
244 arm_2dp_rgb565_tile_transform_with_opacity
246#define arm_2dp_rgb888_tile_transform_with_alpha \
247 arm_2dp_rgb888_tile_transform_with_opacity
249#define arm_2dp_cccn888_tile_transform_with_alpha \
250 arm_2dp_cccn888_tile_transform_with_opacity
252#define arm_2dp_rgb888_tile_transform_with_opacity \
253 arm_2dp_cccn888_tile_transform_with_opacity
255#define arm_2d_gray8_tile_scaling_prepare \
256 arm_2d_gray8_tile_scaling_with_colour_keying_prepare
258#define arm_2d_rgb565_tile_scaling_prepare \
259 arm_2d_rgb565_tile_scaling_with_colour_keying_prepare
261#define arm_2d_cccn888_tile_scaling_prepare \
262 arm_2d_cccn888_tile_scaling_with_colour_keying_prepare
264#define arm_2d_rgb888_tile_scaling_prepare \
265 arm_2d_cccn888_tile_scaling_with_colour_keying_prepare
268#define arm_2d_gray8_tile_scaling_with_alpha_prepare \
269 arm_2d_gray8_tile_scaling_with_opacity_prepare
271#define arm_2d_rgb565_tile_scaling_with_alpha_prepare \
272 arm_2d_rgb565_tile_scaling_with_opacity_prepare
274#define arm_2d_rgb888_tile_scaling_with_alpha_prepare \
275 arm_2d_rgb888_tile_scaling_with_opacity_prepare
277#define arm_2d_cccn888_tile_scaling_with_alpha_prepare \
278 arm_2d_cccn888_tile_scaling_with_opacity_prepare
280#define arm_2d_rgb888_tile_scaling_with_opacity_prepare \
281 arm_2d_cccn888_tile_scaling_with_opacity_prepare
283#define arm_2dp_gray8_tile_scaling_with_alpha \
284 arm_2dp_gray8_tile_scaling_with_opacity
286#define arm_2dp_rgb565_tile_scaling_with_alpha \
287 arm_2dp_rgb565_tile_scaling_with_opacity
289#define arm_2dp_rgb888_tile_scaling_with_alpha \
290 arm_2dp_rgb888_tile_scaling_with_opacity
292#define arm_2dp_cccn888_tile_scaling_with_alpha \
293 arm_2dp_cccn888_tile_scaling_with_opacity
295#define arm_2dp_rgb888_tile_scaling_with_opacity \
296 arm_2dp_cccn888_tile_scaling_with_opacity
298#define arm_2d_gray8_tile_scaling_with_alpha \
299 arm_2d_gray8_tile_scaling_with_opacity
301#define arm_2d_rgb565_tile_scaling_with_alpha \
302 arm_2d_rgb565_tile_scaling_with_opacity
304#define arm_2d_rgb888_tile_scaling_with_alpha \
305 arm_2d_rgb888_tile_scaling_with_opacity
307#define arm_2d_cccn888_tile_scaling_with_alpha \
308 arm_2d_cccn888_tile_scaling_with_opacity
310#define arm_2d_rgb888_tile_scaling_with_opacity \
311 arm_2d_cccn888_tile_scaling_with_opacity
313#define arm_2dp_gray8_tile_scaling \
314 arm_2dp_gray8_tile_scaling_with_colour_keying
316#define arm_2dp_rgb565_tile_scaling \
317 arm_2dp_rgb565_tile_scaling_with_colour_keying
319#define arm_2dp_cccn888_tile_scaling \
320 arm_2dp_cccn888_tile_scaling_with_colour_keying
322#define arm_2d_gray8_tile_scaling \
323 arm_2d_gray8_tile_scaling_with_colour_keying
325#define arm_2d_rgb565_tile_scaling \
326 arm_2d_rgb565_tile_scaling_with_colour_keying
328#define arm_2d_cccn888_tile_scaling \
329 arm_2d_cccn888_tile_scaling_with_colour_keying
331#define arm_2d_rgb888_tile_scaling \
332 arm_2d_cccn888_tile_scaling_with_colour_keying
347#define arm_2d_gray8_tile_rotation_with_colour_keying_prepare( __SRC_TILE_ADDR,\
351 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
358#define arm_2d_rgb565_tile_rotation_with_colour_keying_prepare( __SRC_TILE_ADDR,\
362 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
369#define arm_2d_cccn888_tile_rotation_with_colour_keying_prepare(__SRC_TILE_ADDR,\
373 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
380#define arm_2d_gray8_tile_rotation_only_prepare(__SRC_TILE_ADDR, \
383 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
389#define arm_2d_rgb565_tile_rotation_only_prepare( __SRC_TILE_ADDR, \
392 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
398#define arm_2d_cccn888_tile_rotation_only_prepare( __SRC_TILE_ADDR, \
401 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
407#define arm_2d_gray8_tile_rotation_with_opacity_prepare( \
413 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
422#define arm_2d_rgb565_tile_rotation_with_opacity_prepare( \
428 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
438#define arm_2d_cccn888_tile_rotation_with_opacity_prepare( \
444 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
454#define arm_2d_gray8_tile_rotation_only_with_opacity_prepare( \
459 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
467#define arm_2d_rgb565_tile_rotation_only_with_opacity_prepare( \
472 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
480#define arm_2d_cccn888_tile_rotation_only_with_opacity_prepare( \
485 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
494#define arm_2d_gray8_tile_rotation_with_src_mask_prepare( \
499 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
506#define arm_2d_rgb565_tile_rotation_with_src_mask_prepare( \
511 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
518#define arm_2d_cccn888_tile_rotation_with_src_mask_prepare( \
523 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
530#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity_prepare( \
536 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
545#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity_prepare( \
551 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
560#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity_prepare( \
566 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
575#define arm_2d_tile_rotate( __DES_TILE_ADDR, \
578 arm_2dp_tile_transform(NULL, \
580 (__DES_REGION_ADDR), \
590#define arm_2dp_gray8_tile_rotation_with_colour_keying( __CB_ADDR, \
598 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
599 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
607 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
609 (__DES_REGION_ADDR), \
610 (NULL,##__VA_ARGS__)); \
613#define arm_2dp_rgb565_tile_rotation_with_colour_keying(__CB_ADDR, \
621 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
622 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
630 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
632 (__DES_REGION_ADDR), \
633 (NULL,##__VA_ARGS__)); \
637#define arm_2dp_cccn888_tile_rotation_with_colour_keying(__CB_ADDR, \
645 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
646 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
654 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
656 (__DES_REGION_ADDR), \
657 (NULL,##__VA_ARGS__)); \
660#define arm_2dp_gray8_tile_rotation_only( __CB_ADDR, \
667 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
668 arm_2dp_gray8_tile_transform_only_prepare( \
675 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
677 (__DES_REGION_ADDR), \
678 (NULL,##__VA_ARGS__)); \
681#define arm_2dp_rgb565_tile_rotation_only( __CB_ADDR, \
688 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
689 arm_2dp_rgb565_tile_transform_only_prepare( \
696 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
698 (__DES_REGION_ADDR), \
699 (NULL,##__VA_ARGS__)); \
703#define arm_2dp_cccn888_tile_rotation_only( __CB_ADDR, \
710 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
711 arm_2dp_cccn888_tile_transform_only_prepare( \
718 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
720 (__DES_REGION_ADDR), \
721 (NULL,##__VA_ARGS__)); \
724#define arm_2dp_gray8_tile_rotation_with_opacity( \
733 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
734 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
743 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
745 (__DES_REGION_ADDR), \
746 (NULL,##__VA_ARGS__)); \
750#define arm_2dp_rgb565_tile_rotation_with_opacity( \
759 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
760 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
769 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
771 (__DES_REGION_ADDR), \
772 (NULL,##__VA_ARGS__)); \
775#define arm_2dp_cccn888_tile_rotation_with_opacity( \
784 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
785 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
794 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
796 (__DES_REGION_ADDR), \
797 (NULL,##__VA_ARGS__)); \
800#define arm_2dp_gray8_tile_rotation_only_with_opacity( \
808 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
809 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
817 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
819 (__DES_REGION_ADDR), \
820 (NULL,##__VA_ARGS__)); \
823#define arm_2dp_rgb565_tile_rotation_only_with_opacity( \
831 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
832 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
840 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
842 (__DES_REGION_ADDR), \
843 (NULL,##__VA_ARGS__)); \
846#define arm_2dp_cccn888_tile_rotation_only_with_opacity( \
854 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
855 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
863 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
865 (__DES_REGION_ADDR), \
866 (NULL,##__VA_ARGS__)); \
869#define arm_2dp_gray8_tile_rotation_with_src_mask( \
878 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
879 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
887 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
889 (__DES_REGION_ADDR), \
890 (NULL,##__VA_ARGS__)); \
893#define arm_2dp_rgb565_tile_rotation_with_src_mask( \
902 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
903 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
911 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
913 (__DES_REGION_ADDR), \
914 (NULL,##__VA_ARGS__)); \
917#define arm_2dp_cccn888_tile_rotation_with_src_mask( \
926 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
927 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
935 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
937 (__DES_REGION_ADDR), \
938 (NULL,##__VA_ARGS__)); \
941#define arm_2dp_gray8_tile_rotation_with_src_mask_and_opacity( \
951 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
952 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
961 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
963 (__DES_REGION_ADDR), \
964 (NULL,##__VA_ARGS__)); \
967#define arm_2dp_rgb565_tile_rotation_with_src_mask_and_opacity( \
977 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
978 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
987 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
989 (__DES_REGION_ADDR), \
990 (NULL,##__VA_ARGS__)); \
993#define arm_2dp_cccn888_tile_rotation_with_src_mask_and_opacity( \
1003 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1004 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1006 (__SRC_TILE_ADDR), \
1007 (__SRC_MASK_ADDR), \
1013 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1014 (__DES_TILE_ADDR), \
1015 (__DES_REGION_ADDR), \
1016 (NULL,##__VA_ARGS__)); \
1019#define arm_2d_gray8_tile_rotation_with_colour_keying( \
1022 __DES_REGION_ADDR, \
1025 __MSK_COLOUR, ...) \
1027 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
1029 (__SRC_TILE_ADDR), \
1035 arm_2dp_tile_transform(NULL, \
1036 (__DES_TILE_ADDR), \
1037 (__DES_REGION_ADDR), \
1038 (NULL,##__VA_ARGS__)); \
1042#define arm_2d_rgb565_tile_rotation_with_colour_keying( \
1045 __DES_REGION_ADDR, \
1048 __MSK_COLOUR, ...) \
1050 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
1052 (__SRC_TILE_ADDR), \
1058 arm_2dp_tile_transform(NULL, \
1059 (__DES_TILE_ADDR), \
1060 (__DES_REGION_ADDR), \
1061 (NULL,##__VA_ARGS__)); \
1064#define arm_2d_cccn888_tile_rotation_with_colour_keying( \
1067 __DES_REGION_ADDR, \
1070 __MSK_COLOUR, ...) \
1072 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
1074 (__SRC_TILE_ADDR), \
1080 arm_2dp_tile_transform(NULL, \
1081 (__DES_TILE_ADDR), \
1082 (__DES_REGION_ADDR), \
1083 (NULL,##__VA_ARGS__)); \
1087#define arm_2d_gray8_tile_rotation_only( \
1090 __DES_REGION_ADDR, \
1095 arm_2dp_gray8_tile_transform_only_prepare( \
1097 (__SRC_TILE_ADDR), \
1102 arm_2dp_tile_transform(NULL, \
1103 (__DES_TILE_ADDR), \
1104 (__DES_REGION_ADDR), \
1105 (NULL,##__VA_ARGS__)); \
1109#define arm_2d_rgb565_tile_rotation_only( \
1112 __DES_REGION_ADDR, \
1117 arm_2dp_rgb565_tile_transform_only_prepare( \
1119 (__SRC_TILE_ADDR), \
1124 arm_2dp_tile_transform(NULL, \
1125 (__DES_TILE_ADDR), \
1126 (__DES_REGION_ADDR), \
1127 (NULL,##__VA_ARGS__)); \
1131#define arm_2d_cccn888_tile_rotation_only( \
1134 __DES_REGION_ADDR, \
1139 arm_2dp_cccn888_tile_transform_only_prepare( \
1141 (__SRC_TILE_ADDR), \
1146 arm_2dp_tile_transform(NULL, \
1147 (__DES_TILE_ADDR), \
1148 (__DES_REGION_ADDR), \
1149 (NULL,##__VA_ARGS__)); \
1152#define arm_2d_gray8_tile_rotation_with_opacity( \
1155 __DES_REGION_ADDR, \
1161 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1163 (__SRC_TILE_ADDR), \
1170 arm_2dp_tile_transform(NULL, \
1171 (__DES_TILE_ADDR), \
1172 (__DES_REGION_ADDR), \
1173 (NULL,##__VA_ARGS__)); \
1176#define arm_2d_rgb565_tile_rotation_with_opacity( \
1179 __DES_REGION_ADDR, \
1185 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1187 (__SRC_TILE_ADDR), \
1194 arm_2dp_tile_transform(NULL, \
1195 (__DES_TILE_ADDR), \
1196 (__DES_REGION_ADDR), \
1197 (NULL,##__VA_ARGS__)); \
1200#define arm_2d_cccn888_tile_rotation_with_opacity( \
1203 __DES_REGION_ADDR, \
1209 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1211 (__SRC_TILE_ADDR), \
1218 arm_2dp_tile_transform(NULL, \
1219 (__DES_TILE_ADDR), \
1220 (__DES_REGION_ADDR), \
1221 (NULL,##__VA_ARGS__)); \
1224#define arm_2d_gray8_tile_rotation_only_with_opacity( \
1227 __DES_REGION_ADDR, \
1232 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1234 (__SRC_TILE_ADDR), \
1240 arm_2dp_tile_transform(NULL, \
1241 (__DES_TILE_ADDR), \
1242 (__DES_REGION_ADDR), \
1243 (NULL,##__VA_ARGS__)); \
1246#define arm_2d_rgb565_tile_rotation_only_with_opacity( \
1249 __DES_REGION_ADDR, \
1254 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
1256 (__SRC_TILE_ADDR), \
1262 arm_2dp_tile_transform(NULL, \
1263 (__DES_TILE_ADDR), \
1264 (__DES_REGION_ADDR), \
1265 (NULL,##__VA_ARGS__)); \
1268#define arm_2d_cccn888_tile_rotation_only_with_opacity( \
1271 __DES_REGION_ADDR, \
1276 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
1278 (__SRC_TILE_ADDR), \
1284 arm_2dp_tile_transform(NULL, \
1285 (__DES_TILE_ADDR), \
1286 (__DES_REGION_ADDR), \
1287 (NULL,##__VA_ARGS__)); \
1290#define arm_2d_gray8_tile_rotation_with_src_mask( \
1294 __DES_REGION_ADDR, \
1299 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
1301 (__SRC_TILE_ADDR), \
1302 (__SRC_MASK_ADDR), \
1307 arm_2dp_tile_transform(NULL, \
1308 (__DES_TILE_ADDR), \
1309 (__DES_REGION_ADDR), \
1310 (NULL,##__VA_ARGS__)); \
1313#define arm_2d_rgb565_tile_rotation_with_src_mask( \
1317 __DES_REGION_ADDR, \
1322 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
1324 (__SRC_TILE_ADDR), \
1325 (__SRC_MASK_ADDR), \
1330 arm_2dp_tile_transform(NULL, \
1331 (__DES_TILE_ADDR), \
1332 (__DES_REGION_ADDR), \
1333 (NULL,##__VA_ARGS__)); \
1336#define arm_2d_cccn888_tile_rotation_with_src_mask( \
1340 __DES_REGION_ADDR, \
1345 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
1347 (__SRC_TILE_ADDR), \
1348 (__SRC_MASK_ADDR), \
1353 arm_2dp_tile_transform(NULL, \
1354 (__DES_TILE_ADDR), \
1355 (__DES_REGION_ADDR), \
1356 (NULL,##__VA_ARGS__)); \
1359#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity( \
1363 __DES_REGION_ADDR, \
1369 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1371 (__SRC_TILE_ADDR), \
1372 (__SRC_MASK_ADDR), \
1378 arm_2dp_tile_transform(NULL, \
1379 (__DES_TILE_ADDR), \
1380 (__DES_REGION_ADDR), \
1381 (NULL,##__VA_ARGS__)); \
1384#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity( \
1388 __DES_REGION_ADDR, \
1394 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1396 (__SRC_TILE_ADDR), \
1397 (__SRC_MASK_ADDR), \
1403 arm_2dp_tile_transform(NULL, \
1404 (__DES_TILE_ADDR), \
1405 (__DES_REGION_ADDR), \
1406 (NULL,##__VA_ARGS__)); \
1409#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity( \
1413 __DES_REGION_ADDR, \
1419 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1421 (__SRC_TILE_ADDR), \
1422 (__SRC_MASK_ADDR), \
1428 arm_2dp_tile_transform(NULL, \
1429 (__DES_TILE_ADDR), \
1430 (__DES_REGION_ADDR), \
1431 (NULL,##__VA_ARGS__)); \
1438#define arm_2d_gray8_tile_transform_with_colour_keying_prepare( __SRC_TILE_ADDR,\
1443 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
1444 (__SRC_TILE_ADDR), \
1450#define arm_2d_rgb565_tile_transform_with_colour_keying_prepare(__SRC_TILE_ADDR,\
1455 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
1456 (__SRC_TILE_ADDR), \
1463#define arm_2d_cccn888_tile_transform_with_colour_keying_prepare( \
1469 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
1470 (__SRC_TILE_ADDR), \
1476#define arm_2d_gray8_tile_transform_only( __SRC_TILE_ADDR, \
1480 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
1481 (__SRC_TILE_ADDR), \
1486#define arm_2d_rgb565_tile_transform_only( __SRC_TILE_ADDR, \
1490 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
1491 (__SRC_TILE_ADDR), \
1496#define arm_2d_cccn888_tile_transform_only( __SRC_TILE_ADDR, \
1500 arm_2dp_cccn888_tile_transform_only_prepare( NULL, \
1501 (__SRC_TILE_ADDR), \
1506#define arm_2d_gray8_tile_transform_with_opacity_prepare( \
1513 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1515 (__SRC_TILE_ADDR), \
1522#define arm_2d_rgb565_tile_transform_with_opacity_prepare( \
1529 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1531 (__SRC_TILE_ADDR), \
1538#define arm_2d_cccn888_tile_transform_with_opacity_prepare( \
1545 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1547 (__SRC_TILE_ADDR), \
1554#define arm_2d_gray8_tile_transform_only_with_opacity_prepare( \
1560 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1562 (__SRC_TILE_ADDR), \
1568#define arm_2d_rgb565_tile_transform_only_with_opacity_prepare( \
1574 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
1576 (__SRC_TILE_ADDR), \
1582#define arm_2d_cccn888_tile_transform_only_with_opacity_prepare( \
1588 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
1590 (__SRC_TILE_ADDR), \
1597#define arm_2d_gray8_tile_transform_with_src_mask_prepare( \
1603 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
1604 (__SRC_TILE_ADDR), \
1605 (__SRC_MASK_ADDR), \
1610#define arm_2d_rgb565_tile_transform_with_src_mask_prepare( \
1616 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
1617 (__SRC_TILE_ADDR), \
1618 (__SRC_MASK_ADDR), \
1623#define arm_2d_cccn888_tile_transform_with_src_mask_prepare( \
1629 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
1630 (__SRC_TILE_ADDR), \
1631 (__SRC_MASK_ADDR), \
1636#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1643 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1645 (__SRC_TILE_ADDR), \
1646 (__SRC_MASK_ADDR), \
1652#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1659 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1661 (__SRC_TILE_ADDR), \
1662 (__SRC_MASK_ADDR), \
1668#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1675 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1677 (__SRC_TILE_ADDR), \
1678 (__SRC_MASK_ADDR), \
1684#define arm_2d_tile_transform( __DES_TILE_ADDR, \
1685 __DES_REGION_ADDR, \
1686 __DES_CENTRE_ADDR) \
1687 arm_2dp_tile_transform(NULL, \
1688 (__DES_TILE_ADDR), \
1689 (__DES_REGION_ADDR), \
1690 (__DES_CENTRE_ADDR))
1700#define arm_2dp_gray8_tile_transform_with_colour_keying(__CB_ADDR, \
1703 __DES_REGION_ADDR, \
1709 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1710 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
1712 (__SRC_TILE_ADDR), \
1718 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1719 (__DES_TILE_ADDR), \
1720 (__DES_REGION_ADDR), \
1721 (NULL,##__VA_ARGS__)); \
1724#define arm_2dp_rgb565_tile_transform_with_colour_keying( __CB_ADDR, \
1727 __DES_REGION_ADDR, \
1733 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1734 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
1736 (__SRC_TILE_ADDR), \
1742 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1743 (__DES_TILE_ADDR), \
1744 (__DES_REGION_ADDR), \
1745 (NULL,##__VA_ARGS__)); \
1749#define arm_2dp_cccn888_tile_transform_with_colour_keying( __CB_ADDR, \
1752 __DES_REGION_ADDR, \
1758 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1759 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
1761 (__SRC_TILE_ADDR), \
1767 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1768 (__DES_TILE_ADDR), \
1769 (__DES_REGION_ADDR), \
1770 (NULL,##__VA_ARGS__)); \
1773#define arm_2dp_gray8_tile_transform_only( __CB_ADDR, \
1776 __DES_REGION_ADDR, \
1781 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1782 arm_2dp_gray8_tile_transform_only_prepare( \
1784 (__SRC_TILE_ADDR), \
1787 (float)(__SCALE)); \
1789 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1790 (__DES_TILE_ADDR), \
1791 (__DES_REGION_ADDR), \
1792 (NULL,##__VA_ARGS__)); \
1795#define arm_2dp_rgb565_tile_transform_only( __CB_ADDR, \
1798 __DES_REGION_ADDR, \
1803 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1804 arm_2dp_rgb565_tile_transform_only_prepare( \
1806 (__SRC_TILE_ADDR), \
1809 (float)(__SCALE)); \
1811 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1812 (__DES_TILE_ADDR), \
1813 (__DES_REGION_ADDR), \
1814 (NULL,##__VA_ARGS__)); \
1817#define arm_2dp_cccn888_tile_transform_only(__CB_ADDR, \
1820 __DES_REGION_ADDR, \
1825 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1826 arm_2dp_cccn888_tile_transform_only_prepare( \
1828 (__SRC_TILE_ADDR), \
1831 (float)(__SCALE)); \
1833 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1834 (__DES_TILE_ADDR), \
1835 (__DES_REGION_ADDR), \
1836 (NULL,##__VA_ARGS__)); \
1840#define arm_2dp_gray8_tile_transform_with_opacity( \
1844 __DES_REGION_ADDR, \
1850 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1851 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1853 (__SRC_TILE_ADDR), \
1860 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1861 (__DES_TILE_ADDR), \
1862 (__DES_REGION_ADDR), \
1863 (NULL,##__VA_ARGS__)); \
1867#define arm_2dp_rgb565_tile_transform_with_opacity( \
1871 __DES_REGION_ADDR, \
1877 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1878 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1880 (__SRC_TILE_ADDR), \
1887 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1888 (__DES_TILE_ADDR), \
1889 (__DES_REGION_ADDR), \
1890 (NULL,##__VA_ARGS__)); \
1893#define arm_2dp_cccn888_tile_transform_with_opacity( \
1897 __DES_REGION_ADDR, \
1903 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1904 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1906 (__SRC_TILE_ADDR), \
1913 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1914 (__DES_TILE_ADDR), \
1915 (__DES_REGION_ADDR), \
1916 (NULL,##__VA_ARGS__)); \
1919#define arm_2dp_gray8_tile_transform_only_with_opacity( \
1923 __DES_REGION_ADDR, \
1928 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1929 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1931 (__SRC_TILE_ADDR), \
1937 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1938 (__DES_TILE_ADDR), \
1939 (__DES_REGION_ADDR), \
1940 (NULL,##__VA_ARGS__)); \
1943#define arm_2dp_rgb565_tile_transform_only_with_opacity( \
1947 __DES_REGION_ADDR, \
1952 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1953 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
1955 (__SRC_TILE_ADDR), \
1961 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1962 (__DES_TILE_ADDR), \
1963 (__DES_REGION_ADDR), \
1964 (NULL,##__VA_ARGS__)); \
1967#define arm_2dp_cccn888_tile_transform_only_with_opacity( \
1971 __DES_REGION_ADDR, \
1976 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1977 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
1979 (__SRC_TILE_ADDR), \
1985 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1986 (__DES_TILE_ADDR), \
1987 (__DES_REGION_ADDR), \
1988 (NULL,##__VA_ARGS__)); \
1991#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform( \
1995 __DES_REGION_ADDR, \
2001 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2002 arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
2011 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2012 (__DES_TILE_ADDR), \
2013 (__DES_REGION_ADDR), \
2014 (NULL,##__VA_ARGS__)); \
2017#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform( \
2021 __DES_REGION_ADDR, \
2027 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2028 arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
2037 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2038 (__DES_TILE_ADDR), \
2039 (__DES_REGION_ADDR), \
2040 (NULL,##__VA_ARGS__)); \
2043#define arm_2dp_rgb888_fill_colour_with_mask_opacity_and_transform( \
2047 __DES_REGION_ADDR, \
2053 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2054 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2063 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2064 (__DES_TILE_ADDR), \
2065 (__DES_REGION_ADDR), \
2066 (NULL,##__VA_ARGS__)); \
2069#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform( \
2073 __DES_REGION_ADDR, \
2079 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2080 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2089 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2090 (__DES_TILE_ADDR), \
2091 (__DES_REGION_ADDR), \
2092 (NULL,##__VA_ARGS__)); \
2097#define arm_2d_gray8_fill_colour_with_mask_opacity_and_transform( \
2100 __DES_REGION_ADDR, \
2106 ({arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
2114 arm_2dp_tile_transform(NULL, \
2115 (__DES_TILE_ADDR), \
2116 (__DES_REGION_ADDR), \
2117 (NULL,##__VA_ARGS__));})
2119#define arm_2d_rgb565_fill_colour_with_mask_opacity_and_transform( \
2122 __DES_REGION_ADDR, \
2128 ({arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
2136 arm_2dp_tile_transform(NULL, \
2137 (__DES_TILE_ADDR), \
2138 (__DES_REGION_ADDR), \
2139 (NULL,##__VA_ARGS__));})
2141#define arm_2d_rgb888_fill_colour_with_mask_opacity_and_transform( \
2144 __DES_REGION_ADDR, \
2150 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2158 arm_2dp_tile_transform(NULL, \
2159 (__DES_TILE_ADDR), \
2160 (__DES_REGION_ADDR), \
2161 (NULL,##__VA_ARGS__));})
2163#define arm_2d_cccn888_fill_colour_with_mask_opacity_and_transform( \
2166 __DES_REGION_ADDR, \
2172 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2180 arm_2dp_tile_transform(NULL, \
2181 (__DES_TILE_ADDR), \
2182 (__DES_REGION_ADDR), \
2183 (NULL,##__VA_ARGS__));})
2186#define arm_2dp_gray8_tile_transform_with_src_mask( \
2191 __DES_REGION_ADDR, \
2196 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2197 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2199 (__SRC_TILE_ADDR), \
2200 (__SRC_MASK_ADDR), \
2203 (float)(__SCALE)); \
2205 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2206 (__DES_TILE_ADDR), \
2207 (__DES_REGION_ADDR), \
2208 (NULL,##__VA_ARGS__)); \
2211#define arm_2dp_rgb565_tile_transform_with_src_mask( \
2216 __DES_REGION_ADDR, \
2221 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2222 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2224 (__SRC_TILE_ADDR), \
2225 (__SRC_MASK_ADDR), \
2228 (float)(__SCALE)); \
2230 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2231 (__DES_TILE_ADDR), \
2232 (__DES_REGION_ADDR), \
2233 (NULL,##__VA_ARGS__)); \
2237#define arm_2dp_cccn888_tile_transform_with_src_mask( \
2242 __DES_REGION_ADDR, \
2247 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2248 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2250 (__SRC_TILE_ADDR), \
2251 (__SRC_MASK_ADDR), \
2254 (float)(__SCALE)); \
2256 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2257 (__DES_TILE_ADDR), \
2258 (__DES_REGION_ADDR), \
2259 (NULL,##__VA_ARGS__)); \
2262#define arm_2dp_gray8_tile_transform_with_src_mask_and_opacity( \
2267 __DES_REGION_ADDR, \
2273 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2274 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2276 (__SRC_TILE_ADDR), \
2277 (__SRC_MASK_ADDR), \
2283 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2284 (__DES_TILE_ADDR), \
2285 (__DES_REGION_ADDR), \
2286 (NULL,##__VA_ARGS__)); \
2289#define arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity( \
2294 __DES_REGION_ADDR, \
2300 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2301 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2303 (__SRC_TILE_ADDR), \
2304 (__SRC_MASK_ADDR), \
2310 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2311 (__DES_TILE_ADDR), \
2312 (__DES_REGION_ADDR), \
2313 (NULL,##__VA_ARGS__)); \
2317#define arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity( \
2322 __DES_REGION_ADDR, \
2328 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2329 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2331 (__SRC_TILE_ADDR), \
2332 (__SRC_MASK_ADDR), \
2338 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2339 (__DES_TILE_ADDR), \
2340 (__DES_REGION_ADDR), \
2341 (NULL,##__VA_ARGS__)); \
2344#define arm_2d_gray8_tile_transform_with_colour_keying( \
2347 __DES_REGION_ADDR, \
2351 __MSK_COLOUR, ...) \
2353 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
2355 (__SRC_TILE_ADDR), \
2361 arm_2dp_tile_transform(NULL, \
2362 (__DES_TILE_ADDR), \
2363 (__DES_REGION_ADDR), \
2364 (NULL,##__VA_ARGS__)); \
2367#define arm_2d_rgb565_tile_transform_with_colour_keying( \
2370 __DES_REGION_ADDR, \
2374 __MSK_COLOUR, ...) \
2376 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
2378 (__SRC_TILE_ADDR), \
2384 arm_2dp_tile_transform(NULL, \
2385 (__DES_TILE_ADDR), \
2386 (__DES_REGION_ADDR), \
2387 (NULL,##__VA_ARGS__)); \
2390#define arm_2d_cccn888_tile_transform_with_colour_keying( \
2393 __DES_REGION_ADDR, \
2397 __MSK_COLOUR, ...) \
2399 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
2401 (__SRC_TILE_ADDR), \
2407 arm_2dp_tile_transform(NULL, \
2408 (__DES_TILE_ADDR), \
2409 (__DES_REGION_ADDR), \
2410 (NULL,##__VA_ARGS__)); \
2413#define arm_2d_gray8_tile_transform_with_opacity( \
2416 __DES_REGION_ADDR, \
2423 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
2425 (__SRC_TILE_ADDR), \
2432 arm_2dp_tile_transform(NULL, \
2433 (__DES_TILE_ADDR), \
2434 (__DES_REGION_ADDR), \
2435 (NULL,##__VA_ARGS__)); \
2438#define arm_2d_rgb565_tile_transform_with_opacity( \
2441 __DES_REGION_ADDR, \
2448 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
2450 (__SRC_TILE_ADDR), \
2457 arm_2dp_tile_transform(NULL, \
2458 (__DES_TILE_ADDR), \
2459 (__DES_REGION_ADDR), \
2460 (NULL,##__VA_ARGS__)); \
2463#define arm_2d_cccn888_tile_transform_with_opacity( \
2466 __DES_REGION_ADDR, \
2473 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
2475 (__SRC_TILE_ADDR), \
2482 arm_2dp_tile_transform(NULL, \
2483 (__DES_TILE_ADDR), \
2484 (__DES_REGION_ADDR), \
2485 (NULL,##__VA_ARGS__)); \
2488#define arm_2d_gray8_tile_transform_only_with_opacity( \
2491 __DES_REGION_ADDR, \
2497 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2499 (__SRC_TILE_ADDR), \
2505 arm_2dp_tile_transform(NULL, \
2506 (__DES_TILE_ADDR), \
2507 (__DES_REGION_ADDR), \
2508 (NULL,##__VA_ARGS__)); \
2511#define arm_2d_rgb565_tile_transform_only_with_opacity( \
2514 __DES_REGION_ADDR, \
2520 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2522 (__SRC_TILE_ADDR), \
2528 arm_2dp_tile_transform(NULL, \
2529 (__DES_TILE_ADDR), \
2530 (__DES_REGION_ADDR), \
2531 (NULL,##__VA_ARGS__)); \
2534#define arm_2d_cccn888_tile_transform_only_with_opacity( \
2537 __DES_REGION_ADDR, \
2543 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2545 (__SRC_TILE_ADDR), \
2551 arm_2dp_tile_transform(NULL, \
2552 (__DES_TILE_ADDR), \
2553 (__DES_REGION_ADDR), \
2554 (NULL,##__VA_ARGS__)); \
2557#define arm_2d_gray8_tile_transform_with_src_mask( \
2561 __DES_REGION_ADDR, \
2567 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2569 (__SRC_TILE_ADDR), \
2570 (__SRC_MASK_ADDR), \
2573 (float)(__SCALE)); \
2575 arm_2dp_tile_transform(NULL, \
2576 (__DES_TILE_ADDR), \
2577 (__DES_REGION_ADDR), \
2578 (NULL,##__VA_ARGS__)); \
2581#define arm_2d_rgb565_tile_transform_with_src_mask( \
2585 __DES_REGION_ADDR, \
2591 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2593 (__SRC_TILE_ADDR), \
2594 (__SRC_MASK_ADDR), \
2597 (float)(__SCALE)); \
2599 arm_2dp_tile_transform(NULL, \
2600 (__DES_TILE_ADDR), \
2601 (__DES_REGION_ADDR), \
2602 (NULL,##__VA_ARGS__)); \
2605#define arm_2d_cccn888_tile_transform_with_src_mask( \
2609 __DES_REGION_ADDR, \
2615 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2617 (__SRC_TILE_ADDR), \
2618 (__SRC_MASK_ADDR), \
2621 (float)(__SCALE)); \
2623 arm_2dp_tile_transform(NULL, \
2624 (__DES_TILE_ADDR), \
2625 (__DES_REGION_ADDR), \
2626 (NULL,##__VA_ARGS__)); \
2629#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity( \
2633 __DES_REGION_ADDR, \
2640 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2642 (__SRC_TILE_ADDR), \
2643 (__SRC_MASK_ADDR), \
2649 arm_2dp_tile_transform(NULL, \
2650 (__DES_TILE_ADDR), \
2651 (__DES_REGION_ADDR), \
2652 (NULL,##__VA_ARGS__)); \
2655#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity( \
2659 __DES_REGION_ADDR, \
2666 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2668 (__SRC_TILE_ADDR), \
2669 (__SRC_MASK_ADDR), \
2675 arm_2dp_tile_transform(NULL, \
2676 (__DES_TILE_ADDR), \
2677 (__DES_REGION_ADDR), \
2678 (NULL,##__VA_ARGS__)); \
2681#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity( \
2685 __DES_REGION_ADDR, \
2692 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2694 (__SRC_TILE_ADDR), \
2695 (__SRC_MASK_ADDR), \
2701 arm_2dp_tile_transform(NULL, \
2702 (__DES_TILE_ADDR), \
2703 (__DES_REGION_ADDR), \
2704 (NULL,##__VA_ARGS__)); \
2711#define arm_2d_gray8_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2715 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
2716 (__SRC_TILE_ADDR), \
2722#define arm_2d_rgb565_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2726 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
2727 (__SRC_TILE_ADDR), \
2733#define arm_2d_cccn888_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2737 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
2738 (__SRC_TILE_ADDR), \
2744#define arm_2d_gray8_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2747 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
2748 (__SRC_TILE_ADDR), \
2753#define arm_2d_rgb565_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2756 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
2757 (__SRC_TILE_ADDR), \
2762#define arm_2d_cccn888_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2765 arm_2dp_cccn888_tile_transform_only_prepare( NULL, \
2766 (__SRC_TILE_ADDR), \
2771#define arm_2d_gray8_tile_scaling_with_opacity_prepare( \
2777 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
2779 (__SRC_TILE_ADDR), \
2786#define arm_2d_rgb565_tile_scaling_with_opacity_prepare( \
2792 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
2794 (__SRC_TILE_ADDR), \
2801#define arm_2d_cccn888_tile_scaling_with_opacity_prepare( \
2807 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
2809 (__SRC_TILE_ADDR), \
2816#define arm_2d_gray8_tile_scaling_only_with_opacity_prepare( \
2821 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2823 (__SRC_TILE_ADDR), \
2829#define arm_2d_rgb565_tile_scaling_only_with_opacity_prepare( \
2834 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2836 (__SRC_TILE_ADDR), \
2842#define arm_2d_cccn888_tile_scaling_only_with_opacity_prepare( \
2847 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2849 (__SRC_TILE_ADDR), \
2855#define arm_2d_gray8_tile_scaling_with_src_mask_prepare( \
2860 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
2861 (__SRC_TILE_ADDR), \
2862 (__SRC_MASK_ADDR), \
2867#define arm_2d_rgb565_tile_scaling_with_src_mask_prepare( \
2872 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
2873 (__SRC_TILE_ADDR), \
2874 (__SRC_MASK_ADDR), \
2879#define arm_2d_cccn888_tile_scaling_with_src_mask_prepare( \
2884 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
2885 (__SRC_TILE_ADDR), \
2886 (__SRC_MASK_ADDR), \
2891#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity_prepare( \
2897 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2899 (__SRC_TILE_ADDR), \
2900 (__SRC_MASK_ADDR), \
2906#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity_prepare( \
2912 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2914 (__SRC_TILE_ADDR), \
2915 (__SRC_MASK_ADDR), \
2921#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity_prepare( \
2927 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2929 (__SRC_TILE_ADDR), \
2930 (__SRC_MASK_ADDR), \
2936#define arm_2d_tile_scale( __DES_TILE_ADDR, \
2937 __DES_REGION_ADDR, \
2938 __DES_CENTRE_ADDR) \
2939 arm_2dp_tile_transform(NULL, \
2940 (__DES_TILE_ADDR), \
2941 (__DES_REGION_ADDR), \
2942 (__DES_CENTRE_ADDR))
2952#define arm_2dp_gray8_tile_scaling_with_colour_keying( __CB_ADDR, \
2955 __DES_REGION_ADDR, \
2960 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2961 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
2963 (__SRC_TILE_ADDR), \
2969 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2970 (__DES_TILE_ADDR), \
2971 (__DES_REGION_ADDR), \
2972 (NULL,##__VA_ARGS__)); \
2975#define arm_2dp_rgb565_tile_scaling_with_colour_keying( __CB_ADDR, \
2978 __DES_REGION_ADDR, \
2983 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2984 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
2986 (__SRC_TILE_ADDR), \
2992 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2993 (__DES_TILE_ADDR), \
2994 (__DES_REGION_ADDR), \
2995 (NULL,##__VA_ARGS__)); \
2998#define arm_2dp_cccn888_tile_scaling_with_colour_keying( __CB_ADDR, \
3001 __DES_REGION_ADDR, \
3006 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3007 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3009 (__SRC_TILE_ADDR), \
3015 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3016 (__DES_TILE_ADDR), \
3017 (__DES_REGION_ADDR), \
3018 (NULL,##__VA_ARGS__)); \
3021#define arm_2dp_gray8_tile_scaling_only( __CB_ADDR, \
3024 __DES_REGION_ADDR, \
3028 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3029 arm_2dp_gray8_tile_transform_only_prepare( \
3031 (__SRC_TILE_ADDR), \
3036 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3037 (__DES_TILE_ADDR), \
3038 (__DES_REGION_ADDR), \
3039 (NULL,##__VA_ARGS__)); \
3042#define arm_2dp_rgb565_tile_scaling_only( __CB_ADDR, \
3045 __DES_REGION_ADDR, \
3049 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3050 arm_2dp_rgb565_tile_transform_only_prepare( \
3052 (__SRC_TILE_ADDR), \
3057 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3058 (__DES_TILE_ADDR), \
3059 (__DES_REGION_ADDR), \
3060 (NULL,##__VA_ARGS__)); \
3063#define arm_2dp_cccn888_tile_scaling_only( __CB_ADDR, \
3066 __DES_REGION_ADDR, \
3070 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3071 arm_2dp_cccn888_tile_transform_only_prepare( \
3073 (__SRC_TILE_ADDR), \
3078 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3079 (__DES_TILE_ADDR), \
3080 (__DES_REGION_ADDR), \
3081 (NULL,##__VA_ARGS__)); \
3084#define arm_2dp_gray8_tile_scaling_with_opacity( \
3088 __DES_REGION_ADDR, \
3093 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3094 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3096 (__SRC_TILE_ADDR), \
3103 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3104 (__DES_TILE_ADDR), \
3105 (__DES_REGION_ADDR), \
3106 (NULL,##__VA_ARGS__)); \
3109#define arm_2dp_rgb565_tile_scaling_with_opacity( \
3113 __DES_REGION_ADDR, \
3118 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3119 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3121 (__SRC_TILE_ADDR), \
3128 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3129 (__DES_TILE_ADDR), \
3130 (__DES_REGION_ADDR), \
3131 (NULL,##__VA_ARGS__)); \
3134#define arm_2dp_cccn888_tile_scaling_with_opacity( \
3138 __DES_REGION_ADDR, \
3143 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3144 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3146 (__SRC_TILE_ADDR), \
3153 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3154 (__DES_TILE_ADDR), \
3155 (__DES_REGION_ADDR), \
3156 (NULL,##__VA_ARGS__)); \
3159#define arm_2dp_gray8_tile_scaling_only_with_opacity( \
3163 __DES_REGION_ADDR, \
3167 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3168 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3170 (__SRC_TILE_ADDR), \
3176 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3177 (__DES_TILE_ADDR), \
3178 (__DES_REGION_ADDR), \
3179 (NULL,##__VA_ARGS__)); \
3182#define arm_2dp_rgb565_tile_scaling_only_with_opacity( \
3186 __DES_REGION_ADDR, \
3190 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3191 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3193 (__SRC_TILE_ADDR), \
3199 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3200 (__DES_TILE_ADDR), \
3201 (__DES_REGION_ADDR), \
3202 (NULL,##__VA_ARGS__)); \
3205#define arm_2dp_cccn888_tile_scaling_only_with_opacity( \
3209 __DES_REGION_ADDR, \
3213 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3214 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3216 (__SRC_TILE_ADDR), \
3222 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3223 (__DES_TILE_ADDR), \
3224 (__DES_REGION_ADDR), \
3225 (NULL,##__VA_ARGS__)); \
3228#define arm_2dp_gray8_tile_scaling_with_src_mask( \
3233 __DES_REGION_ADDR, \
3237 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3238 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
3240 (__SRC_TILE_ADDR), \
3241 (__SRC_MASK_ADDR), \
3246 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3247 (__DES_TILE_ADDR), \
3248 (__DES_REGION_ADDR), \
3249 (NULL,##__VA_ARGS__)); \
3252#define arm_2dp_rgb565_tile_scaling_with_src_mask( \
3257 __DES_REGION_ADDR, \
3261 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3262 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
3264 (__SRC_TILE_ADDR), \
3265 (__SRC_MASK_ADDR), \
3270 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3271 (__DES_TILE_ADDR), \
3272 (__DES_REGION_ADDR), \
3273 (NULL,##__VA_ARGS__)); \
3276#define arm_2dp_cccn888_tile_scaling_with_src_mask( \
3281 __DES_REGION_ADDR, \
3285 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3286 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3288 (__SRC_TILE_ADDR), \
3289 (__SRC_MASK_ADDR), \
3294 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3295 (__DES_TILE_ADDR), \
3296 (__DES_REGION_ADDR), \
3297 (NULL,##__VA_ARGS__)); \
3300#define arm_2dp_gray8_tile_scaling_with_src_mask_and_opacity( \
3305 __DES_REGION_ADDR, \
3310 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3311 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3313 (__SRC_TILE_ADDR), \
3314 (__SRC_MASK_ADDR), \
3320 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3321 (__DES_TILE_ADDR), \
3322 (__DES_REGION_ADDR), \
3323 (NULL,##__VA_ARGS__)); \
3326#define arm_2dp_rgb565_tile_scaling_with_src_mask_and_opacity( \
3331 __DES_REGION_ADDR, \
3336 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3337 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3339 (__SRC_TILE_ADDR), \
3340 (__SRC_MASK_ADDR), \
3346 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3347 (__DES_TILE_ADDR), \
3348 (__DES_REGION_ADDR), \
3349 (NULL,##__VA_ARGS__)); \
3352#define arm_2dp_cccn888_tile_scaling_with_src_mask_and_opacity( \
3357 __DES_REGION_ADDR, \
3362 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3363 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3365 (__SRC_TILE_ADDR), \
3366 (__SRC_MASK_ADDR), \
3372 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3373 (__DES_TILE_ADDR), \
3374 (__DES_REGION_ADDR), \
3375 (NULL,##__VA_ARGS__)); \
3378#define arm_2d_gray8_tile_scaling_with_colour_keying( \
3381 __DES_REGION_ADDR, \
3384 __MSK_COLOUR, ...) \
3386 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
3388 (__SRC_TILE_ADDR), \
3394 arm_2dp_tile_transform(NULL, \
3395 (__DES_TILE_ADDR), \
3396 (__DES_REGION_ADDR), \
3397 (NULL,##__VA_ARGS__)); \
3400#define arm_2d_rgb565_tile_scaling_with_colour_keying( \
3403 __DES_REGION_ADDR, \
3406 __MSK_COLOUR, ...) \
3408 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
3410 (__SRC_TILE_ADDR), \
3416 arm_2dp_tile_transform(NULL, \
3417 (__DES_TILE_ADDR), \
3418 (__DES_REGION_ADDR), \
3419 (NULL,##__VA_ARGS__)); \
3422#define arm_2d_cccn888_tile_scaling_with_colour_keying( \
3425 __DES_REGION_ADDR, \
3428 __MSK_COLOUR, ...) \
3430 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3432 (__SRC_TILE_ADDR), \
3438 arm_2dp_tile_transform(NULL, \
3439 (__DES_TILE_ADDR), \
3440 (__DES_REGION_ADDR), \
3441 (NULL,##__VA_ARGS__)); \
3444#define arm_2d_gray8_tile_scaling_only( \
3447 __DES_REGION_ADDR, \
3452 arm_2dp_gray8_tile_transform_only_prepare( \
3454 (__SRC_TILE_ADDR), \
3459 arm_2dp_tile_transform(NULL, \
3460 (__DES_TILE_ADDR), \
3461 (__DES_REGION_ADDR), \
3462 (NULL,##__VA_ARGS__)); \
3465#define arm_2d_rgb565_tile_scaling_only( \
3468 __DES_REGION_ADDR, \
3473 arm_2dp_rgb565_tile_transform_only_prepare( \
3475 (__SRC_TILE_ADDR), \
3480 arm_2dp_tile_transform(NULL, \
3481 (__DES_TILE_ADDR), \
3482 (__DES_REGION_ADDR), \
3483 (NULL,##__VA_ARGS__)); \
3486#define arm_2d_cccn888_tile_scaling_only( \
3489 __DES_REGION_ADDR, \
3494 arm_2dp_cccn888_tile_transform_only_prepare( \
3496 (__SRC_TILE_ADDR), \
3501 arm_2dp_tile_transform(NULL, \
3502 (__DES_TILE_ADDR), \
3503 (__DES_REGION_ADDR), \
3504 (NULL,##__VA_ARGS__)); \
3507#define arm_2d_gray8_tile_scaling_with_opacity( \
3510 __DES_REGION_ADDR, \
3516 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3518 (__SRC_TILE_ADDR), \
3525 arm_2dp_tile_transform(NULL, \
3526 (__DES_TILE_ADDR), \
3527 (__DES_REGION_ADDR), \
3528 (NULL,##__VA_ARGS__)); \
3532#define arm_2d_rgb565_tile_scaling_with_opacity( \
3535 __DES_REGION_ADDR, \
3541 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3543 (__SRC_TILE_ADDR), \
3550 arm_2dp_tile_transform(NULL, \
3551 (__DES_TILE_ADDR), \
3552 (__DES_REGION_ADDR), \
3553 (NULL,##__VA_ARGS__)); \
3556#define arm_2d_cccn888_tile_scaling_with_opacity( \
3559 __DES_REGION_ADDR, \
3565 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3567 (__SRC_TILE_ADDR), \
3574 arm_2dp_tile_transform(NULL, \
3575 (__DES_TILE_ADDR), \
3576 (__DES_REGION_ADDR), \
3577 (NULL,##__VA_ARGS__)); \
3580#define arm_2d_gray8_tile_scaling_only_with_opacity( \
3583 __DES_REGION_ADDR, \
3588 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3590 (__SRC_TILE_ADDR), \
3596 arm_2dp_tile_transform(NULL, \
3597 (__DES_TILE_ADDR), \
3598 (__DES_REGION_ADDR), \
3599 (NULL,##__VA_ARGS__)); \
3602#define arm_2d_rgb565_tile_scaling_only_with_opacity( \
3605 __DES_REGION_ADDR, \
3610 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3612 (__SRC_TILE_ADDR), \
3618 arm_2dp_tile_transform(NULL, \
3619 (__DES_TILE_ADDR), \
3620 (__DES_REGION_ADDR), \
3621 (NULL,##__VA_ARGS__)); \
3624#define arm_2d_cccn888_tile_scaling_only_with_opacity( \
3627 __DES_REGION_ADDR, \
3632 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3634 (__SRC_TILE_ADDR), \
3640 arm_2dp_tile_transform(NULL, \
3641 (__DES_TILE_ADDR), \
3642 (__DES_REGION_ADDR), \
3643 (NULL,##__VA_ARGS__)); \
3646#define arm_2d_gray8_tile_scaling_with_src_mask( \
3650 __DES_REGION_ADDR, \
3655 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
3657 (__SRC_TILE_ADDR), \
3658 (__SRC_MASK_ADDR), \
3663 arm_2dp_tile_transform(NULL, \
3664 (__DES_TILE_ADDR), \
3665 (__DES_REGION_ADDR), \
3666 (NULL,##__VA_ARGS__)); \
3669#define arm_2d_rgb565_tile_scaling_with_src_mask( \
3673 __DES_REGION_ADDR, \
3678 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
3680 (__SRC_TILE_ADDR), \
3681 (__SRC_MASK_ADDR), \
3686 arm_2dp_tile_transform(NULL, \
3687 (__DES_TILE_ADDR), \
3688 (__DES_REGION_ADDR), \
3689 (NULL,##__VA_ARGS__)); \
3692#define arm_2d_cccn888_tile_scaling_with_src_mask( \
3696 __DES_REGION_ADDR, \
3701 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3703 (__SRC_TILE_ADDR), \
3704 (__SRC_MASK_ADDR), \
3709 arm_2dp_tile_transform(NULL, \
3710 (__DES_TILE_ADDR), \
3711 (__DES_REGION_ADDR), \
3712 (NULL,##__VA_ARGS__)); \
3715#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity( \
3719 __DES_REGION_ADDR, \
3725 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3727 (__SRC_TILE_ADDR), \
3728 (__SRC_MASK_ADDR), \
3734 arm_2dp_tile_transform(NULL, \
3735 (__DES_TILE_ADDR), \
3736 (__DES_REGION_ADDR), \
3737 (NULL,##__VA_ARGS__)); \
3740#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity( \
3744 __DES_REGION_ADDR, \
3750 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3752 (__SRC_TILE_ADDR), \
3753 (__SRC_MASK_ADDR), \
3759 arm_2dp_tile_transform(NULL, \
3760 (__DES_TILE_ADDR), \
3761 (__DES_REGION_ADDR), \
3762 (NULL,##__VA_ARGS__)); \
3765#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity( \
3769 __DES_REGION_ADDR, \
3775 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3777 (__SRC_TILE_ADDR), \
3778 (__SRC_MASK_ADDR), \
3784 arm_2dp_tile_transform(NULL, \
3785 (__DES_TILE_ADDR), \
3786 (__DES_REGION_ADDR), \
3787 (NULL,##__VA_ARGS__)); \
3942 uint_fast8_t chFillColour);
3962 uint_fast16_t hwFillColour);
3982 uint32_t wFillColour);
4058 uint_fast8_t chFillColour,
4059 uint_fast8_t chRatio);
4080 uint_fast16_t hwFillColour,
4081 uint_fast8_t chRatio);
4102 uint32_t wFillColour,
4103 uint_fast8_t chRatio);
4123 uint_fast8_t chRatio);
4143 uint_fast8_t chRatio);
4163 uint_fast8_t chRatio);
4245 uint_fast8_t chOpacity);
4267 uint_fast8_t chOpacity);
4289 uint_fast8_t chOpacity);
4312 uint_fast8_t chFillColour,
4313 uint_fast8_t chOpacity);
4335 uint_fast16_t hwFillColour,
4336 uint_fast8_t chOpacity);
4358 uint32_t wFillColour,
4359 uint_fast8_t chOpacity);
4378#if defined(__clang__)
4379# pragma clang diagnostic pop