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
334#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_xy_prepare \
335 arm_2dp_gray8_fill_colour_with_transformed_mask_and_opacity_prepare
337#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_xy_prepare \
338 arm_2dp_rgb565_fill_colour_with_transformed_mask_and_opacity_prepare
340#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_xy_prepare \
341 arm_2dp_cccn888_fill_colour_with_transformed_mask_and_opacity_prepare
355#define arm_2d_gray8_tile_rotation_with_colour_keying_prepare( __SRC_TILE_ADDR,\
359 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
366#define arm_2d_rgb565_tile_rotation_with_colour_keying_prepare( __SRC_TILE_ADDR,\
370 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
377#define arm_2d_cccn888_tile_rotation_with_colour_keying_prepare(__SRC_TILE_ADDR,\
381 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
388#define arm_2d_gray8_tile_rotation_only_prepare(__SRC_TILE_ADDR, \
391 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
397#define arm_2d_rgb565_tile_rotation_only_prepare( __SRC_TILE_ADDR, \
400 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
406#define arm_2d_cccn888_tile_rotation_only_prepare( __SRC_TILE_ADDR, \
409 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
415#define arm_2d_gray8_tile_rotation_with_opacity_prepare( \
421 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
430#define arm_2d_rgb565_tile_rotation_with_opacity_prepare( \
436 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
446#define arm_2d_cccn888_tile_rotation_with_opacity_prepare( \
452 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
462#define arm_2d_gray8_tile_rotation_only_with_opacity_prepare( \
467 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
475#define arm_2d_rgb565_tile_rotation_only_with_opacity_prepare( \
480 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
488#define arm_2d_cccn888_tile_rotation_only_with_opacity_prepare( \
493 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
502#define arm_2d_gray8_tile_rotation_with_src_mask_prepare( \
507 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
514#define arm_2d_rgb565_tile_rotation_with_src_mask_prepare( \
519 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
526#define arm_2d_cccn888_tile_rotation_with_src_mask_prepare( \
531 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
538#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity_prepare( \
544 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
553#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity_prepare( \
559 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
568#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity_prepare( \
574 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
583#define arm_2d_tile_rotate( __DES_TILE_ADDR, \
586 arm_2dp_tile_transform(NULL, \
588 (__DES_REGION_ADDR), \
598#define arm_2dp_gray8_tile_rotation_with_colour_keying( __CB_ADDR, \
606 ({ if (bIsNewFrame) { \
607 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
615 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
617 (__DES_REGION_ADDR), \
618 (NULL,##__VA_ARGS__)); \
621#define arm_2dp_rgb565_tile_rotation_with_colour_keying(__CB_ADDR, \
629 ({ if (bIsNewFrame) { \
630 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
638 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
640 (__DES_REGION_ADDR), \
641 (NULL,##__VA_ARGS__)); \
645#define arm_2dp_cccn888_tile_rotation_with_colour_keying(__CB_ADDR, \
653 ({ if (bIsNewFrame) { \
654 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
662 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
664 (__DES_REGION_ADDR), \
665 (NULL,##__VA_ARGS__)); \
668#define arm_2dp_gray8_tile_rotation_only( __CB_ADDR, \
675 ({ if (bIsNewFrame) { \
676 arm_2dp_gray8_tile_transform_only_prepare( \
683 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
685 (__DES_REGION_ADDR), \
686 (NULL,##__VA_ARGS__)); \
689#define arm_2dp_rgb565_tile_rotation_only( __CB_ADDR, \
696 ({ if (bIsNewFrame) { \
697 arm_2dp_rgb565_tile_transform_only_prepare( \
704 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
706 (__DES_REGION_ADDR), \
707 (NULL,##__VA_ARGS__)); \
711#define arm_2dp_cccn888_tile_rotation_only( __CB_ADDR, \
718 ({ if (bIsNewFrame) { \
719 arm_2dp_cccn888_tile_transform_only_prepare( \
726 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
728 (__DES_REGION_ADDR), \
729 (NULL,##__VA_ARGS__)); \
732#define arm_2dp_gray8_tile_rotation_with_opacity( \
741 ({ if (bIsNewFrame) { \
742 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
751 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
753 (__DES_REGION_ADDR), \
754 (NULL,##__VA_ARGS__)); \
758#define arm_2dp_rgb565_tile_rotation_with_opacity( \
767 ({ if (bIsNewFrame) { \
768 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
777 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
779 (__DES_REGION_ADDR), \
780 (NULL,##__VA_ARGS__)); \
783#define arm_2dp_cccn888_tile_rotation_with_opacity( \
792 ({ if (bIsNewFrame) { \
793 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
802 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
804 (__DES_REGION_ADDR), \
805 (NULL,##__VA_ARGS__)); \
808#define arm_2dp_gray8_tile_rotation_only_with_opacity( \
816 ({ if (bIsNewFrame) { \
817 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
825 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
827 (__DES_REGION_ADDR), \
828 (NULL,##__VA_ARGS__)); \
831#define arm_2dp_rgb565_tile_rotation_only_with_opacity( \
839 ({ if (bIsNewFrame) { \
840 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
848 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
850 (__DES_REGION_ADDR), \
851 (NULL,##__VA_ARGS__)); \
854#define arm_2dp_cccn888_tile_rotation_only_with_opacity( \
862 ({ if (bIsNewFrame) { \
863 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
871 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
873 (__DES_REGION_ADDR), \
874 (NULL,##__VA_ARGS__)); \
877#define arm_2dp_gray8_tile_rotation_with_src_mask( \
886 ({ if (bIsNewFrame) { \
887 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
895 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
897 (__DES_REGION_ADDR), \
898 (NULL,##__VA_ARGS__)); \
901#define arm_2dp_rgb565_tile_rotation_with_src_mask( \
910 ({ if (bIsNewFrame) { \
911 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
919 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
921 (__DES_REGION_ADDR), \
922 (NULL,##__VA_ARGS__)); \
925#define arm_2dp_cccn888_tile_rotation_with_src_mask( \
934 ({ if (bIsNewFrame) { \
935 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
943 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
945 (__DES_REGION_ADDR), \
946 (NULL,##__VA_ARGS__)); \
949#define arm_2dp_gray8_tile_rotation_with_src_mask_and_opacity( \
959 ({ if (bIsNewFrame) { \
960 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
969 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
971 (__DES_REGION_ADDR), \
972 (NULL,##__VA_ARGS__)); \
975#define arm_2dp_rgb565_tile_rotation_with_src_mask_and_opacity( \
985 ({ if (bIsNewFrame) { \
986 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
995 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
997 (__DES_REGION_ADDR), \
998 (NULL,##__VA_ARGS__)); \
1001#define arm_2dp_cccn888_tile_rotation_with_src_mask_and_opacity( \
1006 __DES_REGION_ADDR, \
1011 ({ if (bIsNewFrame) { \
1012 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1014 (__SRC_TILE_ADDR), \
1015 (__SRC_MASK_ADDR), \
1021 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1022 (__DES_TILE_ADDR), \
1023 (__DES_REGION_ADDR), \
1024 (NULL,##__VA_ARGS__)); \
1027#define arm_2d_gray8_tile_rotation_with_colour_keying( \
1030 __DES_REGION_ADDR, \
1033 __MSK_COLOUR, ...) \
1035 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
1037 (__SRC_TILE_ADDR), \
1043 arm_2dp_tile_transform(NULL, \
1044 (__DES_TILE_ADDR), \
1045 (__DES_REGION_ADDR), \
1046 (NULL,##__VA_ARGS__)); \
1050#define arm_2d_rgb565_tile_rotation_with_colour_keying( \
1053 __DES_REGION_ADDR, \
1056 __MSK_COLOUR, ...) \
1058 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
1060 (__SRC_TILE_ADDR), \
1066 arm_2dp_tile_transform(NULL, \
1067 (__DES_TILE_ADDR), \
1068 (__DES_REGION_ADDR), \
1069 (NULL,##__VA_ARGS__)); \
1072#define arm_2d_cccn888_tile_rotation_with_colour_keying( \
1075 __DES_REGION_ADDR, \
1078 __MSK_COLOUR, ...) \
1080 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
1082 (__SRC_TILE_ADDR), \
1088 arm_2dp_tile_transform(NULL, \
1089 (__DES_TILE_ADDR), \
1090 (__DES_REGION_ADDR), \
1091 (NULL,##__VA_ARGS__)); \
1095#define arm_2d_gray8_tile_rotation_only( \
1098 __DES_REGION_ADDR, \
1103 arm_2dp_gray8_tile_transform_only_prepare( \
1105 (__SRC_TILE_ADDR), \
1110 arm_2dp_tile_transform(NULL, \
1111 (__DES_TILE_ADDR), \
1112 (__DES_REGION_ADDR), \
1113 (NULL,##__VA_ARGS__)); \
1117#define arm_2d_rgb565_tile_rotation_only( \
1120 __DES_REGION_ADDR, \
1125 arm_2dp_rgb565_tile_transform_only_prepare( \
1127 (__SRC_TILE_ADDR), \
1132 arm_2dp_tile_transform(NULL, \
1133 (__DES_TILE_ADDR), \
1134 (__DES_REGION_ADDR), \
1135 (NULL,##__VA_ARGS__)); \
1139#define arm_2d_cccn888_tile_rotation_only( \
1142 __DES_REGION_ADDR, \
1147 arm_2dp_cccn888_tile_transform_only_prepare( \
1149 (__SRC_TILE_ADDR), \
1154 arm_2dp_tile_transform(NULL, \
1155 (__DES_TILE_ADDR), \
1156 (__DES_REGION_ADDR), \
1157 (NULL,##__VA_ARGS__)); \
1160#define arm_2d_gray8_tile_rotation_with_opacity( \
1163 __DES_REGION_ADDR, \
1169 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1171 (__SRC_TILE_ADDR), \
1178 arm_2dp_tile_transform(NULL, \
1179 (__DES_TILE_ADDR), \
1180 (__DES_REGION_ADDR), \
1181 (NULL,##__VA_ARGS__)); \
1184#define arm_2d_rgb565_tile_rotation_with_opacity( \
1187 __DES_REGION_ADDR, \
1193 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1195 (__SRC_TILE_ADDR), \
1202 arm_2dp_tile_transform(NULL, \
1203 (__DES_TILE_ADDR), \
1204 (__DES_REGION_ADDR), \
1205 (NULL,##__VA_ARGS__)); \
1208#define arm_2d_cccn888_tile_rotation_with_opacity( \
1211 __DES_REGION_ADDR, \
1217 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1219 (__SRC_TILE_ADDR), \
1226 arm_2dp_tile_transform(NULL, \
1227 (__DES_TILE_ADDR), \
1228 (__DES_REGION_ADDR), \
1229 (NULL,##__VA_ARGS__)); \
1232#define arm_2d_gray8_tile_rotation_only_with_opacity( \
1235 __DES_REGION_ADDR, \
1240 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1242 (__SRC_TILE_ADDR), \
1248 arm_2dp_tile_transform(NULL, \
1249 (__DES_TILE_ADDR), \
1250 (__DES_REGION_ADDR), \
1251 (NULL,##__VA_ARGS__)); \
1254#define arm_2d_rgb565_tile_rotation_only_with_opacity( \
1257 __DES_REGION_ADDR, \
1262 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
1264 (__SRC_TILE_ADDR), \
1270 arm_2dp_tile_transform(NULL, \
1271 (__DES_TILE_ADDR), \
1272 (__DES_REGION_ADDR), \
1273 (NULL,##__VA_ARGS__)); \
1276#define arm_2d_cccn888_tile_rotation_only_with_opacity( \
1279 __DES_REGION_ADDR, \
1284 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
1286 (__SRC_TILE_ADDR), \
1292 arm_2dp_tile_transform(NULL, \
1293 (__DES_TILE_ADDR), \
1294 (__DES_REGION_ADDR), \
1295 (NULL,##__VA_ARGS__)); \
1298#define arm_2d_gray8_tile_rotation_with_src_mask( \
1302 __DES_REGION_ADDR, \
1307 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
1309 (__SRC_TILE_ADDR), \
1310 (__SRC_MASK_ADDR), \
1315 arm_2dp_tile_transform(NULL, \
1316 (__DES_TILE_ADDR), \
1317 (__DES_REGION_ADDR), \
1318 (NULL,##__VA_ARGS__)); \
1321#define arm_2d_rgb565_tile_rotation_with_src_mask( \
1325 __DES_REGION_ADDR, \
1330 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
1332 (__SRC_TILE_ADDR), \
1333 (__SRC_MASK_ADDR), \
1338 arm_2dp_tile_transform(NULL, \
1339 (__DES_TILE_ADDR), \
1340 (__DES_REGION_ADDR), \
1341 (NULL,##__VA_ARGS__)); \
1344#define arm_2d_cccn888_tile_rotation_with_src_mask( \
1348 __DES_REGION_ADDR, \
1353 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
1355 (__SRC_TILE_ADDR), \
1356 (__SRC_MASK_ADDR), \
1361 arm_2dp_tile_transform(NULL, \
1362 (__DES_TILE_ADDR), \
1363 (__DES_REGION_ADDR), \
1364 (NULL,##__VA_ARGS__)); \
1367#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity( \
1371 __DES_REGION_ADDR, \
1377 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1379 (__SRC_TILE_ADDR), \
1380 (__SRC_MASK_ADDR), \
1386 arm_2dp_tile_transform(NULL, \
1387 (__DES_TILE_ADDR), \
1388 (__DES_REGION_ADDR), \
1389 (NULL,##__VA_ARGS__)); \
1392#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity( \
1396 __DES_REGION_ADDR, \
1402 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1404 (__SRC_TILE_ADDR), \
1405 (__SRC_MASK_ADDR), \
1411 arm_2dp_tile_transform(NULL, \
1412 (__DES_TILE_ADDR), \
1413 (__DES_REGION_ADDR), \
1414 (NULL,##__VA_ARGS__)); \
1417#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity( \
1421 __DES_REGION_ADDR, \
1427 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1429 (__SRC_TILE_ADDR), \
1430 (__SRC_MASK_ADDR), \
1436 arm_2dp_tile_transform(NULL, \
1437 (__DES_TILE_ADDR), \
1438 (__DES_REGION_ADDR), \
1439 (NULL,##__VA_ARGS__)); \
1446#define arm_2d_gray8_tile_transform_with_colour_keying_prepare( __SRC_TILE_ADDR,\
1451 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
1452 (__SRC_TILE_ADDR), \
1458#define arm_2d_rgb565_tile_transform_with_colour_keying_prepare(__SRC_TILE_ADDR,\
1463 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
1464 (__SRC_TILE_ADDR), \
1471#define arm_2d_cccn888_tile_transform_with_colour_keying_prepare( \
1477 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
1478 (__SRC_TILE_ADDR), \
1484#define arm_2d_gray8_tile_transform_only_prepare( __SRC_TILE_ADDR, \
1488 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
1489 (__SRC_TILE_ADDR), \
1494#define arm_2d_rgb565_tile_transform_only_prepare( __SRC_TILE_ADDR, \
1498 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
1499 (__SRC_TILE_ADDR), \
1504#define arm_2d_cccn888_tile_transform_only_prepare( __SRC_TILE_ADDR, \
1508 arm_2dp_cccn888_tile_transform_only_prepare( NULL, \
1509 (__SRC_TILE_ADDR), \
1514#define arm_2d_gray8_tile_transform_with_opacity_prepare( \
1521 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1523 (__SRC_TILE_ADDR), \
1530#define arm_2d_rgb565_tile_transform_with_opacity_prepare( \
1537 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1539 (__SRC_TILE_ADDR), \
1546#define arm_2d_cccn888_tile_transform_with_opacity_prepare( \
1553 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1555 (__SRC_TILE_ADDR), \
1562#define arm_2d_gray8_tile_transform_only_with_opacity_prepare( \
1568 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
1570 (__SRC_TILE_ADDR), \
1576#define arm_2d_rgb565_tile_transform_only_with_opacity_prepare( \
1582 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
1584 (__SRC_TILE_ADDR), \
1590#define arm_2d_cccn888_tile_transform_only_with_opacity_prepare( \
1596 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
1598 (__SRC_TILE_ADDR), \
1605#define arm_2d_gray8_tile_transform_with_src_mask_prepare( \
1611 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
1612 (__SRC_TILE_ADDR), \
1613 (__SRC_MASK_ADDR), \
1618#define arm_2d_rgb565_tile_transform_with_src_mask_prepare( \
1624 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
1625 (__SRC_TILE_ADDR), \
1626 (__SRC_MASK_ADDR), \
1631#define arm_2d_cccn888_tile_transform_with_src_mask_prepare( \
1637 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
1638 (__SRC_TILE_ADDR), \
1639 (__SRC_MASK_ADDR), \
1644#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1651 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1653 (__SRC_TILE_ADDR), \
1654 (__SRC_MASK_ADDR), \
1660#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1667 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1669 (__SRC_TILE_ADDR), \
1670 (__SRC_MASK_ADDR), \
1676#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1683 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1685 (__SRC_TILE_ADDR), \
1686 (__SRC_MASK_ADDR), \
1692#define arm_2d_tile_transform( __DES_TILE_ADDR, \
1693 __DES_REGION_ADDR, \
1694 __DES_CENTRE_ADDR) \
1695 arm_2dp_tile_transform(NULL, \
1696 (__DES_TILE_ADDR), \
1697 (__DES_REGION_ADDR), \
1698 (__DES_CENTRE_ADDR))
1708#define arm_2dp_gray8_tile_transform_with_colour_keying(__CB_ADDR, \
1711 __DES_REGION_ADDR, \
1717 ({ if (bIsNewFrame) { \
1718 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
1720 (__SRC_TILE_ADDR), \
1726 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1727 (__DES_TILE_ADDR), \
1728 (__DES_REGION_ADDR), \
1729 (NULL,##__VA_ARGS__)); \
1732#define arm_2dp_rgb565_tile_transform_with_colour_keying( __CB_ADDR, \
1735 __DES_REGION_ADDR, \
1741 ({ if (bIsNewFrame) { \
1742 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
1744 (__SRC_TILE_ADDR), \
1750 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1751 (__DES_TILE_ADDR), \
1752 (__DES_REGION_ADDR), \
1753 (NULL,##__VA_ARGS__)); \
1757#define arm_2dp_cccn888_tile_transform_with_colour_keying( __CB_ADDR, \
1760 __DES_REGION_ADDR, \
1766 ({ if (bIsNewFrame) { \
1767 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
1769 (__SRC_TILE_ADDR), \
1775 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1776 (__DES_TILE_ADDR), \
1777 (__DES_REGION_ADDR), \
1778 (NULL,##__VA_ARGS__)); \
1781#define arm_2dp_gray8_tile_transform_only( __CB_ADDR, \
1784 __DES_REGION_ADDR, \
1789 ({ if (bIsNewFrame) { \
1790 arm_2dp_gray8_tile_transform_only_prepare( \
1792 (__SRC_TILE_ADDR), \
1795 (float)(__SCALE)); \
1797 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1798 (__DES_TILE_ADDR), \
1799 (__DES_REGION_ADDR), \
1800 (NULL,##__VA_ARGS__)); \
1803#define arm_2dp_rgb565_tile_transform_only( __CB_ADDR, \
1806 __DES_REGION_ADDR, \
1811 ({ if (bIsNewFrame) { \
1812 arm_2dp_rgb565_tile_transform_only_prepare( \
1814 (__SRC_TILE_ADDR), \
1817 (float)(__SCALE)); \
1819 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1820 (__DES_TILE_ADDR), \
1821 (__DES_REGION_ADDR), \
1822 (NULL,##__VA_ARGS__)); \
1825#define arm_2dp_cccn888_tile_transform_only(__CB_ADDR, \
1828 __DES_REGION_ADDR, \
1833 ({ if (bIsNewFrame) { \
1834 arm_2dp_cccn888_tile_transform_only_prepare( \
1836 (__SRC_TILE_ADDR), \
1839 (float)(__SCALE)); \
1841 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1842 (__DES_TILE_ADDR), \
1843 (__DES_REGION_ADDR), \
1844 (NULL,##__VA_ARGS__)); \
1848#define arm_2d_gray8_tile_transform_only( __SRC_TILE_ADDR, \
1850 __DES_REGION_ADDR, \
1856 arm_2dp_gray8_tile_transform_only_prepare( \
1858 (__SRC_TILE_ADDR), \
1861 (float)(__SCALE)); \
1862 arm_2dp_tile_transform(NULL, \
1863 (__DES_TILE_ADDR), \
1864 (__DES_REGION_ADDR), \
1865 (NULL,##__VA_ARGS__)); \
1868#define arm_2d_rgb565_tile_transform_only( __SRC_TILE_ADDR, \
1870 __DES_REGION_ADDR, \
1876 arm_2dp_rgb565_tile_transform_only_prepare( \
1878 (__SRC_TILE_ADDR), \
1881 (float)(__SCALE)); \
1882 arm_2dp_tile_transform(NULL, \
1883 (__DES_TILE_ADDR), \
1884 (__DES_REGION_ADDR), \
1885 (NULL,##__VA_ARGS__)); \
1888#define arm_2d_cccn888_tile_transform_only( __SRC_TILE_ADDR, \
1890 __DES_REGION_ADDR, \
1896 arm_2dp_cccn888_tile_transform_only_prepare( \
1898 (__SRC_TILE_ADDR), \
1901 (float)(__SCALE)); \
1902 arm_2dp_tile_transform(NULL, \
1903 (__DES_TILE_ADDR), \
1904 (__DES_REGION_ADDR), \
1905 (NULL,##__VA_ARGS__)); \
1908#define arm_2dp_gray8_tile_transform_with_opacity( \
1912 __DES_REGION_ADDR, \
1918 ({ if (bIsNewFrame) { \
1919 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
1921 (__SRC_TILE_ADDR), \
1928 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1929 (__DES_TILE_ADDR), \
1930 (__DES_REGION_ADDR), \
1931 (NULL,##__VA_ARGS__)); \
1935#define arm_2dp_rgb565_tile_transform_with_opacity( \
1939 __DES_REGION_ADDR, \
1945 ({ if (bIsNewFrame) { \
1946 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
1948 (__SRC_TILE_ADDR), \
1955 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1956 (__DES_TILE_ADDR), \
1957 (__DES_REGION_ADDR), \
1958 (NULL,##__VA_ARGS__)); \
1961#define arm_2dp_cccn888_tile_transform_with_opacity( \
1965 __DES_REGION_ADDR, \
1971 ({ if (bIsNewFrame) { \
1972 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
1974 (__SRC_TILE_ADDR), \
1981 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1982 (__DES_TILE_ADDR), \
1983 (__DES_REGION_ADDR), \
1984 (NULL,##__VA_ARGS__)); \
1987#define arm_2dp_gray8_tile_transform_xy_with_opacity( \
1991 __DES_REGION_ADDR, \
1998 ({ if (bIsNewFrame) { \
1999 arm_2dp_gray8_tile_transform_xy_with_colour_keying_and_opacity_prepare( \
2001 (__SRC_TILE_ADDR), \
2004 (float)(__SCALE_X), \
2005 (float)(__SCALE_Y), \
2009 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2010 (__DES_TILE_ADDR), \
2011 (__DES_REGION_ADDR), \
2012 (NULL,##__VA_ARGS__)); \
2015#define arm_2dp_rgb565_tile_transform_xy_with_opacity( \
2019 __DES_REGION_ADDR, \
2026 ({ if (bIsNewFrame) { \
2027 arm_2dp_rgb565_tile_transform_xy_with_colour_keying_and_opacity_prepare(\
2029 (__SRC_TILE_ADDR), \
2032 (float)(__SCALE_X), \
2033 (float)(__SCALE_Y), \
2037 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2038 (__DES_TILE_ADDR), \
2039 (__DES_REGION_ADDR), \
2040 (NULL,##__VA_ARGS__)); \
2043#define arm_2dp_cccn888_tile_transform_xy_with_opacity( \
2047 __DES_REGION_ADDR, \
2054 ({ if (bIsNewFrame) { \
2055 arm_2dp_cccn888_tile_transform_xy_with_colour_keying_and_opacity_prepare(\
2057 (__SRC_TILE_ADDR), \
2060 (float)(__SCALE_X), \
2061 (float)(__SCALE_Y), \
2065 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2066 (__DES_TILE_ADDR), \
2067 (__DES_REGION_ADDR), \
2068 (NULL,##__VA_ARGS__)); \
2071#define arm_2dp_gray8_tile_transform_only_with_opacity( \
2075 __DES_REGION_ADDR, \
2080 ({ if (bIsNewFrame) { \
2081 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2083 (__SRC_TILE_ADDR), \
2089 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2090 (__DES_TILE_ADDR), \
2091 (__DES_REGION_ADDR), \
2092 (NULL,##__VA_ARGS__)); \
2095#define arm_2dp_rgb565_tile_transform_only_with_opacity( \
2099 __DES_REGION_ADDR, \
2104 ({ if (bIsNewFrame) { \
2105 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2107 (__SRC_TILE_ADDR), \
2113 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2114 (__DES_TILE_ADDR), \
2115 (__DES_REGION_ADDR), \
2116 (NULL,##__VA_ARGS__)); \
2119#define arm_2dp_cccn888_tile_transform_only_with_opacity( \
2123 __DES_REGION_ADDR, \
2128 ({ if (bIsNewFrame) { \
2129 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2131 (__SRC_TILE_ADDR), \
2137 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2138 (__DES_TILE_ADDR), \
2139 (__DES_REGION_ADDR), \
2140 (NULL,##__VA_ARGS__)); \
2143#define arm_2dp_gray8_tile_transform_xy_only_with_opacity( \
2147 __DES_REGION_ADDR, \
2153 ({ if (bIsNewFrame) { \
2154 arm_2dp_gray8_tile_transform_xy_only_with_opacity_prepare( \
2156 (__SRC_TILE_ADDR), \
2159 (float)(__SCALE_X), \
2160 (float)(__SCALE_Y), \
2163 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2164 (__DES_TILE_ADDR), \
2165 (__DES_REGION_ADDR), \
2166 (NULL,##__VA_ARGS__)); \
2169#define arm_2dp_rgb565_tile_transform_xy_only_with_opacity( \
2173 __DES_REGION_ADDR, \
2179 ({ if (bIsNewFrame) { \
2180 arm_2dp_rgb565_tile_transform_xy_only_with_opacity_prepare( \
2182 (__SRC_TILE_ADDR), \
2185 (float)(__SCALE_X), \
2186 (float)(__SCALE_Y), \
2189 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2190 (__DES_TILE_ADDR), \
2191 (__DES_REGION_ADDR), \
2192 (NULL,##__VA_ARGS__)); \
2195#define arm_2dp_cccn888_tile_transform_xy_only_with_opacity( \
2199 __DES_REGION_ADDR, \
2205 ({ if (bIsNewFrame) { \
2206 arm_2dp_cccn888_tile_transform_xy_only_with_opacity_prepare( \
2208 (__SRC_TILE_ADDR), \
2211 (float)(__SCALE_X), \
2212 (float)(__SCALE_Y), \
2215 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2216 (__DES_TILE_ADDR), \
2217 (__DES_REGION_ADDR), \
2218 (NULL,##__VA_ARGS__)); \
2221#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform( \
2225 __DES_REGION_ADDR, \
2231 ({ if (bIsNewFrame) { \
2232 arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
2241 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2242 (__DES_TILE_ADDR), \
2243 (__DES_REGION_ADDR), \
2244 (NULL,##__VA_ARGS__)); \
2247#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform( \
2251 __DES_REGION_ADDR, \
2257 ({ if (bIsNewFrame) { \
2258 arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
2267 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2268 (__DES_TILE_ADDR), \
2269 (__DES_REGION_ADDR), \
2270 (NULL,##__VA_ARGS__)); \
2273#define arm_2dp_rgb888_fill_colour_with_mask_opacity_and_transform( \
2277 __DES_REGION_ADDR, \
2283 ({ if (bIsNewFrame) { \
2284 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2293 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2294 (__DES_TILE_ADDR), \
2295 (__DES_REGION_ADDR), \
2296 (NULL,##__VA_ARGS__)); \
2299#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform( \
2303 __DES_REGION_ADDR, \
2309 ({ if (bIsNewFrame) { \
2310 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2319 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2320 (__DES_TILE_ADDR), \
2321 (__DES_REGION_ADDR), \
2322 (NULL,##__VA_ARGS__)); \
2325#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_xy( \
2329 __DES_REGION_ADDR, \
2336 ({ if (bIsNewFrame) { \
2337 arm_2dp_gray8_fill_colour_with_transformed_mask_and_opacity_prepare( \
2342 (float)(__SCALE_X), \
2343 (float)(__SCALE_Y), \
2347 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2348 (__DES_TILE_ADDR), \
2349 (__DES_REGION_ADDR), \
2350 (NULL,##__VA_ARGS__)); \
2353#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_xy( \
2357 __DES_REGION_ADDR, \
2364 ({ if (bIsNewFrame) { \
2365 arm_2dp_rgb565_fill_colour_with_transformed_mask_and_opacity_prepare( \
2370 (float)(__SCALE_X), \
2371 (float)(__SCALE_Y), \
2375 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2376 (__DES_TILE_ADDR), \
2377 (__DES_REGION_ADDR), \
2378 (NULL,##__VA_ARGS__)); \
2381#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_xy( \
2385 __DES_REGION_ADDR, \
2392 ({ if (bIsNewFrame) { \
2393 arm_2dp_cccn888_fill_colour_with_transformed_mask_and_opacity_prepare( \
2398 (float)(__SCALE_X), \
2399 (float)(__SCALE_Y), \
2403 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2404 (__DES_TILE_ADDR), \
2405 (__DES_REGION_ADDR), \
2406 (NULL,##__VA_ARGS__)); \
2410#define arm_2d_gray8_fill_colour_with_mask_opacity_and_transform( \
2413 __DES_REGION_ADDR, \
2419 ({arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare(\
2427 arm_2dp_tile_transform(NULL, \
2428 (__DES_TILE_ADDR), \
2429 (__DES_REGION_ADDR), \
2430 (NULL,##__VA_ARGS__));})
2432#define arm_2d_rgb565_fill_colour_with_mask_opacity_and_transform( \
2435 __DES_REGION_ADDR, \
2441 ({arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare(\
2449 arm_2dp_tile_transform(NULL, \
2450 (__DES_TILE_ADDR), \
2451 (__DES_REGION_ADDR), \
2452 (NULL,##__VA_ARGS__));})
2454#define arm_2d_rgb888_fill_colour_with_mask_opacity_and_transform( \
2457 __DES_REGION_ADDR, \
2463 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2471 arm_2dp_tile_transform(NULL, \
2472 (__DES_TILE_ADDR), \
2473 (__DES_REGION_ADDR), \
2474 (NULL,##__VA_ARGS__));})
2476#define arm_2d_cccn888_fill_colour_with_mask_opacity_and_transform( \
2479 __DES_REGION_ADDR, \
2485 ({arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
2493 arm_2dp_tile_transform(NULL, \
2494 (__DES_TILE_ADDR), \
2495 (__DES_REGION_ADDR), \
2496 (NULL,##__VA_ARGS__));})
2499#define arm_2dp_gray8_tile_transform_with_src_mask( \
2504 __DES_REGION_ADDR, \
2509 ({ if (bIsNewFrame) { \
2510 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2512 (__SRC_TILE_ADDR), \
2513 (__SRC_MASK_ADDR), \
2516 (float)(__SCALE)); \
2518 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2519 (__DES_TILE_ADDR), \
2520 (__DES_REGION_ADDR), \
2521 (NULL,##__VA_ARGS__)); \
2524#define arm_2dp_rgb565_tile_transform_with_src_mask( \
2529 __DES_REGION_ADDR, \
2534 ({ if (bIsNewFrame) { \
2535 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2537 (__SRC_TILE_ADDR), \
2538 (__SRC_MASK_ADDR), \
2541 (float)(__SCALE)); \
2543 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2544 (__DES_TILE_ADDR), \
2545 (__DES_REGION_ADDR), \
2546 (NULL,##__VA_ARGS__)); \
2550#define arm_2dp_cccn888_tile_transform_with_src_mask( \
2555 __DES_REGION_ADDR, \
2560 ({ if (bIsNewFrame) { \
2561 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2563 (__SRC_TILE_ADDR), \
2564 (__SRC_MASK_ADDR), \
2567 (float)(__SCALE)); \
2569 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2570 (__DES_TILE_ADDR), \
2571 (__DES_REGION_ADDR), \
2572 (NULL,##__VA_ARGS__)); \
2575#define arm_2dp_gray8_tile_transform_with_src_mask_and_opacity( \
2580 __DES_REGION_ADDR, \
2586 ({ if (bIsNewFrame) { \
2587 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2589 (__SRC_TILE_ADDR), \
2590 (__SRC_MASK_ADDR), \
2596 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2597 (__DES_TILE_ADDR), \
2598 (__DES_REGION_ADDR), \
2599 (NULL,##__VA_ARGS__)); \
2602#define arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity( \
2607 __DES_REGION_ADDR, \
2613 ({ if (bIsNewFrame) { \
2614 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2616 (__SRC_TILE_ADDR), \
2617 (__SRC_MASK_ADDR), \
2623 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2624 (__DES_TILE_ADDR), \
2625 (__DES_REGION_ADDR), \
2626 (NULL,##__VA_ARGS__)); \
2630#define arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity( \
2635 __DES_REGION_ADDR, \
2641 ({ if (bIsNewFrame) { \
2642 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2644 (__SRC_TILE_ADDR), \
2645 (__SRC_MASK_ADDR), \
2651 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2652 (__DES_TILE_ADDR), \
2653 (__DES_REGION_ADDR), \
2654 (NULL,##__VA_ARGS__)); \
2657#define arm_2dp_gray8_tile_transform_xy_with_src_mask_and_opacity( \
2662 __DES_REGION_ADDR, \
2669 ({ if (bIsNewFrame) { \
2670 arm_2dp_gray8_tile_transform_xy_with_src_mask_and_opacity_prepare( \
2672 (__SRC_TILE_ADDR), \
2673 (__SRC_MASK_ADDR), \
2676 (float)(__SCALE_X), \
2677 (float)(__SCALE_Y), \
2680 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2681 (__DES_TILE_ADDR), \
2682 (__DES_REGION_ADDR), \
2683 (NULL,##__VA_ARGS__)); \
2686#define arm_2dp_rgb565_tile_transform_xy_with_src_mask_and_opacity( \
2691 __DES_REGION_ADDR, \
2698 ({ if (bIsNewFrame) { \
2699 arm_2dp_rgb565_tile_transform_xy_with_src_mask_and_opacity_prepare( \
2701 (__SRC_TILE_ADDR), \
2702 (__SRC_MASK_ADDR), \
2705 (float)(__SCALE_X), \
2706 (float)(__SCALE_Y), \
2709 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2710 (__DES_TILE_ADDR), \
2711 (__DES_REGION_ADDR), \
2712 (NULL,##__VA_ARGS__)); \
2715#define arm_2dp_cccn888_tile_transform_xy_with_src_mask_and_opacity( \
2720 __DES_REGION_ADDR, \
2727 ({ if (bIsNewFrame) { \
2728 arm_2dp_cccn888_tile_transform_xy_with_src_mask_and_opacity_prepare(\
2730 (__SRC_TILE_ADDR), \
2731 (__SRC_MASK_ADDR), \
2734 (float)(__SCALE_X), \
2735 (float)(__SCALE_Y), \
2738 arm_2dp_tile_transform_xy((arm_2d_op_trans_t *)(__CB_ADDR), \
2739 (__DES_TILE_ADDR), \
2740 (__DES_REGION_ADDR), \
2741 (NULL,##__VA_ARGS__)); \
2744#define arm_2d_gray8_tile_transform_with_colour_keying( \
2747 __DES_REGION_ADDR, \
2751 __MSK_COLOUR, ...) \
2753 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
2755 (__SRC_TILE_ADDR), \
2761 arm_2dp_tile_transform(NULL, \
2762 (__DES_TILE_ADDR), \
2763 (__DES_REGION_ADDR), \
2764 (NULL,##__VA_ARGS__)); \
2767#define arm_2d_rgb565_tile_transform_with_colour_keying( \
2770 __DES_REGION_ADDR, \
2774 __MSK_COLOUR, ...) \
2776 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
2778 (__SRC_TILE_ADDR), \
2784 arm_2dp_tile_transform(NULL, \
2785 (__DES_TILE_ADDR), \
2786 (__DES_REGION_ADDR), \
2787 (NULL,##__VA_ARGS__)); \
2790#define arm_2d_cccn888_tile_transform_with_colour_keying( \
2793 __DES_REGION_ADDR, \
2797 __MSK_COLOUR, ...) \
2799 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
2801 (__SRC_TILE_ADDR), \
2807 arm_2dp_tile_transform(NULL, \
2808 (__DES_TILE_ADDR), \
2809 (__DES_REGION_ADDR), \
2810 (NULL,##__VA_ARGS__)); \
2813#define arm_2d_gray8_tile_transform_with_opacity( \
2816 __DES_REGION_ADDR, \
2823 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
2825 (__SRC_TILE_ADDR), \
2832 arm_2dp_tile_transform(NULL, \
2833 (__DES_TILE_ADDR), \
2834 (__DES_REGION_ADDR), \
2835 (NULL,##__VA_ARGS__)); \
2838#define arm_2d_rgb565_tile_transform_with_opacity( \
2841 __DES_REGION_ADDR, \
2848 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
2850 (__SRC_TILE_ADDR), \
2857 arm_2dp_tile_transform(NULL, \
2858 (__DES_TILE_ADDR), \
2859 (__DES_REGION_ADDR), \
2860 (NULL,##__VA_ARGS__)); \
2863#define arm_2d_cccn888_tile_transform_with_opacity( \
2866 __DES_REGION_ADDR, \
2873 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
2875 (__SRC_TILE_ADDR), \
2882 arm_2dp_tile_transform(NULL, \
2883 (__DES_TILE_ADDR), \
2884 (__DES_REGION_ADDR), \
2885 (NULL,##__VA_ARGS__)); \
2888#define arm_2d_gray8_tile_transform_only_with_opacity( \
2891 __DES_REGION_ADDR, \
2897 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
2899 (__SRC_TILE_ADDR), \
2905 arm_2dp_tile_transform(NULL, \
2906 (__DES_TILE_ADDR), \
2907 (__DES_REGION_ADDR), \
2908 (NULL,##__VA_ARGS__)); \
2911#define arm_2d_rgb565_tile_transform_only_with_opacity( \
2914 __DES_REGION_ADDR, \
2920 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
2922 (__SRC_TILE_ADDR), \
2928 arm_2dp_tile_transform(NULL, \
2929 (__DES_TILE_ADDR), \
2930 (__DES_REGION_ADDR), \
2931 (NULL,##__VA_ARGS__)); \
2934#define arm_2d_cccn888_tile_transform_only_with_opacity( \
2937 __DES_REGION_ADDR, \
2943 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
2945 (__SRC_TILE_ADDR), \
2951 arm_2dp_tile_transform(NULL, \
2952 (__DES_TILE_ADDR), \
2953 (__DES_REGION_ADDR), \
2954 (NULL,##__VA_ARGS__)); \
2957#define arm_2d_gray8_tile_transform_with_src_mask( \
2961 __DES_REGION_ADDR, \
2967 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2969 (__SRC_TILE_ADDR), \
2970 (__SRC_MASK_ADDR), \
2973 (float)(__SCALE)); \
2975 arm_2dp_tile_transform(NULL, \
2976 (__DES_TILE_ADDR), \
2977 (__DES_REGION_ADDR), \
2978 (NULL,##__VA_ARGS__)); \
2981#define arm_2d_rgb565_tile_transform_with_src_mask( \
2985 __DES_REGION_ADDR, \
2991 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2993 (__SRC_TILE_ADDR), \
2994 (__SRC_MASK_ADDR), \
2997 (float)(__SCALE)); \
2999 arm_2dp_tile_transform(NULL, \
3000 (__DES_TILE_ADDR), \
3001 (__DES_REGION_ADDR), \
3002 (NULL,##__VA_ARGS__)); \
3005#define arm_2d_cccn888_tile_transform_with_src_mask( \
3009 __DES_REGION_ADDR, \
3015 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3017 (__SRC_TILE_ADDR), \
3018 (__SRC_MASK_ADDR), \
3021 (float)(__SCALE)); \
3023 arm_2dp_tile_transform(NULL, \
3024 (__DES_TILE_ADDR), \
3025 (__DES_REGION_ADDR), \
3026 (NULL,##__VA_ARGS__)); \
3029#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity( \
3033 __DES_REGION_ADDR, \
3040 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3042 (__SRC_TILE_ADDR), \
3043 (__SRC_MASK_ADDR), \
3049 arm_2dp_tile_transform(NULL, \
3050 (__DES_TILE_ADDR), \
3051 (__DES_REGION_ADDR), \
3052 (NULL,##__VA_ARGS__)); \
3055#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity( \
3059 __DES_REGION_ADDR, \
3066 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3068 (__SRC_TILE_ADDR), \
3069 (__SRC_MASK_ADDR), \
3075 arm_2dp_tile_transform(NULL, \
3076 (__DES_TILE_ADDR), \
3077 (__DES_REGION_ADDR), \
3078 (NULL,##__VA_ARGS__)); \
3081#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity( \
3085 __DES_REGION_ADDR, \
3092 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3094 (__SRC_TILE_ADDR), \
3095 (__SRC_MASK_ADDR), \
3101 arm_2dp_tile_transform(NULL, \
3102 (__DES_TILE_ADDR), \
3103 (__DES_REGION_ADDR), \
3104 (NULL,##__VA_ARGS__)); \
3111#define arm_2d_gray8_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
3115 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( NULL, \
3116 (__SRC_TILE_ADDR), \
3122#define arm_2d_rgb565_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
3126 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( NULL, \
3127 (__SRC_TILE_ADDR), \
3133#define arm_2d_cccn888_tile_scaling_with_colour_keying_prepare( __SRC_TILE_ADDR,\
3137 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( NULL, \
3138 (__SRC_TILE_ADDR), \
3144#define arm_2d_gray8_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
3147 arm_2dp_gray8_tile_transform_only_prepare( NULL, \
3148 (__SRC_TILE_ADDR), \
3153#define arm_2d_rgb565_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
3156 arm_2dp_rgb565_tile_transform_only_prepare( NULL, \
3157 (__SRC_TILE_ADDR), \
3162#define arm_2d_cccn888_tile_scaling_only_prepare( __SRC_TILE_ADDR, \
3165 arm_2dp_cccn888_tile_transform_only_prepare( NULL, \
3166 (__SRC_TILE_ADDR), \
3171#define arm_2d_gray8_tile_scaling_with_opacity_prepare( \
3177 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3179 (__SRC_TILE_ADDR), \
3186#define arm_2d_rgb565_tile_scaling_with_opacity_prepare( \
3192 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3194 (__SRC_TILE_ADDR), \
3201#define arm_2d_cccn888_tile_scaling_with_opacity_prepare( \
3207 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3209 (__SRC_TILE_ADDR), \
3216#define arm_2d_gray8_tile_scaling_only_with_opacity_prepare( \
3221 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3223 (__SRC_TILE_ADDR), \
3229#define arm_2d_rgb565_tile_scaling_only_with_opacity_prepare( \
3234 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3236 (__SRC_TILE_ADDR), \
3242#define arm_2d_cccn888_tile_scaling_only_with_opacity_prepare( \
3247 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3249 (__SRC_TILE_ADDR), \
3255#define arm_2d_gray8_tile_scaling_with_src_mask_prepare( \
3260 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
3261 (__SRC_TILE_ADDR), \
3262 (__SRC_MASK_ADDR), \
3267#define arm_2d_rgb565_tile_scaling_with_src_mask_prepare( \
3272 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
3273 (__SRC_TILE_ADDR), \
3274 (__SRC_MASK_ADDR), \
3279#define arm_2d_cccn888_tile_scaling_with_src_mask_prepare( \
3284 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
3285 (__SRC_TILE_ADDR), \
3286 (__SRC_MASK_ADDR), \
3291#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity_prepare( \
3297 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3299 (__SRC_TILE_ADDR), \
3300 (__SRC_MASK_ADDR), \
3306#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity_prepare( \
3312 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3314 (__SRC_TILE_ADDR), \
3315 (__SRC_MASK_ADDR), \
3321#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity_prepare( \
3327 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3329 (__SRC_TILE_ADDR), \
3330 (__SRC_MASK_ADDR), \
3336#define arm_2d_tile_scale( __DES_TILE_ADDR, \
3337 __DES_REGION_ADDR, \
3338 __DES_CENTRE_ADDR) \
3339 arm_2dp_tile_transform(NULL, \
3340 (__DES_TILE_ADDR), \
3341 (__DES_REGION_ADDR), \
3342 (__DES_CENTRE_ADDR))
3352#define arm_2dp_gray8_tile_scaling_with_colour_keying( __CB_ADDR, \
3355 __DES_REGION_ADDR, \
3360 ({ if (bIsNewFrame) { \
3361 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
3363 (__SRC_TILE_ADDR), \
3369 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3370 (__DES_TILE_ADDR), \
3371 (__DES_REGION_ADDR), \
3372 (NULL,##__VA_ARGS__)); \
3375#define arm_2dp_rgb565_tile_scaling_with_colour_keying( __CB_ADDR, \
3378 __DES_REGION_ADDR, \
3383 ({ if (bIsNewFrame) { \
3384 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
3386 (__SRC_TILE_ADDR), \
3392 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3393 (__DES_TILE_ADDR), \
3394 (__DES_REGION_ADDR), \
3395 (NULL,##__VA_ARGS__)); \
3398#define arm_2dp_cccn888_tile_scaling_with_colour_keying( __CB_ADDR, \
3401 __DES_REGION_ADDR, \
3406 ({ if (bIsNewFrame) { \
3407 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3409 (__SRC_TILE_ADDR), \
3415 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3416 (__DES_TILE_ADDR), \
3417 (__DES_REGION_ADDR), \
3418 (NULL,##__VA_ARGS__)); \
3421#define arm_2dp_gray8_tile_scaling_only( __CB_ADDR, \
3424 __DES_REGION_ADDR, \
3428 ({ if (bIsNewFrame) { \
3429 arm_2dp_gray8_tile_transform_only_prepare( \
3431 (__SRC_TILE_ADDR), \
3436 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3437 (__DES_TILE_ADDR), \
3438 (__DES_REGION_ADDR), \
3439 (NULL,##__VA_ARGS__)); \
3442#define arm_2dp_rgb565_tile_scaling_only( __CB_ADDR, \
3445 __DES_REGION_ADDR, \
3449 ({ if (bIsNewFrame) { \
3450 arm_2dp_rgb565_tile_transform_only_prepare( \
3452 (__SRC_TILE_ADDR), \
3457 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3458 (__DES_TILE_ADDR), \
3459 (__DES_REGION_ADDR), \
3460 (NULL,##__VA_ARGS__)); \
3463#define arm_2dp_cccn888_tile_scaling_only( __CB_ADDR, \
3466 __DES_REGION_ADDR, \
3470 ({ if (bIsNewFrame) { \
3471 arm_2dp_cccn888_tile_transform_only_prepare( \
3473 (__SRC_TILE_ADDR), \
3478 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3479 (__DES_TILE_ADDR), \
3480 (__DES_REGION_ADDR), \
3481 (NULL,##__VA_ARGS__)); \
3484#define arm_2dp_gray8_tile_scaling_with_opacity( \
3488 __DES_REGION_ADDR, \
3493 ({ if (bIsNewFrame) { \
3494 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3496 (__SRC_TILE_ADDR), \
3503 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3504 (__DES_TILE_ADDR), \
3505 (__DES_REGION_ADDR), \
3506 (NULL,##__VA_ARGS__)); \
3509#define arm_2dp_rgb565_tile_scaling_with_opacity( \
3513 __DES_REGION_ADDR, \
3518 ({ if (bIsNewFrame) { \
3519 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3521 (__SRC_TILE_ADDR), \
3528 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3529 (__DES_TILE_ADDR), \
3530 (__DES_REGION_ADDR), \
3531 (NULL,##__VA_ARGS__)); \
3534#define arm_2dp_cccn888_tile_scaling_with_opacity( \
3538 __DES_REGION_ADDR, \
3543 ({ if (bIsNewFrame) { \
3544 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3546 (__SRC_TILE_ADDR), \
3553 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3554 (__DES_TILE_ADDR), \
3555 (__DES_REGION_ADDR), \
3556 (NULL,##__VA_ARGS__)); \
3559#define arm_2dp_gray8_tile_scaling_only_with_opacity( \
3563 __DES_REGION_ADDR, \
3567 ({ if (bIsNewFrame) { \
3568 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3570 (__SRC_TILE_ADDR), \
3576 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3577 (__DES_TILE_ADDR), \
3578 (__DES_REGION_ADDR), \
3579 (NULL,##__VA_ARGS__)); \
3582#define arm_2dp_rgb565_tile_scaling_only_with_opacity( \
3586 __DES_REGION_ADDR, \
3590 ({ if (bIsNewFrame) { \
3591 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
3593 (__SRC_TILE_ADDR), \
3599 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3600 (__DES_TILE_ADDR), \
3601 (__DES_REGION_ADDR), \
3602 (NULL,##__VA_ARGS__)); \
3605#define arm_2dp_cccn888_tile_scaling_only_with_opacity( \
3609 __DES_REGION_ADDR, \
3613 ({ if (bIsNewFrame) { \
3614 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
3616 (__SRC_TILE_ADDR), \
3622 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3623 (__DES_TILE_ADDR), \
3624 (__DES_REGION_ADDR), \
3625 (NULL,##__VA_ARGS__)); \
3628#define arm_2dp_gray8_tile_scaling_with_src_mask( \
3633 __DES_REGION_ADDR, \
3637 ({ if (bIsNewFrame) { \
3638 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
3640 (__SRC_TILE_ADDR), \
3641 (__SRC_MASK_ADDR), \
3646 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3647 (__DES_TILE_ADDR), \
3648 (__DES_REGION_ADDR), \
3649 (NULL,##__VA_ARGS__)); \
3652#define arm_2dp_rgb565_tile_scaling_with_src_mask( \
3657 __DES_REGION_ADDR, \
3661 ({ if (bIsNewFrame) { \
3662 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
3664 (__SRC_TILE_ADDR), \
3665 (__SRC_MASK_ADDR), \
3670 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3671 (__DES_TILE_ADDR), \
3672 (__DES_REGION_ADDR), \
3673 (NULL,##__VA_ARGS__)); \
3676#define arm_2dp_cccn888_tile_scaling_with_src_mask( \
3681 __DES_REGION_ADDR, \
3685 ({ if (bIsNewFrame) { \
3686 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
3688 (__SRC_TILE_ADDR), \
3689 (__SRC_MASK_ADDR), \
3694 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3695 (__DES_TILE_ADDR), \
3696 (__DES_REGION_ADDR), \
3697 (NULL,##__VA_ARGS__)); \
3700#define arm_2dp_gray8_tile_scaling_with_src_mask_and_opacity( \
3705 __DES_REGION_ADDR, \
3710 ({ if (bIsNewFrame) { \
3711 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
3713 (__SRC_TILE_ADDR), \
3714 (__SRC_MASK_ADDR), \
3720 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3721 (__DES_TILE_ADDR), \
3722 (__DES_REGION_ADDR), \
3723 (NULL,##__VA_ARGS__)); \
3726#define arm_2dp_rgb565_tile_scaling_with_src_mask_and_opacity( \
3731 __DES_REGION_ADDR, \
3736 ({ if (bIsNewFrame) { \
3737 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
3739 (__SRC_TILE_ADDR), \
3740 (__SRC_MASK_ADDR), \
3746 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3747 (__DES_TILE_ADDR), \
3748 (__DES_REGION_ADDR), \
3749 (NULL,##__VA_ARGS__)); \
3752#define arm_2dp_cccn888_tile_scaling_with_src_mask_and_opacity( \
3757 __DES_REGION_ADDR, \
3762 ({ if (bIsNewFrame) { \
3763 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
3765 (__SRC_TILE_ADDR), \
3766 (__SRC_MASK_ADDR), \
3772 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
3773 (__DES_TILE_ADDR), \
3774 (__DES_REGION_ADDR), \
3775 (NULL,##__VA_ARGS__)); \
3778#define arm_2d_gray8_tile_scaling_with_colour_keying( \
3781 __DES_REGION_ADDR, \
3784 __MSK_COLOUR, ...) \
3786 arm_2dp_gray8_tile_transform_with_colour_keying_prepare( \
3788 (__SRC_TILE_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_colour_keying( \
3803 __DES_REGION_ADDR, \
3806 __MSK_COLOUR, ...) \
3808 arm_2dp_rgb565_tile_transform_with_colour_keying_prepare( \
3810 (__SRC_TILE_ADDR), \
3816 arm_2dp_tile_transform(NULL, \
3817 (__DES_TILE_ADDR), \
3818 (__DES_REGION_ADDR), \
3819 (NULL,##__VA_ARGS__)); \
3822#define arm_2d_cccn888_tile_scaling_with_colour_keying( \
3825 __DES_REGION_ADDR, \
3828 __MSK_COLOUR, ...) \
3830 arm_2dp_cccn888_tile_transform_with_colour_keying_prepare( \
3832 (__SRC_TILE_ADDR), \
3838 arm_2dp_tile_transform(NULL, \
3839 (__DES_TILE_ADDR), \
3840 (__DES_REGION_ADDR), \
3841 (NULL,##__VA_ARGS__)); \
3844#define arm_2d_gray8_tile_scaling_only( \
3847 __DES_REGION_ADDR, \
3852 arm_2dp_gray8_tile_transform_only_prepare( \
3854 (__SRC_TILE_ADDR), \
3859 arm_2dp_tile_transform(NULL, \
3860 (__DES_TILE_ADDR), \
3861 (__DES_REGION_ADDR), \
3862 (NULL,##__VA_ARGS__)); \
3865#define arm_2d_rgb565_tile_scaling_only( \
3868 __DES_REGION_ADDR, \
3873 arm_2dp_rgb565_tile_transform_only_prepare( \
3875 (__SRC_TILE_ADDR), \
3880 arm_2dp_tile_transform(NULL, \
3881 (__DES_TILE_ADDR), \
3882 (__DES_REGION_ADDR), \
3883 (NULL,##__VA_ARGS__)); \
3886#define arm_2d_cccn888_tile_scaling_only( \
3889 __DES_REGION_ADDR, \
3894 arm_2dp_cccn888_tile_transform_only_prepare( \
3896 (__SRC_TILE_ADDR), \
3901 arm_2dp_tile_transform(NULL, \
3902 (__DES_TILE_ADDR), \
3903 (__DES_REGION_ADDR), \
3904 (NULL,##__VA_ARGS__)); \
3907#define arm_2d_gray8_tile_scaling_with_opacity( \
3910 __DES_REGION_ADDR, \
3916 arm_2dp_gray8_tile_transform_with_colour_keying_and_opacity_prepare(\
3918 (__SRC_TILE_ADDR), \
3925 arm_2dp_tile_transform(NULL, \
3926 (__DES_TILE_ADDR), \
3927 (__DES_REGION_ADDR), \
3928 (NULL,##__VA_ARGS__)); \
3932#define arm_2d_rgb565_tile_scaling_with_opacity( \
3935 __DES_REGION_ADDR, \
3941 arm_2dp_rgb565_tile_transform_with_colour_keying_and_opacity_prepare(\
3943 (__SRC_TILE_ADDR), \
3950 arm_2dp_tile_transform(NULL, \
3951 (__DES_TILE_ADDR), \
3952 (__DES_REGION_ADDR), \
3953 (NULL,##__VA_ARGS__)); \
3956#define arm_2d_cccn888_tile_scaling_with_opacity( \
3959 __DES_REGION_ADDR, \
3965 arm_2dp_cccn888_tile_transform_with_colour_keying_and_opacity_prepare(\
3967 (__SRC_TILE_ADDR), \
3974 arm_2dp_tile_transform(NULL, \
3975 (__DES_TILE_ADDR), \
3976 (__DES_REGION_ADDR), \
3977 (NULL,##__VA_ARGS__)); \
3980#define arm_2d_gray8_tile_scaling_only_with_opacity( \
3983 __DES_REGION_ADDR, \
3988 arm_2dp_gray8_tile_transform_only_with_opacity_prepare( \
3990 (__SRC_TILE_ADDR), \
3996 arm_2dp_tile_transform(NULL, \
3997 (__DES_TILE_ADDR), \
3998 (__DES_REGION_ADDR), \
3999 (NULL,##__VA_ARGS__)); \
4002#define arm_2d_rgb565_tile_scaling_only_with_opacity( \
4005 __DES_REGION_ADDR, \
4010 arm_2dp_rgb565_tile_transform_only_with_opacity_prepare( \
4012 (__SRC_TILE_ADDR), \
4018 arm_2dp_tile_transform(NULL, \
4019 (__DES_TILE_ADDR), \
4020 (__DES_REGION_ADDR), \
4021 (NULL,##__VA_ARGS__)); \
4024#define arm_2d_cccn888_tile_scaling_only_with_opacity( \
4027 __DES_REGION_ADDR, \
4032 arm_2dp_cccn888_tile_transform_only_with_opacity_prepare( \
4034 (__SRC_TILE_ADDR), \
4040 arm_2dp_tile_transform(NULL, \
4041 (__DES_TILE_ADDR), \
4042 (__DES_REGION_ADDR), \
4043 (NULL,##__VA_ARGS__)); \
4046#define arm_2d_gray8_tile_scaling_with_src_mask( \
4050 __DES_REGION_ADDR, \
4055 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
4057 (__SRC_TILE_ADDR), \
4058 (__SRC_MASK_ADDR), \
4063 arm_2dp_tile_transform(NULL, \
4064 (__DES_TILE_ADDR), \
4065 (__DES_REGION_ADDR), \
4066 (NULL,##__VA_ARGS__)); \
4069#define arm_2d_rgb565_tile_scaling_with_src_mask( \
4073 __DES_REGION_ADDR, \
4078 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
4080 (__SRC_TILE_ADDR), \
4081 (__SRC_MASK_ADDR), \
4086 arm_2dp_tile_transform(NULL, \
4087 (__DES_TILE_ADDR), \
4088 (__DES_REGION_ADDR), \
4089 (NULL,##__VA_ARGS__)); \
4092#define arm_2d_cccn888_tile_scaling_with_src_mask( \
4096 __DES_REGION_ADDR, \
4101 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
4103 (__SRC_TILE_ADDR), \
4104 (__SRC_MASK_ADDR), \
4109 arm_2dp_tile_transform(NULL, \
4110 (__DES_TILE_ADDR), \
4111 (__DES_REGION_ADDR), \
4112 (NULL,##__VA_ARGS__)); \
4115#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity( \
4119 __DES_REGION_ADDR, \
4125 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
4127 (__SRC_TILE_ADDR), \
4128 (__SRC_MASK_ADDR), \
4134 arm_2dp_tile_transform(NULL, \
4135 (__DES_TILE_ADDR), \
4136 (__DES_REGION_ADDR), \
4137 (NULL,##__VA_ARGS__)); \
4140#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity( \
4144 __DES_REGION_ADDR, \
4150 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
4152 (__SRC_TILE_ADDR), \
4153 (__SRC_MASK_ADDR), \
4159 arm_2dp_tile_transform(NULL, \
4160 (__DES_TILE_ADDR), \
4161 (__DES_REGION_ADDR), \
4162 (NULL,##__VA_ARGS__)); \
4165#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity( \
4169 __DES_REGION_ADDR, \
4175 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
4177 (__SRC_TILE_ADDR), \
4178 (__SRC_MASK_ADDR), \
4184 arm_2dp_tile_transform(NULL, \
4185 (__DES_TILE_ADDR), \
4186 (__DES_REGION_ADDR), \
4187 (NULL,##__VA_ARGS__)); \
4235 uint32_t bInvalid : 1;
4265 uint32_t bInvalid : 1;
4301 uint32_t bInvalid : 1;
4337 uint32_t bInvalid : 1;
4378 uint_fast8_t chFillColour);
4400 uint_fast8_t chFillColour);
4421 uint_fast16_t hwFillColour);
4443 uint_fast16_t hwFillColour);
4464 uint32_t wFillColour);
4486 uint32_t wFillColour);
4625 uint_fast8_t chFillColour,
4626 uint_fast8_t chRatio);
4649 uint_fast8_t chFillColour,
4650 uint_fast8_t chOpacity);
4672 uint_fast16_t hwFillColour,
4673 uint_fast8_t chRatio);
4696 uint_fast16_t hwFillColour,
4697 uint_fast8_t chOpacity);
4719 uint32_t wFillColour,
4720 uint_fast8_t chRatio);
4743 uint32_t wFillColour,
4744 uint_fast8_t chOpacity);
4765 uint_fast8_t chRatio);
4786 uint_fast8_t chOpacity);
4807 uint_fast8_t chRatio);
4828 uint_fast8_t chOpacity);
4849 uint_fast8_t chRatio);
4870 uint_fast8_t chOpacity);
5022 uint_fast8_t chOpacity);
5046 uint_fast8_t chOpacity);
5069 uint_fast8_t chOpacity);
5093 uint_fast8_t chOpacity);
5116 uint_fast8_t chOpacity);
5140 uint_fast8_t chOpacity);
5165 uint_fast8_t chFillColour,
5166 uint_fast8_t chOpacity);
5191 uint_fast8_t chFillColour,
5192 uint_fast8_t chOpacity);
5217 uint_fast16_t hwFillColour,
5218 uint_fast8_t chOpacity);
5242 uint_fast16_t hwFillColour,
5243 uint_fast8_t chOpacity);
5268 uint32_t wFillColour,
5269 uint_fast8_t chOpacity);
5293 uint32_t wFillColour,
5294 uint_fast8_t chOpacity);
5344 uint_fast8_t chPointsCount);
5348#include "__arm_2d_tile_2xssaa_transform.h"
5349#include "__arm_2d_fill_colour_with_transformed_mask_and_target_mask.h"
5351#if defined(__clang__)
5352# pragma clang diagnostic pop