30#ifndef __ARM_2D_TRANSFORM_H__
31#define __ARM_2D_TRANSFORM_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_prepare( __SRC_TILE_ADDR, \
1480 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
1481 (__SRC_TILE_ADDR), \
1486#define arm_2d_rgb565_tile_transform_only_prepare( __SRC_TILE_ADDR, \
1490 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
1491 (__SRC_TILE_ADDR), \
1496#define arm_2d_cccn888_tile_transform_only_prepare( __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_2d_gray8_tile_transform_only( __SRC_TILE_ADDR, \
1842 __DES_REGION_ADDR, \
1848 arm_2dp_gray8_tile_transform_only_prepare( \
1850 (__SRC_TILE_ADDR), \
1853 (float)(__SCALE)); \
1854 arm_2dp_tile_transform(NULL, \
1855 (__DES_TILE_ADDR), \
1856 (__DES_REGION_ADDR), \
1857 (NULL,##__VA_ARGS__)); \
1860#define arm_2d_rgb565_tile_transform_only( __SRC_TILE_ADDR, \
1862 __DES_REGION_ADDR, \
1868 arm_2dp_rgb565_tile_transform_only_prepare( \
1870 (__SRC_TILE_ADDR), \
1873 (float)(__SCALE)); \
1874 arm_2dp_tile_transform(NULL, \
1875 (__DES_TILE_ADDR), \
1876 (__DES_REGION_ADDR), \
1877 (NULL,##__VA_ARGS__)); \
1880#define arm_2d_cccn888_tile_transform_only( __SRC_TILE_ADDR, \
1882 __DES_REGION_ADDR, \
1888 arm_2dp_cccn888_tile_transform_only_prepare( \
1890 (__SRC_TILE_ADDR), \
1893 (float)(__SCALE)); \
1894 arm_2dp_tile_transform(NULL, \
1895 (__DES_TILE_ADDR), \
1896 (__DES_REGION_ADDR), \
1897 (NULL,##__VA_ARGS__)); \
1900#define arm_2dp_gray8_tile_transform_with_opacity( \
1904 __DES_REGION_ADDR, \
1910 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1911 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1913 (__SRC_TILE_ADDR), \
1920 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1921 (__DES_TILE_ADDR), \
1922 (__DES_REGION_ADDR), \
1923 (NULL,##__VA_ARGS__)); \
1927#define arm_2dp_rgb565_tile_transform_with_opacity( \
1931 __DES_REGION_ADDR, \
1937 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1938 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1940 (__SRC_TILE_ADDR), \
1947 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1948 (__DES_TILE_ADDR), \
1949 (__DES_REGION_ADDR), \
1950 (NULL,##__VA_ARGS__)); \
1953#define arm_2dp_cccn888_tile_transform_with_opacity( \
1957 __DES_REGION_ADDR, \
1963 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1964 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1966 (__SRC_TILE_ADDR), \
1973 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1974 (__DES_TILE_ADDR), \
1975 (__DES_REGION_ADDR), \
1976 (NULL,##__VA_ARGS__)); \
1979#define arm_2dp_gray8_tile_transform_only_with_opacity( \
1983 __DES_REGION_ADDR, \
1988 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1989 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1991 (__SRC_TILE_ADDR), \
1997 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1998 (__DES_TILE_ADDR), \
1999 (__DES_REGION_ADDR), \
2000 (NULL,##__VA_ARGS__)); \
2003#define arm_2dp_rgb565_tile_transform_only_with_opacity( \
2007 __DES_REGION_ADDR, \
2012 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2013 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2015 (__SRC_TILE_ADDR), \
2021 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2022 (__DES_TILE_ADDR), \
2023 (__DES_REGION_ADDR), \
2024 (NULL,##__VA_ARGS__)); \
2027#define arm_2dp_cccn888_tile_transform_only_with_opacity( \
2031 __DES_REGION_ADDR, \
2036 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2037 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2039 (__SRC_TILE_ADDR), \
2045 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2046 (__DES_TILE_ADDR), \
2047 (__DES_REGION_ADDR), \
2048 (NULL,##__VA_ARGS__)); \
2051#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform( \
2055 __DES_REGION_ADDR, \
2061 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2062 arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
2071 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2072 (__DES_TILE_ADDR), \
2073 (__DES_REGION_ADDR), \
2074 (NULL,##__VA_ARGS__)); \
2077#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform( \
2081 __DES_REGION_ADDR, \
2087 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2088 arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
2097 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2098 (__DES_TILE_ADDR), \
2099 (__DES_REGION_ADDR), \
2100 (NULL,##__VA_ARGS__)); \
2103#define arm_2dp_rgb888_fill_colour_with_mask_opacity_and_transform( \
2107 __DES_REGION_ADDR, \
2113 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2114 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2123 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2124 (__DES_TILE_ADDR), \
2125 (__DES_REGION_ADDR), \
2126 (NULL,##__VA_ARGS__)); \
2129#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform( \
2133 __DES_REGION_ADDR, \
2139 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2140 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2149 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2150 (__DES_TILE_ADDR), \
2151 (__DES_REGION_ADDR), \
2152 (NULL,##__VA_ARGS__)); \
2157#define arm_2d_gray8_fill_colour_with_mask_opacity_and_transform( \
2160 __DES_REGION_ADDR, \
2166 ({arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
2174 arm_2dp_tile_transform(NULL, \
2175 (__DES_TILE_ADDR), \
2176 (__DES_REGION_ADDR), \
2177 (NULL,##__VA_ARGS__));})
2179#define arm_2d_rgb565_fill_colour_with_mask_opacity_and_transform( \
2182 __DES_REGION_ADDR, \
2188 ({arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
2196 arm_2dp_tile_transform(NULL, \
2197 (__DES_TILE_ADDR), \
2198 (__DES_REGION_ADDR), \
2199 (NULL,##__VA_ARGS__));})
2201#define arm_2d_rgb888_fill_colour_with_mask_opacity_and_transform( \
2204 __DES_REGION_ADDR, \
2210 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2218 arm_2dp_tile_transform(NULL, \
2219 (__DES_TILE_ADDR), \
2220 (__DES_REGION_ADDR), \
2221 (NULL,##__VA_ARGS__));})
2223#define arm_2d_cccn888_fill_colour_with_mask_opacity_and_transform( \
2226 __DES_REGION_ADDR, \
2232 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2240 arm_2dp_tile_transform(NULL, \
2241 (__DES_TILE_ADDR), \
2242 (__DES_REGION_ADDR), \
2243 (NULL,##__VA_ARGS__));})
2246#define arm_2dp_gray8_tile_transform_with_src_mask( \
2251 __DES_REGION_ADDR, \
2256 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2257 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2259 (__SRC_TILE_ADDR), \
2260 (__SRC_MASK_ADDR), \
2263 (float)(__SCALE)); \
2265 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2266 (__DES_TILE_ADDR), \
2267 (__DES_REGION_ADDR), \
2268 (NULL,##__VA_ARGS__)); \
2271#define arm_2dp_rgb565_tile_transform_with_src_mask( \
2276 __DES_REGION_ADDR, \
2281 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2282 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2284 (__SRC_TILE_ADDR), \
2285 (__SRC_MASK_ADDR), \
2288 (float)(__SCALE)); \
2290 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2291 (__DES_TILE_ADDR), \
2292 (__DES_REGION_ADDR), \
2293 (NULL,##__VA_ARGS__)); \
2297#define arm_2dp_cccn888_tile_transform_with_src_mask( \
2302 __DES_REGION_ADDR, \
2307 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2308 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2310 (__SRC_TILE_ADDR), \
2311 (__SRC_MASK_ADDR), \
2314 (float)(__SCALE)); \
2316 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2317 (__DES_TILE_ADDR), \
2318 (__DES_REGION_ADDR), \
2319 (NULL,##__VA_ARGS__)); \
2322#define arm_2dp_gray8_tile_transform_with_src_mask_and_opacity( \
2327 __DES_REGION_ADDR, \
2333 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2334 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2336 (__SRC_TILE_ADDR), \
2337 (__SRC_MASK_ADDR), \
2343 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2344 (__DES_TILE_ADDR), \
2345 (__DES_REGION_ADDR), \
2346 (NULL,##__VA_ARGS__)); \
2349#define arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity( \
2354 __DES_REGION_ADDR, \
2360 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2361 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2363 (__SRC_TILE_ADDR), \
2364 (__SRC_MASK_ADDR), \
2370 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2371 (__DES_TILE_ADDR), \
2372 (__DES_REGION_ADDR), \
2373 (NULL,##__VA_ARGS__)); \
2377#define arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity( \
2382 __DES_REGION_ADDR, \
2388 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2389 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2391 (__SRC_TILE_ADDR), \
2392 (__SRC_MASK_ADDR), \
2398 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2399 (__DES_TILE_ADDR), \
2400 (__DES_REGION_ADDR), \
2401 (NULL,##__VA_ARGS__)); \
2404#define arm_2d_gray8_tile_transform_with_colour_keying( \
2407 __DES_REGION_ADDR, \
2411 __MSK_COLOUR, ...) \
2413 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
2415 (__SRC_TILE_ADDR), \
2421 arm_2dp_tile_transform(NULL, \
2422 (__DES_TILE_ADDR), \
2423 (__DES_REGION_ADDR), \
2424 (NULL,##__VA_ARGS__)); \
2427#define arm_2d_rgb565_tile_transform_with_colour_keying( \
2430 __DES_REGION_ADDR, \
2434 __MSK_COLOUR, ...) \
2436 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
2438 (__SRC_TILE_ADDR), \
2444 arm_2dp_tile_transform(NULL, \
2445 (__DES_TILE_ADDR), \
2446 (__DES_REGION_ADDR), \
2447 (NULL,##__VA_ARGS__)); \
2450#define arm_2d_cccn888_tile_transform_with_colour_keying( \
2453 __DES_REGION_ADDR, \
2457 __MSK_COLOUR, ...) \
2459 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
2461 (__SRC_TILE_ADDR), \
2467 arm_2dp_tile_transform(NULL, \
2468 (__DES_TILE_ADDR), \
2469 (__DES_REGION_ADDR), \
2470 (NULL,##__VA_ARGS__)); \
2473#define arm_2d_gray8_tile_transform_with_opacity( \
2476 __DES_REGION_ADDR, \
2483 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
2485 (__SRC_TILE_ADDR), \
2492 arm_2dp_tile_transform(NULL, \
2493 (__DES_TILE_ADDR), \
2494 (__DES_REGION_ADDR), \
2495 (NULL,##__VA_ARGS__)); \
2498#define arm_2d_rgb565_tile_transform_with_opacity( \
2501 __DES_REGION_ADDR, \
2508 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
2510 (__SRC_TILE_ADDR), \
2517 arm_2dp_tile_transform(NULL, \
2518 (__DES_TILE_ADDR), \
2519 (__DES_REGION_ADDR), \
2520 (NULL,##__VA_ARGS__)); \
2523#define arm_2d_cccn888_tile_transform_with_opacity( \
2526 __DES_REGION_ADDR, \
2533 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
2535 (__SRC_TILE_ADDR), \
2542 arm_2dp_tile_transform(NULL, \
2543 (__DES_TILE_ADDR), \
2544 (__DES_REGION_ADDR), \
2545 (NULL,##__VA_ARGS__)); \
2548#define arm_2d_gray8_tile_transform_only_with_opacity( \
2551 __DES_REGION_ADDR, \
2557 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2559 (__SRC_TILE_ADDR), \
2565 arm_2dp_tile_transform(NULL, \
2566 (__DES_TILE_ADDR), \
2567 (__DES_REGION_ADDR), \
2568 (NULL,##__VA_ARGS__)); \
2571#define arm_2d_rgb565_tile_transform_only_with_opacity( \
2574 __DES_REGION_ADDR, \
2580 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2582 (__SRC_TILE_ADDR), \
2588 arm_2dp_tile_transform(NULL, \
2589 (__DES_TILE_ADDR), \
2590 (__DES_REGION_ADDR), \
2591 (NULL,##__VA_ARGS__)); \
2594#define arm_2d_cccn888_tile_transform_only_with_opacity( \
2597 __DES_REGION_ADDR, \
2603 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2605 (__SRC_TILE_ADDR), \
2611 arm_2dp_tile_transform(NULL, \
2612 (__DES_TILE_ADDR), \
2613 (__DES_REGION_ADDR), \
2614 (NULL,##__VA_ARGS__)); \
2617#define arm_2d_gray8_tile_transform_with_src_mask( \
2621 __DES_REGION_ADDR, \
2627 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2629 (__SRC_TILE_ADDR), \
2630 (__SRC_MASK_ADDR), \
2633 (float)(__SCALE)); \
2635 arm_2dp_tile_transform(NULL, \
2636 (__DES_TILE_ADDR), \
2637 (__DES_REGION_ADDR), \
2638 (NULL,##__VA_ARGS__)); \
2641#define arm_2d_rgb565_tile_transform_with_src_mask( \
2645 __DES_REGION_ADDR, \
2651 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2653 (__SRC_TILE_ADDR), \
2654 (__SRC_MASK_ADDR), \
2657 (float)(__SCALE)); \
2659 arm_2dp_tile_transform(NULL, \
2660 (__DES_TILE_ADDR), \
2661 (__DES_REGION_ADDR), \
2662 (NULL,##__VA_ARGS__)); \
2665#define arm_2d_cccn888_tile_transform_with_src_mask( \
2669 __DES_REGION_ADDR, \
2675 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2677 (__SRC_TILE_ADDR), \
2678 (__SRC_MASK_ADDR), \
2681 (float)(__SCALE)); \
2683 arm_2dp_tile_transform(NULL, \
2684 (__DES_TILE_ADDR), \
2685 (__DES_REGION_ADDR), \
2686 (NULL,##__VA_ARGS__)); \
2689#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity( \
2693 __DES_REGION_ADDR, \
2700 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2702 (__SRC_TILE_ADDR), \
2703 (__SRC_MASK_ADDR), \
2709 arm_2dp_tile_transform(NULL, \
2710 (__DES_TILE_ADDR), \
2711 (__DES_REGION_ADDR), \
2712 (NULL,##__VA_ARGS__)); \
2715#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity( \
2719 __DES_REGION_ADDR, \
2726 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2728 (__SRC_TILE_ADDR), \
2729 (__SRC_MASK_ADDR), \
2735 arm_2dp_tile_transform(NULL, \
2736 (__DES_TILE_ADDR), \
2737 (__DES_REGION_ADDR), \
2738 (NULL,##__VA_ARGS__)); \
2741#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity( \
2745 __DES_REGION_ADDR, \
2752 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2754 (__SRC_TILE_ADDR), \
2755 (__SRC_MASK_ADDR), \
2761 arm_2dp_tile_transform(NULL, \
2762 (__DES_TILE_ADDR), \
2763 (__DES_REGION_ADDR), \
2764 (NULL,##__VA_ARGS__)); \
2771#define arm_2d_gray8_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2775 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
2776 (__SRC_TILE_ADDR), \
2782#define arm_2d_rgb565_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2786 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
2787 (__SRC_TILE_ADDR), \
2793#define arm_2d_cccn888_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
2797 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
2798 (__SRC_TILE_ADDR), \
2804#define arm_2d_gray8_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2807 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
2808 (__SRC_TILE_ADDR), \
2813#define arm_2d_rgb565_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2816 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
2817 (__SRC_TILE_ADDR), \
2822#define arm_2d_cccn888_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
2825 arm_2dp_cccn888_tile_transform_only_prepare( NULL, \
2826 (__SRC_TILE_ADDR), \
2831#define arm_2d_gray8_tile_scaling_with_opacity_prepare( \
2837 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
2839 (__SRC_TILE_ADDR), \
2846#define arm_2d_rgb565_tile_scaling_with_opacity_prepare( \
2852 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
2854 (__SRC_TILE_ADDR), \
2861#define arm_2d_cccn888_tile_scaling_with_opacity_prepare( \
2867 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
2869 (__SRC_TILE_ADDR), \
2876#define arm_2d_gray8_tile_scaling_only_with_opacity_prepare( \
2881 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2883 (__SRC_TILE_ADDR), \
2889#define arm_2d_rgb565_tile_scaling_only_with_opacity_prepare( \
2894 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2896 (__SRC_TILE_ADDR), \
2902#define arm_2d_cccn888_tile_scaling_only_with_opacity_prepare( \
2907 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2909 (__SRC_TILE_ADDR), \
2915#define arm_2d_gray8_tile_scaling_with_src_mask_prepare( \
2920 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
2921 (__SRC_TILE_ADDR), \
2922 (__SRC_MASK_ADDR), \
2927#define arm_2d_rgb565_tile_scaling_with_src_mask_prepare( \
2932 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
2933 (__SRC_TILE_ADDR), \
2934 (__SRC_MASK_ADDR), \
2939#define arm_2d_cccn888_tile_scaling_with_src_mask_prepare( \
2944 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
2945 (__SRC_TILE_ADDR), \
2946 (__SRC_MASK_ADDR), \
2951#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity_prepare( \
2957 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2959 (__SRC_TILE_ADDR), \
2960 (__SRC_MASK_ADDR), \
2966#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity_prepare( \
2972 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2974 (__SRC_TILE_ADDR), \
2975 (__SRC_MASK_ADDR), \
2981#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity_prepare( \
2987 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2989 (__SRC_TILE_ADDR), \
2990 (__SRC_MASK_ADDR), \
2996#define arm_2d_tile_scale( __DES_TILE_ADDR, \
2997 __DES_REGION_ADDR, \
2998 __DES_CENTRE_ADDR) \
2999 arm_2dp_tile_transform(NULL, \
3000 (__DES_TILE_ADDR), \
3001 (__DES_REGION_ADDR), \
3002 (__DES_CENTRE_ADDR))
3012#define arm_2dp_gray8_tile_scaling_with_colour_keying( __CB_ADDR, \
3015 __DES_REGION_ADDR, \
3020 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3021 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
3023 (__SRC_TILE_ADDR), \
3029 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3030 (__DES_TILE_ADDR), \
3031 (__DES_REGION_ADDR), \
3032 (NULL,##__VA_ARGS__)); \
3035#define arm_2dp_rgb565_tile_scaling_with_colour_keying( __CB_ADDR, \
3038 __DES_REGION_ADDR, \
3043 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3044 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
3046 (__SRC_TILE_ADDR), \
3052 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3053 (__DES_TILE_ADDR), \
3054 (__DES_REGION_ADDR), \
3055 (NULL,##__VA_ARGS__)); \
3058#define arm_2dp_cccn888_tile_scaling_with_colour_keying( __CB_ADDR, \
3061 __DES_REGION_ADDR, \
3066 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3067 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3069 (__SRC_TILE_ADDR), \
3075 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3076 (__DES_TILE_ADDR), \
3077 (__DES_REGION_ADDR), \
3078 (NULL,##__VA_ARGS__)); \
3081#define arm_2dp_gray8_tile_scaling_only( __CB_ADDR, \
3084 __DES_REGION_ADDR, \
3088 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3089 arm_2dp_gray8_tile_transform_only_prepare( \
3091 (__SRC_TILE_ADDR), \
3096 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3097 (__DES_TILE_ADDR), \
3098 (__DES_REGION_ADDR), \
3099 (NULL,##__VA_ARGS__)); \
3102#define arm_2dp_rgb565_tile_scaling_only( __CB_ADDR, \
3105 __DES_REGION_ADDR, \
3109 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3110 arm_2dp_rgb565_tile_transform_only_prepare( \
3112 (__SRC_TILE_ADDR), \
3117 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3118 (__DES_TILE_ADDR), \
3119 (__DES_REGION_ADDR), \
3120 (NULL,##__VA_ARGS__)); \
3123#define arm_2dp_cccn888_tile_scaling_only( __CB_ADDR, \
3126 __DES_REGION_ADDR, \
3130 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3131 arm_2dp_cccn888_tile_transform_only_prepare( \
3133 (__SRC_TILE_ADDR), \
3138 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3139 (__DES_TILE_ADDR), \
3140 (__DES_REGION_ADDR), \
3141 (NULL,##__VA_ARGS__)); \
3144#define arm_2dp_gray8_tile_scaling_with_opacity( \
3148 __DES_REGION_ADDR, \
3153 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3154 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3156 (__SRC_TILE_ADDR), \
3163 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3164 (__DES_TILE_ADDR), \
3165 (__DES_REGION_ADDR), \
3166 (NULL,##__VA_ARGS__)); \
3169#define arm_2dp_rgb565_tile_scaling_with_opacity( \
3173 __DES_REGION_ADDR, \
3178 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3179 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3181 (__SRC_TILE_ADDR), \
3188 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3189 (__DES_TILE_ADDR), \
3190 (__DES_REGION_ADDR), \
3191 (NULL,##__VA_ARGS__)); \
3194#define arm_2dp_cccn888_tile_scaling_with_opacity( \
3198 __DES_REGION_ADDR, \
3203 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3204 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3206 (__SRC_TILE_ADDR), \
3213 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3214 (__DES_TILE_ADDR), \
3215 (__DES_REGION_ADDR), \
3216 (NULL,##__VA_ARGS__)); \
3219#define arm_2dp_gray8_tile_scaling_only_with_opacity( \
3223 __DES_REGION_ADDR, \
3227 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3228 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3230 (__SRC_TILE_ADDR), \
3236 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3237 (__DES_TILE_ADDR), \
3238 (__DES_REGION_ADDR), \
3239 (NULL,##__VA_ARGS__)); \
3242#define arm_2dp_rgb565_tile_scaling_only_with_opacity( \
3246 __DES_REGION_ADDR, \
3250 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3251 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3253 (__SRC_TILE_ADDR), \
3259 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3260 (__DES_TILE_ADDR), \
3261 (__DES_REGION_ADDR), \
3262 (NULL,##__VA_ARGS__)); \
3265#define arm_2dp_cccn888_tile_scaling_only_with_opacity( \
3269 __DES_REGION_ADDR, \
3273 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3274 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3276 (__SRC_TILE_ADDR), \
3282 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3283 (__DES_TILE_ADDR), \
3284 (__DES_REGION_ADDR), \
3285 (NULL,##__VA_ARGS__)); \
3288#define arm_2dp_gray8_tile_scaling_with_src_mask( \
3293 __DES_REGION_ADDR, \
3297 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3298 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
3300 (__SRC_TILE_ADDR), \
3301 (__SRC_MASK_ADDR), \
3306 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3307 (__DES_TILE_ADDR), \
3308 (__DES_REGION_ADDR), \
3309 (NULL,##__VA_ARGS__)); \
3312#define arm_2dp_rgb565_tile_scaling_with_src_mask( \
3317 __DES_REGION_ADDR, \
3321 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3322 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
3324 (__SRC_TILE_ADDR), \
3325 (__SRC_MASK_ADDR), \
3330 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3331 (__DES_TILE_ADDR), \
3332 (__DES_REGION_ADDR), \
3333 (NULL,##__VA_ARGS__)); \
3336#define arm_2dp_cccn888_tile_scaling_with_src_mask( \
3341 __DES_REGION_ADDR, \
3345 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3346 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3348 (__SRC_TILE_ADDR), \
3349 (__SRC_MASK_ADDR), \
3354 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3355 (__DES_TILE_ADDR), \
3356 (__DES_REGION_ADDR), \
3357 (NULL,##__VA_ARGS__)); \
3360#define arm_2dp_gray8_tile_scaling_with_src_mask_and_opacity( \
3365 __DES_REGION_ADDR, \
3370 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3371 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3373 (__SRC_TILE_ADDR), \
3374 (__SRC_MASK_ADDR), \
3380 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3381 (__DES_TILE_ADDR), \
3382 (__DES_REGION_ADDR), \
3383 (NULL,##__VA_ARGS__)); \
3386#define arm_2dp_rgb565_tile_scaling_with_src_mask_and_opacity( \
3391 __DES_REGION_ADDR, \
3396 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3397 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3399 (__SRC_TILE_ADDR), \
3400 (__SRC_MASK_ADDR), \
3406 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3407 (__DES_TILE_ADDR), \
3408 (__DES_REGION_ADDR), \
3409 (NULL,##__VA_ARGS__)); \
3412#define arm_2dp_cccn888_tile_scaling_with_src_mask_and_opacity( \
3417 __DES_REGION_ADDR, \
3422 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
3423 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3425 (__SRC_TILE_ADDR), \
3426 (__SRC_MASK_ADDR), \
3432 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3433 (__DES_TILE_ADDR), \
3434 (__DES_REGION_ADDR), \
3435 (NULL,##__VA_ARGS__)); \
3438#define arm_2d_gray8_tile_scaling_with_colour_keying( \
3441 __DES_REGION_ADDR, \
3444 __MSK_COLOUR, ...) \
3446 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
3448 (__SRC_TILE_ADDR), \
3454 arm_2dp_tile_transform(NULL, \
3455 (__DES_TILE_ADDR), \
3456 (__DES_REGION_ADDR), \
3457 (NULL,##__VA_ARGS__)); \
3460#define arm_2d_rgb565_tile_scaling_with_colour_keying( \
3463 __DES_REGION_ADDR, \
3466 __MSK_COLOUR, ...) \
3468 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
3470 (__SRC_TILE_ADDR), \
3476 arm_2dp_tile_transform(NULL, \
3477 (__DES_TILE_ADDR), \
3478 (__DES_REGION_ADDR), \
3479 (NULL,##__VA_ARGS__)); \
3482#define arm_2d_cccn888_tile_scaling_with_colour_keying( \
3485 __DES_REGION_ADDR, \
3488 __MSK_COLOUR, ...) \
3490 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3492 (__SRC_TILE_ADDR), \
3498 arm_2dp_tile_transform(NULL, \
3499 (__DES_TILE_ADDR), \
3500 (__DES_REGION_ADDR), \
3501 (NULL,##__VA_ARGS__)); \
3504#define arm_2d_gray8_tile_scaling_only( \
3507 __DES_REGION_ADDR, \
3512 arm_2dp_gray8_tile_transform_only_prepare( \
3514 (__SRC_TILE_ADDR), \
3519 arm_2dp_tile_transform(NULL, \
3520 (__DES_TILE_ADDR), \
3521 (__DES_REGION_ADDR), \
3522 (NULL,##__VA_ARGS__)); \
3525#define arm_2d_rgb565_tile_scaling_only( \
3528 __DES_REGION_ADDR, \
3533 arm_2dp_rgb565_tile_transform_only_prepare( \
3535 (__SRC_TILE_ADDR), \
3540 arm_2dp_tile_transform(NULL, \
3541 (__DES_TILE_ADDR), \
3542 (__DES_REGION_ADDR), \
3543 (NULL,##__VA_ARGS__)); \
3546#define arm_2d_cccn888_tile_scaling_only( \
3549 __DES_REGION_ADDR, \
3554 arm_2dp_cccn888_tile_transform_only_prepare( \
3556 (__SRC_TILE_ADDR), \
3561 arm_2dp_tile_transform(NULL, \
3562 (__DES_TILE_ADDR), \
3563 (__DES_REGION_ADDR), \
3564 (NULL,##__VA_ARGS__)); \
3567#define arm_2d_gray8_tile_scaling_with_opacity( \
3570 __DES_REGION_ADDR, \
3576 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3578 (__SRC_TILE_ADDR), \
3585 arm_2dp_tile_transform(NULL, \
3586 (__DES_TILE_ADDR), \
3587 (__DES_REGION_ADDR), \
3588 (NULL,##__VA_ARGS__)); \
3592#define arm_2d_rgb565_tile_scaling_with_opacity( \
3595 __DES_REGION_ADDR, \
3601 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3603 (__SRC_TILE_ADDR), \
3610 arm_2dp_tile_transform(NULL, \
3611 (__DES_TILE_ADDR), \
3612 (__DES_REGION_ADDR), \
3613 (NULL,##__VA_ARGS__)); \
3616#define arm_2d_cccn888_tile_scaling_with_opacity( \
3619 __DES_REGION_ADDR, \
3625 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3627 (__SRC_TILE_ADDR), \
3634 arm_2dp_tile_transform(NULL, \
3635 (__DES_TILE_ADDR), \
3636 (__DES_REGION_ADDR), \
3637 (NULL,##__VA_ARGS__)); \
3640#define arm_2d_gray8_tile_scaling_only_with_opacity( \
3643 __DES_REGION_ADDR, \
3648 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3650 (__SRC_TILE_ADDR), \
3656 arm_2dp_tile_transform(NULL, \
3657 (__DES_TILE_ADDR), \
3658 (__DES_REGION_ADDR), \
3659 (NULL,##__VA_ARGS__)); \
3662#define arm_2d_rgb565_tile_scaling_only_with_opacity( \
3665 __DES_REGION_ADDR, \
3670 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3672 (__SRC_TILE_ADDR), \
3678 arm_2dp_tile_transform(NULL, \
3679 (__DES_TILE_ADDR), \
3680 (__DES_REGION_ADDR), \
3681 (NULL,##__VA_ARGS__)); \
3684#define arm_2d_cccn888_tile_scaling_only_with_opacity( \
3687 __DES_REGION_ADDR, \
3692 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3694 (__SRC_TILE_ADDR), \
3700 arm_2dp_tile_transform(NULL, \
3701 (__DES_TILE_ADDR), \
3702 (__DES_REGION_ADDR), \
3703 (NULL,##__VA_ARGS__)); \
3706#define arm_2d_gray8_tile_scaling_with_src_mask( \
3710 __DES_REGION_ADDR, \
3715 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
3717 (__SRC_TILE_ADDR), \
3718 (__SRC_MASK_ADDR), \
3723 arm_2dp_tile_transform(NULL, \
3724 (__DES_TILE_ADDR), \
3725 (__DES_REGION_ADDR), \
3726 (NULL,##__VA_ARGS__)); \
3729#define arm_2d_rgb565_tile_scaling_with_src_mask( \
3733 __DES_REGION_ADDR, \
3738 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
3740 (__SRC_TILE_ADDR), \
3741 (__SRC_MASK_ADDR), \
3746 arm_2dp_tile_transform(NULL, \
3747 (__DES_TILE_ADDR), \
3748 (__DES_REGION_ADDR), \
3749 (NULL,##__VA_ARGS__)); \
3752#define arm_2d_cccn888_tile_scaling_with_src_mask( \
3756 __DES_REGION_ADDR, \
3761 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3763 (__SRC_TILE_ADDR), \
3764 (__SRC_MASK_ADDR), \
3769 arm_2dp_tile_transform(NULL, \
3770 (__DES_TILE_ADDR), \
3771 (__DES_REGION_ADDR), \
3772 (NULL,##__VA_ARGS__)); \
3775#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity( \
3779 __DES_REGION_ADDR, \
3785 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3787 (__SRC_TILE_ADDR), \
3788 (__SRC_MASK_ADDR), \
3794 arm_2dp_tile_transform(NULL, \
3795 (__DES_TILE_ADDR), \
3796 (__DES_REGION_ADDR), \
3797 (NULL,##__VA_ARGS__)); \
3800#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity( \
3804 __DES_REGION_ADDR, \
3810 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3812 (__SRC_TILE_ADDR), \
3813 (__SRC_MASK_ADDR), \
3819 arm_2dp_tile_transform(NULL, \
3820 (__DES_TILE_ADDR), \
3821 (__DES_REGION_ADDR), \
3822 (NULL,##__VA_ARGS__)); \
3825#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity( \
3829 __DES_REGION_ADDR, \
3835 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3837 (__SRC_TILE_ADDR), \
3838 (__SRC_MASK_ADDR), \
3844 arm_2dp_tile_transform(NULL, \
3845 (__DES_TILE_ADDR), \
3846 (__DES_REGION_ADDR), \
3847 (NULL,##__VA_ARGS__)); \
3892 uint32_t bInvalid : 1;
3922 uint32_t bInvalid : 1;
3958 uint32_t bInvalid : 1;
3992 uint32_t bInvalid : 1;
4032 uint_fast8_t chFillColour);
4052 uint_fast16_t hwFillColour);
4072 uint32_t wFillColour);
4148 uint_fast8_t chFillColour,
4149 uint_fast8_t chRatio);
4170 uint_fast16_t hwFillColour,
4171 uint_fast8_t chRatio);
4192 uint32_t wFillColour,
4193 uint_fast8_t chRatio);
4213 uint_fast8_t chRatio);
4233 uint_fast8_t chRatio);
4253 uint_fast8_t chRatio);
4335 uint_fast8_t chOpacity);
4357 uint_fast8_t chOpacity);
4379 uint_fast8_t chOpacity);
4402 uint_fast8_t chFillColour,
4403 uint_fast8_t chOpacity);
4425 uint_fast16_t hwFillColour,
4426 uint_fast8_t chOpacity);
4448 uint32_t wFillColour,
4449 uint_fast8_t chOpacity);
4469#include "__arm_2d_tile_2xssaa_transform.h"
4471#if defined(__clang__)
4472# pragma clang diagnostic pop