30#ifndef __ARM_2D_ROTATION_H__
31#define __ARM_2D_ROTATION_H__
35#include "arm_2d_types.h"
42# pragma clang diagnostic push
43# pragma clang diagnostic ignored "-Wunknown-warning-option"
44# pragma clang diagnostic ignored "-Wreserved-identifier"
45# pragma clang diagnostic ignored "-Wsign-conversion"
46# pragma clang diagnostic ignored "-Wpadded"
47# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
55#define arm_2d_op_rotate_t arm_2d_op_trans_t
56#define arm_2d_op_rotate_opacity_t arm_2d_op_trans_opa_t
63#define arm_2dp_tile_rotate arm_2dp_tile_transform
65#define arm_2dp_gray8_tile_rotate_prepare \
66 arm_2dp_gray8_tile_transform_prepare
68#define arm_2dp_rgb565_tile_rotate_prepare \
69 arm_2dp_rgb565_tile_transform_prepare
71#define arm_2dp_cccn888_tile_rotate_prepare \
72 arm_2dp_cccn888_tile_transform_prepare
74#define arm_2dp_gray8_tile_rotate_with_opacity_prepare \
75 arm_2dp_gray8_tile_transform_with_opacity_prepare
77#define arm_2dp_rgb565_tile_rotate_with_opacity_prepare \
78 arm_2dp_rgb565_tile_transform_with_opacity_prepare
80#define arm_2dp_cccn888_tile_rotate_with_opacity_prepare \
81 arm_2dp_cccn888_tile_transform_with_opacity_prepare
83#define arm_2d_gray8_tile_rotation_with_alpha_prepare \
84 arm_2d_gray8_tile_rotation_with_opacity_prepare
86#define arm_2d_rgb565_tile_rotation_with_alpha_prepare \
87 arm_2d_rgb565_tile_rotation_with_opacity_prepare
89#define arm_2d_rgb888_tile_rotation_with_alpha_prepare \
90 arm_2d_rgb888_tile_rotation_with_opacity_prepare
92#define arm_2d_cccn888_tile_rotation_with_alpha_prepare \
93 arm_2d_cccn888_tile_rotation_with_opacity_prepare
95#define arm_2dp_gray8_tile_rotation_with_alpha \
96 arm_2dp_gray8_tile_rotation_with_opacity
98#define arm_2dp_rgb565_tile_rotation_with_alpha \
99 arm_2dp_rgb565_tile_rotation_with_opacity
101#define arm_2dp_rgb888_tile_rotation_with_alpha \
102 arm_2dp_rgb888_tile_rotation_with_opacity
104#define arm_2dp_cccn888_tile_rotation_with_alpha \
105 arm_2dp_cccn888_tile_rotation_with_opacity
107#define arm_2d_gray8_tile_rotation_with_alpha \
108 arm_2d_gray8_tile_rotation_with_opacity
110#define arm_2d_rgb565_tile_rotation_with_alpha \
111 arm_2d_rgb565_tile_rotation_with_opacity
113#define arm_2d_rgb888_tile_rotation_with_alpha \
114 arm_2d_rgb888_tile_rotation_with_opacity
116#define arm_2d_cccn888_tile_rotation_with_alpha \
117 arm_2d_cccn888_tile_rotation_with_opacity
119#define arm_2d_gray8_tile_transform_with_alpha_prepare \
120 arm_2d_gray8_tile_transform_with_opacity_prepare
122#define arm_2d_rgb565_tile_transform_with_alpha_prepare \
123 arm_2d_rgb565_tile_transform_with_opacity_prepare
125#define arm_2d_rgb888_tile_transform_with_alpha_prepare \
126 arm_2d_rgb888_tile_transform_with_opacity_prepare
128#define arm_2d_cccn888_tile_transform_with_alpha_prepare \
129 arm_2d_cccn888_tile_transform_with_opacity_prepare
131#define arm_2d_gray8_tile_transform_with_alpha \
132 arm_2d_gray8_tile_transform_with_opacity
134#define arm_2d_rgb565_tile_transform_with_alpha \
135 arm_2d_rgb565_tile_transform_with_opacity
137#define arm_2d_rgb888_tile_transform_with_alpha \
138 arm_2d_rgb888_tile_transform_with_opacity
140#define arm_2d_cccn888_tile_transform_with_alpha \
141 arm_2d_cccn888_tile_transform_with_opacity
143#define arm_2dp_gray8_tile_transform_with_alpha \
144 arm_2dp_gray8_tile_transform_with_opacity
146#define arm_2dp_rgb565_tile_transform_with_alpha \
147 arm_2dp_rgb565_tile_transform_with_opacity
149#define arm_2dp_rgb888_tile_transform_with_alpha \
150 arm_2dp_rgb888_tile_transform_with_opacity
152#define arm_2dp_cccn888_tile_transform_with_alpha \
153 arm_2dp_cccn888_tile_transform_with_opacity
155#define arm_2d_gray8_tile_scaling_with_alpha_prepare \
156 arm_2d_gray8_tile_scaling_with_opacity_prepare
158#define arm_2d_rgb565_tile_scaling_with_alpha_prepare \
159 arm_2d_rgb565_tile_scaling_with_opacity_prepare
161#define arm_2d_rgb888_tile_scaling_with_alpha_prepare \
162 arm_2d_rgb888_tile_scaling_with_opacity_prepare
164#define arm_2d_cccn888_tile_scaling_with_alpha_prepare \
165 arm_2d_cccn888_tile_scaling_with_opacity_prepare
167#define arm_2dp_gray8_tile_scaling_with_alpha \
168 arm_2dp_gray8_tile_scaling_with_opacity
170#define arm_2dp_rgb565_tile_scaling_with_alpha \
171 arm_2dp_rgb565_tile_scaling_with_opacity
173#define arm_2dp_rgb888_tile_scaling_with_alpha \
174 arm_2dp_rgb888_tile_scaling_with_opacity
176#define arm_2dp_cccn888_tile_scaling_with_alpha \
177 arm_2dp_cccn888_tile_scaling_with_opacity
179#define arm_2d_gray8_tile_scaling_with_alpha \
180 arm_2d_gray8_tile_scaling_with_opacity
182#define arm_2d_rgb565_tile_scaling_with_alpha \
183 arm_2d_rgb565_tile_scaling_with_opacity
185#define arm_2d_rgb888_tile_scaling_with_alpha \
186 arm_2d_rgb888_tile_scaling_with_opacity
188#define arm_2d_cccn888_tile_scaling_with_alpha \
189 arm_2d_cccn888_tile_scaling_with_opacity
203#define arm_2d_gray8_tile_rotation_prepare(__SRC_TILE_ADDR, \
207 arm_2dp_gray8_tile_transform_prepare( NULL, \
214#define arm_2d_rgb565_tile_rotation_prepare(__SRC_TILE_ADDR, \
218 arm_2dp_rgb565_tile_transform_prepare( NULL, \
225#define arm_2d_rgb888_tile_rotation_prepare(__SRC_TILE_ADDR, \
229 arm_2dp_cccn888_tile_transform_prepare( NULL, \
236#define arm_2d_gray8_tile_rotation_with_opacity_prepare( \
242 arm_2dp_gray8_tile_transform_with_opacity_prepare( NULL, \
250#define arm_2d_rgb565_tile_rotation_with_opacity_prepare( \
256 arm_2dp_rgb565_tile_transform_with_opacity_prepare( NULL, \
265#define arm_2d_rgb888_tile_rotation_with_opacity_prepare( \
271 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
280#define arm_2d_cccn888_tile_rotation_with_opacity_prepare( \
286 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
294#define arm_2d_gray8_tile_rotation_with_src_mask_prepare( \
299 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
306#define arm_2d_rgb565_tile_rotation_with_src_mask_prepare( \
311 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
318#define arm_2d_cccn888_tile_rotation_with_src_mask_prepare( \
323 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
330#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity_prepare( \
336 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
345#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity_prepare( \
351 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
360#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity_prepare( \
366 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
375#define arm_2d_tile_rotate( __DES_TILE_ADDR, \
378 arm_2dp_tile_transform(NULL, \
380 (__DES_REGION_ADDR), \
391#define arm_2dp_gray8_tile_rotation( __CB_ADDR, \
399 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
400 arm_2dp_gray8_tile_transform_prepare( \
408 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
410 (__DES_REGION_ADDR), \
411 (NULL,##__VA_ARGS__)); \
414#define arm_2dp_rgb565_tile_rotation( __CB_ADDR, \
422 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
423 arm_2dp_rgb565_tile_transform_prepare( \
431 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
433 (__DES_REGION_ADDR), \
434 (NULL,##__VA_ARGS__)); \
438#define arm_2dp_cccn888_tile_rotation( __CB_ADDR, \
445 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
446 arm_2dp_cccn888_tile_transform_prepare( \
454 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
456 (__DES_REGION_ADDR), \
457 (NULL,##__VA_ARGS__)); \
462#define arm_2dp_gray8_tile_rotation_with_opacity( \
471 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
472 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
481 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
483 (__DES_REGION_ADDR), \
484 (NULL,##__VA_ARGS__)); \
488#define arm_2dp_rgb565_tile_rotation_with_opacity( \
497 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
498 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
507 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
509 (__DES_REGION_ADDR), \
510 (NULL,##__VA_ARGS__)); \
515#define arm_2dp_rgb888_tile_rotation_with_opacity( \
524 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
525 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
534 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
536 (__DES_REGION_ADDR), \
537 (NULL,##__VA_ARGS__)); \
540#define arm_2dp_cccn888_tile_rotation_with_opacity( \
549 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
550 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
559 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
561 (__DES_REGION_ADDR), \
562 (NULL,##__VA_ARGS__)); \
565#define arm_2dp_gray8_tile_rotation_with_src_mask( \
574 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
575 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
583 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
585 (__DES_REGION_ADDR), \
586 (NULL,##__VA_ARGS__)); \
589#define arm_2dp_rgb565_tile_rotation_with_src_mask( \
598 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
599 arm_2dp_rgb565_tile_transform_with_src_mask_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_cccn888_tile_rotation_with_src_mask( \
622 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
623 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
631 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
633 (__DES_REGION_ADDR), \
634 (NULL,##__VA_ARGS__)); \
637#define arm_2dp_gray8_tile_rotation_with_src_mask_and_opacity( \
647 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
648 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
657 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
659 (__DES_REGION_ADDR), \
660 (NULL,##__VA_ARGS__)); \
663#define arm_2dp_rgb565_tile_rotation_with_src_mask_and_opacity( \
673 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
674 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_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_cccn888_tile_rotation_with_src_mask_and_opacity( \
699 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
700 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
709 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
711 (__DES_REGION_ADDR), \
712 (NULL,##__VA_ARGS__)); \
715#define arm_2d_gray8_tile_rotation( \
723 arm_2dp_gray8_tile_transform_prepare( \
731 arm_2dp_tile_transform(NULL, \
733 (__DES_REGION_ADDR), \
734 (NULL,##__VA_ARGS__)); \
738#define arm_2d_rgb565_tile_rotation( \
746 arm_2dp_rgb565_tile_transform_prepare( \
754 arm_2dp_tile_transform(NULL, \
756 (__DES_REGION_ADDR), \
757 (NULL,##__VA_ARGS__)); \
761#define arm_2d_rgb888_tile_rotation( \
769 arm_2dp_cccn888_tile_transform_prepare( \
777 arm_2dp_tile_transform(NULL, \
779 (__DES_REGION_ADDR), \
780 (NULL,##__VA_ARGS__)); \
783#define arm_2d_gray8_tile_rotation_with_opacity( \
792 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
801 arm_2dp_tile_transform(NULL, \
803 (__DES_REGION_ADDR), \
804 (NULL,##__VA_ARGS__)); \
807#define arm_2d_rgb565_tile_rotation_with_opacity( \
816 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
825 arm_2dp_tile_transform(NULL, \
827 (__DES_REGION_ADDR), \
828 (NULL,##__VA_ARGS__)); \
831#define arm_2d_rgb888_tile_rotation_with_opacity( \
840 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
849 arm_2dp_tile_transform(NULL, \
851 (__DES_REGION_ADDR), \
852 (NULL,##__VA_ARGS__)); \
855#define arm_2d_cccn888_tile_rotation_with_opacity( \
864 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
873 arm_2dp_tile_transform(NULL, \
875 (__DES_REGION_ADDR), \
876 (NULL,##__VA_ARGS__)); \
879#define arm_2d_gray8_tile_rotation_with_src_mask( \
888 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
896 arm_2dp_tile_transform(NULL, \
898 (__DES_REGION_ADDR), \
899 (NULL,##__VA_ARGS__)); \
902#define arm_2d_rgb565_tile_rotation_with_src_mask( \
911 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
919 arm_2dp_tile_transform(NULL, \
921 (__DES_REGION_ADDR), \
922 (NULL,##__VA_ARGS__)); \
925#define arm_2d_cccn888_tile_rotation_with_src_mask( \
934 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
942 arm_2dp_tile_transform(NULL, \
944 (__DES_REGION_ADDR), \
945 (NULL,##__VA_ARGS__)); \
948#define arm_2d_gray8_tile_rotation_with_src_mask_and_opacity( \
958 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
967 arm_2dp_tile_transform(NULL, \
969 (__DES_REGION_ADDR), \
970 (NULL,##__VA_ARGS__)); \
973#define arm_2d_rgb565_tile_rotation_with_src_mask_and_opacity( \
983 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
992 arm_2dp_tile_transform(NULL, \
994 (__DES_REGION_ADDR), \
995 (NULL,##__VA_ARGS__)); \
998#define arm_2d_cccn888_tile_rotation_with_src_mask_and_opacity( \
1002 __DES_REGION_ADDR, \
1008 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1010 (__SRC_TILE_ADDR), \
1011 (__SRC_MASK_ADDR), \
1017 arm_2dp_tile_transform(NULL, \
1018 (__DES_TILE_ADDR), \
1019 (__DES_REGION_ADDR), \
1020 (NULL,##__VA_ARGS__)); \
1027#define arm_2d_gray8_tile_transform_prepare(__SRC_TILE_ADDR, \
1032 arm_2dp_gray8_tile_transform_prepare( NULL, \
1033 (__SRC_TILE_ADDR), \
1039#define arm_2d_rgb565_tile_transform_prepare(__SRC_TILE_ADDR, \
1044 arm_2dp_rgb565_tile_transform_prepare( NULL, \
1045 (__SRC_TILE_ADDR), \
1052#define arm_2d_rgb888_tile_transform_prepare(__SRC_TILE_ADDR, \
1057 arm_2dp_cccn888_tile_transform_prepare( NULL, \
1058 (__SRC_TILE_ADDR), \
1065#define arm_2d_gray8_tile_transform_with_opacity_prepare( \
1072 arm_2dp_gray8_tile_transform_with_opacity_prepare( NULL, \
1073 (__SRC_TILE_ADDR), \
1080#define arm_2d_rgb565_tile_transform_with_opacity_prepare( \
1087 arm_2dp_rgb565_tile_transform_with_opacity_prepare( NULL, \
1088 (__SRC_TILE_ADDR), \
1096#define arm_2d_rgb888_tile_transform_with_opacity_prepare( \
1103 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
1104 (__SRC_TILE_ADDR), \
1112#define arm_2d_cccn888_tile_transform_with_opacity_prepare( \
1119 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
1120 (__SRC_TILE_ADDR), \
1127#define arm_2d_gray8_tile_transform_with_src_mask_prepare( \
1133 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
1134 (__SRC_TILE_ADDR), \
1135 (__SRC_MASK_ADDR), \
1140#define arm_2d_rgb565_tile_transform_with_src_mask_prepare( \
1146 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
1147 (__SRC_TILE_ADDR), \
1148 (__SRC_MASK_ADDR), \
1153#define arm_2d_cccn888_tile_transform_with_src_mask_prepare( \
1159 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
1160 (__SRC_TILE_ADDR), \
1161 (__SRC_MASK_ADDR), \
1166#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1173 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1175 (__SRC_TILE_ADDR), \
1176 (__SRC_MASK_ADDR), \
1182#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1189 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1191 (__SRC_TILE_ADDR), \
1192 (__SRC_MASK_ADDR), \
1198#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1205 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1207 (__SRC_TILE_ADDR), \
1208 (__SRC_MASK_ADDR), \
1214#define arm_2d_tile_transform( __DES_TILE_ADDR, \
1215 __DES_REGION_ADDR, \
1216 __DES_CENTRE_ADDR) \
1217 arm_2dp_tile_transform(NULL, \
1218 (__DES_TILE_ADDR), \
1219 (__DES_REGION_ADDR), \
1220 (__DES_CENTRE_ADDR))
1230#define arm_2dp_gray8_tile_transform( __CB_ADDR, \
1233 __DES_REGION_ADDR, \
1239 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1240 arm_2dp_gray8_tile_transform_prepare( \
1242 (__SRC_TILE_ADDR), \
1248 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1249 (__DES_TILE_ADDR), \
1250 (__DES_REGION_ADDR), \
1251 (NULL,##__VA_ARGS__)); \
1254#define arm_2dp_rgb565_tile_transform( __CB_ADDR, \
1257 __DES_REGION_ADDR, \
1263 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1264 arm_2dp_rgb565_tile_transform_prepare( \
1266 (__SRC_TILE_ADDR), \
1272 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1273 (__DES_TILE_ADDR), \
1274 (__DES_REGION_ADDR), \
1275 (NULL,##__VA_ARGS__)); \
1279#define arm_2dp_cccn888_tile_transform( __CB_ADDR, \
1282 __DES_REGION_ADDR, \
1287 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1288 arm_2dp_cccn888_tile_transform_prepare( \
1290 (__SRC_TILE_ADDR), \
1296 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1297 (__DES_TILE_ADDR), \
1298 (__DES_REGION_ADDR), \
1299 (NULL,##__VA_ARGS__)); \
1303#define arm_2dp_gray8_tile_transform_with_opacity( \
1307 __DES_REGION_ADDR, \
1313 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1314 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
1316 (__SRC_TILE_ADDR), \
1323 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1324 (__DES_TILE_ADDR), \
1325 (__DES_REGION_ADDR), \
1326 (NULL,##__VA_ARGS__)); \
1330#define arm_2dp_rgb565_tile_transform_with_opacity( \
1334 __DES_REGION_ADDR, \
1340 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1341 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
1343 (__SRC_TILE_ADDR), \
1350 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1351 (__DES_TILE_ADDR), \
1352 (__DES_REGION_ADDR), \
1353 (NULL,##__VA_ARGS__)); \
1356#define arm_2dp_rgb888_tile_transform_with_opacity( \
1360 __DES_REGION_ADDR, \
1366 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1367 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
1369 (__SRC_TILE_ADDR), \
1376 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1377 (__DES_TILE_ADDR), \
1378 (__DES_REGION_ADDR), \
1379 (NULL,##__VA_ARGS__)); \
1382#define arm_2dp_cccn888_tile_transform_with_opacity( \
1386 __DES_REGION_ADDR, \
1392 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1393 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
1395 (__SRC_TILE_ADDR), \
1402 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1403 (__DES_TILE_ADDR), \
1404 (__DES_REGION_ADDR), \
1405 (NULL,##__VA_ARGS__)); \
1414#define arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform( \
1418 __DES_REGION_ADDR, \
1424 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1425 arm_2dp_gray8_fill_colour_with_mask_opacity_and_transform_prepare( \
1434 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1435 (__DES_TILE_ADDR), \
1436 (__DES_REGION_ADDR), \
1437 (NULL,##__VA_ARGS__)); \
1440#define arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform( \
1444 __DES_REGION_ADDR, \
1450 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1451 arm_2dp_rgb565_fill_colour_with_mask_opacity_and_transform_prepare( \
1460 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1461 (__DES_TILE_ADDR), \
1462 (__DES_REGION_ADDR), \
1463 (NULL,##__VA_ARGS__)); \
1466#define arm_2dp_rgb888_fill_colour_with_mask_opacity_and_transform( \
1470 __DES_REGION_ADDR, \
1476 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1477 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
1486 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1487 (__DES_TILE_ADDR), \
1488 (__DES_REGION_ADDR), \
1489 (NULL,##__VA_ARGS__)); \
1492#define arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform( \
1496 __DES_REGION_ADDR, \
1502 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1503 arm_2dp_cccn888_fill_colour_with_mask_opacity_and_transform_prepare(\
1512 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1513 (__DES_TILE_ADDR), \
1514 (__DES_REGION_ADDR), \
1515 (NULL,##__VA_ARGS__)); \
1520#define arm_2dp_gray8_tile_transform_with_src_mask( \
1525 __DES_REGION_ADDR, \
1530 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1531 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
1533 (__SRC_TILE_ADDR), \
1534 (__SRC_MASK_ADDR), \
1537 (float)(__SCALE)); \
1539 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1540 (__DES_TILE_ADDR), \
1541 (__DES_REGION_ADDR), \
1542 (NULL,##__VA_ARGS__)); \
1545#define arm_2dp_rgb565_tile_transform_with_src_mask( \
1550 __DES_REGION_ADDR, \
1555 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1556 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
1558 (__SRC_TILE_ADDR), \
1559 (__SRC_MASK_ADDR), \
1562 (float)(__SCALE)); \
1564 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1565 (__DES_TILE_ADDR), \
1566 (__DES_REGION_ADDR), \
1567 (NULL,##__VA_ARGS__)); \
1571#define arm_2dp_cccn888_tile_transform_with_src_mask( \
1576 __DES_REGION_ADDR, \
1581 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1582 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
1584 (__SRC_TILE_ADDR), \
1585 (__SRC_MASK_ADDR), \
1588 (float)(__SCALE)); \
1590 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1591 (__DES_TILE_ADDR), \
1592 (__DES_REGION_ADDR), \
1593 (NULL,##__VA_ARGS__)); \
1596#define arm_2dp_gray8_tile_transform_with_src_mask_and_opacity( \
1601 __DES_REGION_ADDR, \
1607 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1608 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1610 (__SRC_TILE_ADDR), \
1611 (__SRC_MASK_ADDR), \
1617 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1618 (__DES_TILE_ADDR), \
1619 (__DES_REGION_ADDR), \
1620 (NULL,##__VA_ARGS__)); \
1623#define arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity( \
1628 __DES_REGION_ADDR, \
1634 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1635 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1637 (__SRC_TILE_ADDR), \
1638 (__SRC_MASK_ADDR), \
1644 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1645 (__DES_TILE_ADDR), \
1646 (__DES_REGION_ADDR), \
1647 (NULL,##__VA_ARGS__)); \
1651#define arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity( \
1656 __DES_REGION_ADDR, \
1662 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
1663 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1665 (__SRC_TILE_ADDR), \
1666 (__SRC_MASK_ADDR), \
1672 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
1673 (__DES_TILE_ADDR), \
1674 (__DES_REGION_ADDR), \
1675 (NULL,##__VA_ARGS__)); \
1679#define arm_2d_gray8_tile_transform( \
1682 __DES_REGION_ADDR, \
1686 __MSK_COLOUR, ...) \
1688 arm_2dp_gray8_tile_transform_prepare( \
1690 (__SRC_TILE_ADDR), \
1696 arm_2dp_tile_transform(NULL, \
1697 (__DES_TILE_ADDR), \
1698 (__DES_REGION_ADDR), \
1699 (NULL,##__VA_ARGS__)); \
1702#define arm_2d_rgb565_tile_transform( \
1705 __DES_REGION_ADDR, \
1709 __MSK_COLOUR, ...) \
1711 arm_2dp_rgb565_tile_transform_prepare( \
1713 (__SRC_TILE_ADDR), \
1719 arm_2dp_tile_transform(NULL, \
1720 (__DES_TILE_ADDR), \
1721 (__DES_REGION_ADDR), \
1722 (NULL,##__VA_ARGS__)); \
1726#define arm_2d_rgb888_tile_transform( \
1729 __DES_REGION_ADDR, \
1733 __MSK_COLOUR, ...) \
1735 arm_2dp_cccn888_tile_transform_prepare( \
1737 (__SRC_TILE_ADDR), \
1743 arm_2dp_tile_transform(NULL, \
1744 (__DES_TILE_ADDR), \
1745 (__DES_REGION_ADDR), \
1746 (NULL,##__VA_ARGS__)); \
1749#define arm_2d_gray8_tile_transform_with_opacity( \
1752 __DES_REGION_ADDR, \
1759 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
1761 (__SRC_TILE_ADDR), \
1768 arm_2dp_tile_transform(NULL, \
1769 (__DES_TILE_ADDR), \
1770 (__DES_REGION_ADDR), \
1771 (NULL,##__VA_ARGS__)); \
1774#define arm_2d_rgb565_tile_transform_with_opacity( \
1777 __DES_REGION_ADDR, \
1784 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
1786 (__SRC_TILE_ADDR), \
1793 arm_2dp_tile_transform(NULL, \
1794 (__DES_TILE_ADDR), \
1795 (__DES_REGION_ADDR), \
1796 (NULL,##__VA_ARGS__)); \
1799#define arm_2d_rgb888_tile_transform_with_opacity( \
1802 __DES_REGION_ADDR, \
1809 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
1811 (__SRC_TILE_ADDR), \
1818 arm_2dp_tile_transform(NULL, \
1819 (__DES_TILE_ADDR), \
1820 (__DES_REGION_ADDR), \
1821 (NULL,##__VA_ARGS__)); \
1826#define arm_2d_cccn888_tile_transform_with_opacity( \
1829 __DES_REGION_ADDR, \
1836 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
1838 (__SRC_TILE_ADDR), \
1845 arm_2dp_tile_transform(NULL, \
1846 (__DES_TILE_ADDR), \
1847 (__DES_REGION_ADDR), \
1848 (NULL,##__VA_ARGS__)); \
1852#define arm_2d_gray8_tile_transform_with_src_mask( \
1856 __DES_REGION_ADDR, \
1862 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
1864 (__SRC_TILE_ADDR), \
1865 (__SRC_MASK_ADDR), \
1868 (float)(__SCALE)); \
1870 arm_2dp_tile_transform(NULL, \
1871 (__DES_TILE_ADDR), \
1872 (__DES_REGION_ADDR), \
1873 (NULL,##__VA_ARGS__)); \
1876#define arm_2d_rgb565_tile_transform_with_src_mask( \
1880 __DES_REGION_ADDR, \
1886 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
1888 (__SRC_TILE_ADDR), \
1889 (__SRC_MASK_ADDR), \
1892 (float)(__SCALE)); \
1894 arm_2dp_tile_transform(NULL, \
1895 (__DES_TILE_ADDR), \
1896 (__DES_REGION_ADDR), \
1897 (NULL,##__VA_ARGS__)); \
1900#define arm_2d_cccn888_tile_transform_with_src_mask( \
1904 __DES_REGION_ADDR, \
1910 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
1912 (__SRC_TILE_ADDR), \
1913 (__SRC_MASK_ADDR), \
1916 (float)(__SCALE)); \
1918 arm_2dp_tile_transform(NULL, \
1919 (__DES_TILE_ADDR), \
1920 (__DES_REGION_ADDR), \
1921 (NULL,##__VA_ARGS__)); \
1924#define arm_2d_gray8_tile_transform_with_src_mask_and_opacity( \
1928 __DES_REGION_ADDR, \
1935 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
1937 (__SRC_TILE_ADDR), \
1938 (__SRC_MASK_ADDR), \
1944 arm_2dp_tile_transform(NULL, \
1945 (__DES_TILE_ADDR), \
1946 (__DES_REGION_ADDR), \
1947 (NULL,##__VA_ARGS__)); \
1950#define arm_2d_rgb565_tile_transform_with_src_mask_and_opacity( \
1954 __DES_REGION_ADDR, \
1961 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
1963 (__SRC_TILE_ADDR), \
1964 (__SRC_MASK_ADDR), \
1970 arm_2dp_tile_transform(NULL, \
1971 (__DES_TILE_ADDR), \
1972 (__DES_REGION_ADDR), \
1973 (NULL,##__VA_ARGS__)); \
1976#define arm_2d_cccn888_tile_transform_with_src_mask_and_opacity( \
1980 __DES_REGION_ADDR, \
1987 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
1989 (__SRC_TILE_ADDR), \
1990 (__SRC_MASK_ADDR), \
1996 arm_2dp_tile_transform(NULL, \
1997 (__DES_TILE_ADDR), \
1998 (__DES_REGION_ADDR), \
1999 (NULL,##__VA_ARGS__)); \
2005#define arm_2d_gray8_tile_scaling_prepare(__SRC_TILE_ADDR, \
2009 arm_2dp_gray8_tile_transform_prepare( NULL, \
2010 (__SRC_TILE_ADDR), \
2016#define arm_2d_rgb565_tile_scaling_prepare(__SRC_TILE_ADDR, \
2020 arm_2dp_rgb565_tile_transform_prepare( NULL, \
2021 (__SRC_TILE_ADDR), \
2027#define arm_2d_rgb888_tile_scaling_prepare(__SRC_TILE_ADDR, \
2031 arm_2dp_cccn888_tile_transform_prepare( NULL, \
2032 (__SRC_TILE_ADDR), \
2040#define arm_2d_gray8_tile_scaling_with_opacity_prepare( \
2046 arm_2dp_gray8_tile_transform_with_opacity_prepare( NULL, \
2047 (__SRC_TILE_ADDR), \
2054#define arm_2d_rgb565_tile_scaling_with_opacity_prepare( \
2060 arm_2dp_rgb565_tile_transform_with_opacity_prepare( NULL, \
2061 (__SRC_TILE_ADDR), \
2069#define arm_2d_rgb888_tile_scaling_with_opacity_prepare( \
2075 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
2076 (__SRC_TILE_ADDR), \
2083#define arm_2d_cccn888_tile_scaling_with_opacity_prepare( \
2089 arm_2dp_cccn888_tile_transform_with_opacity_prepare( NULL, \
2090 (__SRC_TILE_ADDR), \
2097#define arm_2d_gray8_tile_scaling_with_src_mask_prepare( \
2102 arm_2dp_gray8_tile_transform_with_src_mask_prepare( NULL, \
2103 (__SRC_TILE_ADDR), \
2104 (__SRC_MASK_ADDR), \
2109#define arm_2d_rgb565_tile_scaling_with_src_mask_prepare( \
2114 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( NULL, \
2115 (__SRC_TILE_ADDR), \
2116 (__SRC_MASK_ADDR), \
2121#define arm_2d_cccn888_tile_scaling_with_src_mask_prepare( \
2126 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( NULL, \
2127 (__SRC_TILE_ADDR), \
2128 (__SRC_MASK_ADDR), \
2133#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity_prepare( \
2139 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2141 (__SRC_TILE_ADDR), \
2142 (__SRC_MASK_ADDR), \
2148#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity_prepare( \
2154 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2156 (__SRC_TILE_ADDR), \
2157 (__SRC_MASK_ADDR), \
2163#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity_prepare( \
2169 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2171 (__SRC_TILE_ADDR), \
2172 (__SRC_MASK_ADDR), \
2178#define arm_2d_tile_scale( __DES_TILE_ADDR, \
2179 __DES_REGION_ADDR, \
2180 __DES_CENTRE_ADDR) \
2181 arm_2dp_tile_transform(NULL, \
2182 (__DES_TILE_ADDR), \
2183 (__DES_REGION_ADDR), \
2184 (__DES_CENTRE_ADDR))
2194#define arm_2dp_gray8_tile_scaling( __CB_ADDR, \
2197 __DES_REGION_ADDR, \
2202 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2203 arm_2dp_gray8_tile_transform_prepare( \
2205 (__SRC_TILE_ADDR), \
2211 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2212 (__DES_TILE_ADDR), \
2213 (__DES_REGION_ADDR), \
2214 (NULL,##__VA_ARGS__)); \
2217#define arm_2dp_rgb565_tile_scaling( __CB_ADDR, \
2220 __DES_REGION_ADDR, \
2225 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2226 arm_2dp_rgb565_tile_transform_prepare( \
2228 (__SRC_TILE_ADDR), \
2234 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2235 (__DES_TILE_ADDR), \
2236 (__DES_REGION_ADDR), \
2237 (NULL,##__VA_ARGS__)); \
2241#define arm_2dp_cccn888_tile_scaling( __CB_ADDR, \
2244 __DES_REGION_ADDR, \
2248 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2249 arm_2dp_cccn888_tile_transform_prepare( \
2251 (__SRC_TILE_ADDR), \
2257 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2258 (__DES_TILE_ADDR), \
2259 (__DES_REGION_ADDR), \
2260 (NULL,##__VA_ARGS__)); \
2263#define arm_2dp_gray8_tile_scaling_with_opacity( \
2267 __DES_REGION_ADDR, \
2272 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2273 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
2275 (__SRC_TILE_ADDR), \
2282 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2283 (__DES_TILE_ADDR), \
2284 (__DES_REGION_ADDR), \
2285 (NULL,##__VA_ARGS__)); \
2288#define arm_2dp_rgb565_tile_scaling_with_opacity( \
2292 __DES_REGION_ADDR, \
2297 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2298 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
2300 (__SRC_TILE_ADDR), \
2307 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2308 (__DES_TILE_ADDR), \
2309 (__DES_REGION_ADDR), \
2310 (NULL,##__VA_ARGS__)); \
2313#define arm_2dp_rgb888_tile_scaling_with_opacity( \
2317 __DES_REGION_ADDR, \
2322 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2323 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
2325 (__SRC_TILE_ADDR), \
2332 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2333 (__DES_TILE_ADDR), \
2334 (__DES_REGION_ADDR), \
2335 (NULL,##__VA_ARGS__)); \
2338#define arm_2dp_cccn888_tile_scaling_with_opacity( \
2342 __DES_REGION_ADDR, \
2347 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2348 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
2350 (__SRC_TILE_ADDR), \
2357 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2358 (__DES_TILE_ADDR), \
2359 (__DES_REGION_ADDR), \
2360 (NULL,##__VA_ARGS__)); \
2364#define arm_2dp_gray8_tile_scaling_with_src_mask( \
2369 __DES_REGION_ADDR, \
2373 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2374 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2376 (__SRC_TILE_ADDR), \
2377 (__SRC_MASK_ADDR), \
2382 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2383 (__DES_TILE_ADDR), \
2384 (__DES_REGION_ADDR), \
2385 (NULL,##__VA_ARGS__)); \
2388#define arm_2dp_rgb565_tile_scaling_with_src_mask( \
2393 __DES_REGION_ADDR, \
2397 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2398 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2400 (__SRC_TILE_ADDR), \
2401 (__SRC_MASK_ADDR), \
2406 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2407 (__DES_TILE_ADDR), \
2408 (__DES_REGION_ADDR), \
2409 (NULL,##__VA_ARGS__)); \
2412#define arm_2dp_cccn888_tile_scaling_with_src_mask( \
2417 __DES_REGION_ADDR, \
2421 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2422 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2424 (__SRC_TILE_ADDR), \
2425 (__SRC_MASK_ADDR), \
2430 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2431 (__DES_TILE_ADDR), \
2432 (__DES_REGION_ADDR), \
2433 (NULL,##__VA_ARGS__)); \
2436#define arm_2dp_gray8_tile_scaling_with_src_mask_and_opacity( \
2441 __DES_REGION_ADDR, \
2446 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2447 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2449 (__SRC_TILE_ADDR), \
2450 (__SRC_MASK_ADDR), \
2456 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2457 (__DES_TILE_ADDR), \
2458 (__DES_REGION_ADDR), \
2459 (NULL,##__VA_ARGS__)); \
2462#define arm_2dp_rgb565_tile_scaling_with_src_mask_and_opacity( \
2467 __DES_REGION_ADDR, \
2472 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2473 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2475 (__SRC_TILE_ADDR), \
2476 (__SRC_MASK_ADDR), \
2482 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2483 (__DES_TILE_ADDR), \
2484 (__DES_REGION_ADDR), \
2485 (NULL,##__VA_ARGS__)); \
2488#define arm_2dp_cccn888_tile_scaling_with_src_mask_and_opacity( \
2493 __DES_REGION_ADDR, \
2498 ({assert(NULL != (__CB_ADDR)); if (bIsNewFrame) { \
2499 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2501 (__SRC_TILE_ADDR), \
2502 (__SRC_MASK_ADDR), \
2508 arm_2dp_tile_transform((arm_2d_op_trans_t *)(__CB_ADDR), \
2509 (__DES_TILE_ADDR), \
2510 (__DES_REGION_ADDR), \
2511 (NULL,##__VA_ARGS__)); \
2514#define arm_2d_gray8_tile_scaling( \
2517 __DES_REGION_ADDR, \
2520 __MSK_COLOUR, ...) \
2522 arm_2dp_gray8_tile_transform_prepare( \
2524 (__SRC_TILE_ADDR), \
2530 arm_2dp_tile_transform(NULL, \
2531 (__DES_TILE_ADDR), \
2532 (__DES_REGION_ADDR), \
2533 (NULL,##__VA_ARGS__)); \
2536#define arm_2d_rgb565_tile_scaling( \
2539 __DES_REGION_ADDR, \
2542 __MSK_COLOUR, ...) \
2544 arm_2dp_rgb565_tile_transform_prepare( \
2546 (__SRC_TILE_ADDR), \
2552 arm_2dp_tile_transform(NULL, \
2553 (__DES_TILE_ADDR), \
2554 (__DES_REGION_ADDR), \
2555 (NULL,##__VA_ARGS__)); \
2559#define arm_2d_rgb888_tile_scaling( \
2562 __DES_REGION_ADDR, \
2565 __MSK_COLOUR, ...) \
2567 arm_2dp_cccn888_tile_transform_prepare( \
2569 (__SRC_TILE_ADDR), \
2575 arm_2dp_tile_transform(NULL, \
2576 (__DES_TILE_ADDR), \
2577 (__DES_REGION_ADDR), \
2578 (NULL,##__VA_ARGS__)); \
2581#define arm_2d_gray8_tile_scaling_with_opacity( \
2584 __DES_REGION_ADDR, \
2590 arm_2dp_gray8_tile_transform_with_opacity_prepare( \
2592 (__SRC_TILE_ADDR), \
2599 arm_2dp_tile_transform(NULL, \
2600 (__DES_TILE_ADDR), \
2601 (__DES_REGION_ADDR), \
2602 (NULL,##__VA_ARGS__)); \
2606#define arm_2d_rgb565_tile_scaling_with_opacity( \
2609 __DES_REGION_ADDR, \
2615 arm_2dp_rgb565_tile_transform_with_opacity_prepare( \
2617 (__SRC_TILE_ADDR), \
2624 arm_2dp_tile_transform(NULL, \
2625 (__DES_TILE_ADDR), \
2626 (__DES_REGION_ADDR), \
2627 (NULL,##__VA_ARGS__)); \
2632#define arm_2d_rgb888_tile_scaling_with_opacity( \
2635 __DES_REGION_ADDR, \
2641 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
2643 (__SRC_TILE_ADDR), \
2650 arm_2dp_tile_transform(NULL, \
2651 (__DES_TILE_ADDR), \
2652 (__DES_REGION_ADDR), \
2653 (NULL,##__VA_ARGS__)); \
2656#define arm_2d_cccn888_tile_scaling_with_opacity( \
2659 __DES_REGION_ADDR, \
2665 arm_2dp_cccn888_tile_transform_with_opacity_prepare( \
2667 (__SRC_TILE_ADDR), \
2674 arm_2dp_tile_transform(NULL, \
2675 (__DES_TILE_ADDR), \
2676 (__DES_REGION_ADDR), \
2677 (NULL,##__VA_ARGS__)); \
2680#define arm_2d_gray8_tile_scaling_with_src_mask( \
2684 __DES_REGION_ADDR, \
2689 arm_2dp_gray8_tile_transform_with_src_mask_prepare( \
2691 (__SRC_TILE_ADDR), \
2692 (__SRC_MASK_ADDR), \
2697 arm_2dp_tile_transform(NULL, \
2698 (__DES_TILE_ADDR), \
2699 (__DES_REGION_ADDR), \
2700 (NULL,##__VA_ARGS__)); \
2703#define arm_2d_rgb565_tile_scaling_with_src_mask( \
2707 __DES_REGION_ADDR, \
2712 arm_2dp_rgb565_tile_transform_with_src_mask_prepare( \
2714 (__SRC_TILE_ADDR), \
2715 (__SRC_MASK_ADDR), \
2720 arm_2dp_tile_transform(NULL, \
2721 (__DES_TILE_ADDR), \
2722 (__DES_REGION_ADDR), \
2723 (NULL,##__VA_ARGS__)); \
2726#define arm_2d_cccn888_tile_scaling_with_src_mask( \
2730 __DES_REGION_ADDR, \
2735 arm_2dp_cccn888_tile_transform_with_src_mask_prepare( \
2737 (__SRC_TILE_ADDR), \
2738 (__SRC_MASK_ADDR), \
2743 arm_2dp_tile_transform(NULL, \
2744 (__DES_TILE_ADDR), \
2745 (__DES_REGION_ADDR), \
2746 (NULL,##__VA_ARGS__)); \
2749#define arm_2d_gray8_tile_scaling_with_src_mask_and_opacity( \
2753 __DES_REGION_ADDR, \
2759 arm_2dp_gray8_tile_transform_with_src_mask_and_opacity_prepare( \
2761 (__SRC_TILE_ADDR), \
2762 (__SRC_MASK_ADDR), \
2768 arm_2dp_tile_transform(NULL, \
2769 (__DES_TILE_ADDR), \
2770 (__DES_REGION_ADDR), \
2771 (NULL,##__VA_ARGS__)); \
2774#define arm_2d_rgb565_tile_scaling_with_src_mask_and_opacity( \
2778 __DES_REGION_ADDR, \
2784 arm_2dp_rgb565_tile_transform_with_src_mask_and_opacity_prepare( \
2786 (__SRC_TILE_ADDR), \
2787 (__SRC_MASK_ADDR), \
2793 arm_2dp_tile_transform(NULL, \
2794 (__DES_TILE_ADDR), \
2795 (__DES_REGION_ADDR), \
2796 (NULL,##__VA_ARGS__)); \
2799#define arm_2d_cccn888_tile_scaling_with_src_mask_and_opacity( \
2803 __DES_REGION_ADDR, \
2809 arm_2dp_cccn888_tile_transform_with_src_mask_and_opacity_prepare( \
2811 (__SRC_TILE_ADDR), \
2812 (__SRC_MASK_ADDR), \
2818 arm_2dp_tile_transform(NULL, \
2819 (__DES_TILE_ADDR), \
2820 (__DES_REGION_ADDR), \
2821 (NULL,##__VA_ARGS__)); \
2976 uint_fast8_t chFillColour);
2996 uint_fast16_t hwFillColour);
3016 uint32_t wFillColour);
3037 uint_fast8_t chFillColour,
3038 uint_fast8_t chRatio);
3059 uint_fast16_t hwFillColour,
3060 uint_fast8_t chRatio);
3081 uint32_t wFillColour,
3082 uint_fast8_t chRatio);
3164 uint_fast8_t chOpacity);
3186 uint_fast8_t chOpacity);
3208 uint_fast8_t chOpacity);
3231 uint_fast8_t chFillColour,
3232 uint_fast8_t chOpacity);
3254 uint_fast16_t hwFillColour,
3255 uint_fast8_t chOpacity);
3277 uint32_t wFillColour,
3278 uint_fast8_t chOpacity);
3297#if defined(__clang__)
3298# pragma clang diagnostic pop