Arm-2D  
2D Image Processing Library for Cortex-M Processors
 
Loading...
Searching...
No Matches
arm_2d_alpha_blending.h
1/*
2 * Copyright (C) 2022 Arm Limited or its affiliates. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19/* ----------------------------------------------------------------------
20 * Project: Arm-2D Library
21 * Title: #include "arm_2d.h"
22 * Description: Public header file to contain the alpha related APIs
23 *
24 * $Date: 07. Oct 2022
25 * $Revision: V.1.3.0
26 *
27 * Target Processor: Cortex-M cores
28 * -------------------------------------------------------------------- */
29
30#ifndef __ARM_2D_ALPHA_BLENDING_H__
31#define __ARM_2D_ALPHA_BLENDING_H__
32
33/*============================ INCLUDES ======================================*/
34
35#include "arm_2d_types.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#if defined(__clang__)
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 "-Wmissing-declarations"
46# pragma clang diagnostic ignored "-Wpadded"
47# pragma clang diagnostic ignored "-Wc11-extensions"
48#endif
49
50/*============================ MACROS ========================================*/
51
52/*!
53 * \addtogroup Deprecated
54 * @{
55 */
56#define arm_2d_rgb565_fill_colour_with_alpha \
57 arm_2d_rgb565_fill_colour_with_opacity
58
59#define arm_2d_rgb888_fill_colour_with_alpha \
60 arm_2d_rgb888_fill_colour_with_opacity
61
62#define arm_2d_cccn888_fill_colour_with_alpha \
63 arm_2d_cccn888_fill_colour_with_opacity
64
65#define arm_2d_gray8_fill_colour_with_alpha_mask \
66 arm_2d_gray8_fill_colour_with_mask
67
68#define arm_2d_rgb565_fill_colour_with_alpha_mask \
69 arm_2d_rgb565_fill_colour_with_mask
70
71#define arm_2d_rgb888_fill_colour_with_alpha_mask \
72 arm_2d_rgb888_fill_colour_with_mask
73
74#define arm_2d_cccn888_fill_colour_with_alpha_mask \
75 arm_2d_cccn888_fill_colour_with_mask
76
77#define arm_2d_gray8_fill_colour_with_alpha_mask_and_opacity \
78 arm_2d_gray8_fill_colour_with_mask_and_opacity
79
80#define arm_2d_rgb565_fill_colour_with_alpha_mask_and_opacity \
81 arm_2d_rgb565_fill_colour_with_mask_and_opacity
82
83#define arm_2d_rgb888_fill_colour_with_alpha_mask_and_opacity \
84 arm_2d_rgb888_fill_colour_with_mask_and_opacity
85
86#define arm_2d_cccn888_fill_colour_with_alpha_mask_and_opacity \
87 arm_2d_cccn888_fill_colour_with_mask_and_opacity
88
89#define arm_2d_gray8_alpha_blending_with_colour_masking \
90 arm_2d_gray8_alpha_blending_with_colour_keying
91
92#define arm_2d_rgb565_alpha_blending_with_colour_masking \
93 arm_2d_rgb565_alpha_blending_with_colour_keying
94
95#define arm_2d_rgb888_alpha_blending_with_colour_masking \
96 arm_2d_rgb888_alpha_blending_with_colour_keying
97
98#define arm_2d_cccn888_alpha_blending_with_colour_masking \
99 arm_2d_cccn888_alpha_blending_with_colour_keying
100
101#define arm_2d_gray8_tile_copy_with_alpha_masks \
102 arm_2d_gray8_tile_copy_with_masks
103
104#define arm_2d_rgb565_tile_copy_with_alpha_masks \
105 arm_2d_rgb565_tile_copy_with_masks
106
107#define arm_2d_cccn888_tile_copy_with_alpha_masks \
108 arm_2d_cccn888_tile_copy_with_masks
109
110#define arm_2d_rgb888_tile_copy_with_alpha_mask \
111 arm_2d_rgb888_tile_copy_with_masks
112
113/*! @} */
114
115/*!
116 * \addtogroup gAlpha 4 Alpha Blending Operations
117 * @{
118 */
119
120/*============================ MACROFIED FUNCTIONS ===========================*/
121
122#define arm_2d_gray8_alpha_blending( __SRC_ADDR, /* source tile address */ \
123 __DES_ADDR, /* target tile address */ \
124 __REGION_ADDR,/* region address */ \
125 __ALPHA) /* alpha */ \
126 arm_2dp_gray8_alpha_blending( NULL, \
127 (__SRC_ADDR), \
128 (__DES_ADDR), \
129 (__REGION_ADDR), \
130 (__ALPHA))
131
132#define arm_2d_rgb565_alpha_blending( __SRC_ADDR, /* source tile address */ \
133 __DES_ADDR, /* target tile address */ \
134 __REGION_ADDR,/* region address */ \
135 __ALPHA) /* alpha */ \
136 arm_2dp_rgb565_alpha_blending( NULL, \
137 (__SRC_ADDR), \
138 (__DES_ADDR), \
139 (__REGION_ADDR), \
140 (__ALPHA))
141
142#define arm_2d_rgb888_alpha_blending( __SRC_ADDR, /* source tile address */ \
143 __DES_ADDR, /* target tile address */ \
144 __REGION_ADDR,/* region address */ \
145 __ALPHA) /* alpha */ \
146 arm_2dp_cccn888_alpha_blending( NULL, \
147 (__SRC_ADDR), \
148 (__DES_ADDR), \
149 (__REGION_ADDR), \
150 (__ALPHA))
151
152#define arm_2d_cccn888_alpha_blending( __SRC_ADDR, /* source tile address */\
153 __DES_ADDR, /* target tile address */ \
154 __REGION_ADDR,/* region address */ \
155 __ALPHA) /* alpha */ \
156 arm_2dp_cccn888_alpha_blending( NULL, \
157 (__SRC_ADDR), \
158 (__DES_ADDR), \
159 (__REGION_ADDR), \
160 (__ALPHA))
161
162#define arm_2dp_gray8_tile_copy_with_opacity arm_2dp_gray8_alpha_blending
163#define arm_2dp_rgb565_tile_copy_with_opacity arm_2dp_rgb565_alpha_blending
164#define arm_2dp_cccn888_tile_copy_with_opacity arm_2dp_cccn888_alpha_blending
165
166#define arm_2d_gray8_tile_copy_with_opacity( \
167 __SRC_ADDR, /* source tile address */ \
168 __DES_ADDR, /* target tile address */ \
169 __REGION_ADDR,/* region address */ \
170 __ALPHA) /* alpha */ \
171 arm_2dp_gray8_alpha_blending( NULL, \
172 (__SRC_ADDR), \
173 (__DES_ADDR), \
174 (__REGION_ADDR), \
175 (__ALPHA))
176
177#define arm_2d_rgb565_tile_copy_with_opacity( \
178 __SRC_ADDR, /* source tile address */ \
179 __DES_ADDR, /* target tile address */ \
180 __REGION_ADDR,/* region address */ \
181 __ALPHA) /* alpha */ \
182 arm_2dp_rgb565_alpha_blending( NULL, \
183 (__SRC_ADDR), \
184 (__DES_ADDR), \
185 (__REGION_ADDR), \
186 (__ALPHA))
187
188#define arm_2d_rgb888_tile_copy_with_opacity( \
189 __SRC_ADDR, /* source tile address */ \
190 __DES_ADDR, /* target tile address */ \
191 __REGION_ADDR,/* region address */ \
192 __ALPHA) /* alpha */ \
193 arm_2dp_cccn888_alpha_blending( NULL, \
194 (__SRC_ADDR), \
195 (__DES_ADDR), \
196 (__REGION_ADDR), \
197 (__ALPHA))
198
199#define arm_2d_cccn888_tile_copy_with_opacity( \
200 __SRC_ADDR, /* source tile address */ \
201 __DES_ADDR, /* target tile address */ \
202 __REGION_ADDR,/* region address */ \
203 __ALPHA) /* alpha */ \
204 arm_2dp_cccn888_alpha_blending( NULL, \
205 (__SRC_ADDR), \
206 (__DES_ADDR), \
207 (__REGION_ADDR), \
208 (__ALPHA))
209
210
211#define arm_2d_gray8_fill_colour_with_opacity( \
212 __DES_ADDR, /* target tile address */ \
213 __REGION_ADDR,/* region address */ \
214 __COLOUR, /* colour */ \
215 __ALPHA) /* alpha */ \
216 arm_2dp_gray8_fill_colour_with_opacity( NULL, \
217 (__DES_ADDR), \
218 (__REGION_ADDR), \
219 (__COLOUR), \
220 (__ALPHA))
221
222#define arm_2d_rgb565_fill_colour_with_opacity( \
223 __DES_ADDR, /* target tile address */ \
224 __REGION_ADDR,/* region address */ \
225 __COLOUR, /* colour */ \
226 __ALPHA) /* alpha */ \
227 arm_2dp_rgb565_fill_colour_with_opacity( NULL, \
228 (__DES_ADDR), \
229 (__REGION_ADDR), \
230 (__COLOUR), \
231 (__ALPHA))
232
233#define arm_2d_rgb888_fill_colour_with_opacity( \
234 __DES_ADDR, /* target tile address */ \
235 __REGION_ADDR,/* region address */ \
236 __COLOUR, /* colour */ \
237 __ALPHA) /* alpha */ \
238 arm_2dp_cccn888_fill_colour_with_opacity( NULL, \
239 (__DES_ADDR), \
240 (__REGION_ADDR), \
241 (arm_2d_color_cccn888_t){(__COLOUR).tValue}, \
242 (__ALPHA))
243
244
245#define arm_2d_cccn888_fill_colour_with_opacity( \
246 __DES_ADDR, /* target tile address */ \
247 __REGION_ADDR,/* region address */ \
248 __COLOUR, /* colour */ \
249 __ALPHA) /* alpha */ \
250 arm_2dp_cccn888_fill_colour_with_opacity( NULL, \
251 (__DES_ADDR), \
252 (__REGION_ADDR), \
253 (__COLOUR), \
254 (__ALPHA))
255
256#define arm_2d_gray8_fill_colour_with_a2_mask( \
257 __TARGET_ADDR, /* target tile address*/ \
258 __REGION_ADDR, /* target region address*/\
259 __ALPHA_ADDR, /* alpha tile address */ \
260 __COLOUR) /* colour */ \
261 arm_2dp_gray8_fill_colour_with_a2_mask( \
262 NULL, \
263 (__TARGET_ADDR), \
264 (__REGION_ADDR), \
265 (__ALPHA_ADDR), \
266 (__COLOUR))
267
268#define arm_2d_rgb565_fill_colour_with_a2_mask( \
269 __TARGET_ADDR, /* target tile address*/ \
270 __REGION_ADDR, /* target region address*/\
271 __ALPHA_ADDR, /* alpha tile address */ \
272 __COLOUR) /* colour */ \
273 arm_2dp_rgb565_fill_colour_with_a2_mask( \
274 NULL, \
275 (__TARGET_ADDR), \
276 (__REGION_ADDR), \
277 (__ALPHA_ADDR), \
278 (__COLOUR))
279
280#define arm_2d_rgb888_fill_colour_with_a2_mask( \
281 __TARGET_ADDR, /* target tile address*/ \
282 __REGION_ADDR, /* target region address*/\
283 __ALPHA_ADDR, /* alpha tile address */ \
284 __COLOUR) /* colour */ \
285 arm_2dp_cccn888_fill_colour_with_a2_mask( \
286 NULL, \
287 (__TARGET_ADDR), \
288 (__REGION_ADDR), \
289 (__ALPHA_ADDR), \
290 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
291
292#define arm_2d_cccn888_fill_colour_with_a2_mask( \
293 __TARGET_ADDR, /* target tile address*/ \
294 __REGION_ADDR, /* target region address*/\
295 __ALPHA_ADDR, /* alpha tile address */ \
296 __COLOUR) /* colour */ \
297 arm_2dp_cccn888_fill_colour_with_a2_mask( \
298 NULL, \
299 (__TARGET_ADDR), \
300 (__REGION_ADDR), \
301 (__ALPHA_ADDR), \
302 (__COLOUR))
303
304#define arm_2d_gray8_fill_colour_with_a4_mask( \
305 __TARGET_ADDR, /* target tile address*/ \
306 __REGION_ADDR, /* target region address*/\
307 __ALPHA_ADDR, /* alpha tile address */ \
308 __COLOUR) /* colour */ \
309 arm_2dp_gray8_fill_colour_with_a4_mask( \
310 NULL, \
311 (__TARGET_ADDR), \
312 (__REGION_ADDR), \
313 (__ALPHA_ADDR), \
314 (__COLOUR))
315
316#define arm_2d_rgb565_fill_colour_with_a4_mask( \
317 __TARGET_ADDR, /* target tile address*/ \
318 __REGION_ADDR, /* target region address*/\
319 __ALPHA_ADDR, /* alpha tile address */ \
320 __COLOUR) /* colour */ \
321 arm_2dp_rgb565_fill_colour_with_a4_mask( \
322 NULL, \
323 (__TARGET_ADDR), \
324 (__REGION_ADDR), \
325 (__ALPHA_ADDR), \
326 (__COLOUR))
327
328#define arm_2d_rgb888_fill_colour_with_a4_mask( \
329 __TARGET_ADDR, /* target tile address*/ \
330 __REGION_ADDR, /* target region address*/\
331 __ALPHA_ADDR, /* alpha tile address */ \
332 __COLOUR) /* colour */ \
333 arm_2dp_cccn888_fill_colour_with_a4_mask( \
334 NULL, \
335 (__TARGET_ADDR), \
336 (__REGION_ADDR), \
337 (__ALPHA_ADDR), \
338 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
339
340#define arm_2d_cccn888_fill_colour_with_a4_mask( \
341 __TARGET_ADDR, /* target tile address*/ \
342 __REGION_ADDR, /* target region address*/\
343 __ALPHA_ADDR, /* alpha tile address */ \
344 __COLOUR) /* colour */ \
345 arm_2dp_cccn888_fill_colour_with_a4_mask( \
346 NULL, \
347 (__TARGET_ADDR), \
348 (__REGION_ADDR), \
349 (__ALPHA_ADDR), \
350 (__COLOUR))
351
352#define arm_2d_gray8_fill_colour_with_mask( \
353 __TARGET_ADDR, /* target tile address*/ \
354 __REGION_ADDR, /* target region address*/\
355 __ALPHA_ADDR, /* alpha tile address */ \
356 __COLOUR) /* colour */ \
357 arm_2dp_gray8_fill_colour_with_mask( \
358 NULL, \
359 (__TARGET_ADDR), \
360 (__REGION_ADDR), \
361 (__ALPHA_ADDR), \
362 (__COLOUR))
363
364#define arm_2d_rgb565_fill_colour_with_mask( \
365 __TARGET_ADDR, /* target tile address*/ \
366 __REGION_ADDR, /* target region address*/\
367 __ALPHA_ADDR, /* alpha tile address */ \
368 __COLOUR) /* colour */ \
369 arm_2dp_rgb565_fill_colour_with_mask( \
370 NULL, \
371 (__TARGET_ADDR), \
372 (__REGION_ADDR), \
373 (__ALPHA_ADDR), \
374 (__COLOUR))
375
376#define arm_2d_rgb888_fill_colour_with_mask( \
377 __TARGET_ADDR, /* target tile address*/ \
378 __REGION_ADDR, /* target region address*/\
379 __ALPHA_ADDR, /* alpha tile address */ \
380 __COLOUR) /* colour */ \
381 arm_2dp_cccn888_fill_colour_with_mask( \
382 NULL, \
383 (__TARGET_ADDR), \
384 (__REGION_ADDR), \
385 (__ALPHA_ADDR), \
386 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
387
388#define arm_2d_cccn888_fill_colour_with_mask( \
389 __TARGET_ADDR, /* target tile address*/ \
390 __REGION_ADDR, /* target region address*/\
391 __ALPHA_ADDR, /* alpha tile address */ \
392 __COLOUR) /* colour */ \
393 arm_2dp_cccn888_fill_colour_with_mask( \
394 NULL, \
395 (__TARGET_ADDR), \
396 (__REGION_ADDR), \
397 (__ALPHA_ADDR), \
398 (__COLOUR))
399
400#define arm_2d_gray8_fill_colour_with_a8_mask \
401 arm_2d_gray8_fill_colour_with_mask
402#define arm_2d_rgb565_fill_colour_with_a8_mask \
403 arm_2d_rgb565_fill_colour_with_mask
404#define arm_2d_rgb888_fill_colour_with_a8_mask \
405 arm_2d_rgb888_fill_colour_with_mask
406#define arm_2d_cccn888_fill_colour_with_a8_mask \
407 arm_2d_cccn888_fill_colour_with_mask
408
409#define arm_2d_gray8_fill_colour_with_a2_mask_and_opacity( \
410 __TARGET_ADDR, /* target tile address*/ \
411 __REGION_ADDR, /* target region address*/\
412 __ALPHA_ADDR, /* alpha tile address */ \
413 __COLOUR, /* colour */ \
414 __OPACITY) \
415 arm_2dp_gray8_fill_colour_with_a2_mask_and_opacity( \
416 NULL, \
417 (__TARGET_ADDR), \
418 (__REGION_ADDR), \
419 (__ALPHA_ADDR), \
420 (__COLOUR), \
421 (__OPACITY))
422
423#define arm_2d_rgb565_fill_colour_with_a2_mask_and_opacity( \
424 __TARGET_ADDR, /* target tile address*/ \
425 __REGION_ADDR, /* target region address*/\
426 __ALPHA_ADDR, /* alpha tile address */ \
427 __COLOUR, /* colour */ \
428 __OPACITY) \
429 arm_2dp_rgb565_fill_colour_with_a2_mask_and_opacity( \
430 NULL, \
431 (__TARGET_ADDR), \
432 (__REGION_ADDR), \
433 (__ALPHA_ADDR), \
434 (__COLOUR), \
435 (__OPACITY))
436
437#define arm_2d_rgb888_fill_colour_with_a2_mask_and_opacity( \
438 __TARGET_ADDR, /* target tile address*/ \
439 __REGION_ADDR, /* target region address*/\
440 __ALPHA_ADDR, /* alpha tile address */ \
441 __COLOUR, /* colour */ \
442 __OPACITY) \
443 arm_2dp_cccn888_fill_colour_with_a2_mask_and_opacity( \
444 NULL, \
445 (__TARGET_ADDR), \
446 (__REGION_ADDR), \
447 (__ALPHA_ADDR), \
448 (arm_2d_color_cccn888_t){(__COLOUR).tValue}, \
449 (__OPACITY))
450
451#define arm_2d_cccn888_fill_colour_with_a2_mask_and_opacity( \
452 __TARGET_ADDR, /* target tile address*/ \
453 __REGION_ADDR, /* target region address*/\
454 __ALPHA_ADDR, /* alpha tile address */ \
455 __COLOUR, /* colour */ \
456 __OPACITY) \
457 arm_2dp_cccn888_fill_colour_with_a2_mask_and_opacity( \
458 NULL, \
459 (__TARGET_ADDR), \
460 (__REGION_ADDR), \
461 (__ALPHA_ADDR), \
462 (__COLOUR), \
463 (__OPACITY))
464
465#define arm_2d_gray8_fill_colour_with_a4_mask_and_opacity( \
466 __TARGET_ADDR, /* target tile address*/ \
467 __REGION_ADDR, /* target region address*/\
468 __ALPHA_ADDR, /* alpha tile address */ \
469 __COLOUR, /* colour */ \
470 __OPACITY) \
471 arm_2dp_gray8_fill_colour_with_a4_mask_and_opacity( \
472 NULL, \
473 (__TARGET_ADDR), \
474 (__REGION_ADDR), \
475 (__ALPHA_ADDR), \
476 (__COLOUR), \
477 (__OPACITY))
478
479#define arm_2d_rgb565_fill_colour_with_a4_mask_and_opacity( \
480 __TARGET_ADDR, /* target tile address*/ \
481 __REGION_ADDR, /* target region address*/\
482 __ALPHA_ADDR, /* alpha tile address */ \
483 __COLOUR, /* colour */ \
484 __OPACITY) \
485 arm_2dp_rgb565_fill_colour_with_a4_mask_and_opacity( \
486 NULL, \
487 (__TARGET_ADDR), \
488 (__REGION_ADDR), \
489 (__ALPHA_ADDR), \
490 (__COLOUR), \
491 (__OPACITY))
492
493#define arm_2d_rgb888_fill_colour_with_a4_mask_and_opacity( \
494 __TARGET_ADDR, /* target tile address*/ \
495 __REGION_ADDR, /* target region address*/\
496 __ALPHA_ADDR, /* alpha tile address */ \
497 __COLOUR, /* colour */ \
498 __OPACITY) \
499 arm_2dp_cccn888_fill_colour_with_a4_mask_and_opacity( \
500 NULL, \
501 (__TARGET_ADDR), \
502 (__REGION_ADDR), \
503 (__ALPHA_ADDR), \
504 (arm_2d_color_cccn888_t){(__COLOUR).tValue}, \
505 (__OPACITY))
506
507#define arm_2d_cccn888_fill_colour_with_a4_mask_and_opacity( \
508 __TARGET_ADDR, /* target tile address*/ \
509 __REGION_ADDR, /* target region address*/\
510 __ALPHA_ADDR, /* alpha tile address */ \
511 __COLOUR, /* colour */ \
512 __OPACITY) \
513 arm_2dp_cccn888_fill_colour_with_a4_mask_and_opacity( \
514 NULL, \
515 (__TARGET_ADDR), \
516 (__REGION_ADDR), \
517 (__ALPHA_ADDR), \
518 (__COLOUR), \
519 (__OPACITY))
520
521#define arm_2d_gray8_fill_colour_with_mask_and_opacity( \
522 __TARGET_ADDR, /* target tile address*/ \
523 __REGION_ADDR, /* target region address*/\
524 __ALPHA_ADDR, /* alpha tile address */ \
525 __COLOUR, /* colour */ \
526 __OPACITY) \
527 arm_2dp_gray8_fill_colour_with_mask_and_opacity( \
528 NULL, \
529 (__TARGET_ADDR), \
530 (__REGION_ADDR), \
531 (__ALPHA_ADDR), \
532 (__COLOUR), \
533 (__OPACITY))
534
535#define arm_2d_rgb565_fill_colour_with_mask_and_opacity( \
536 __TARGET_ADDR, /* target tile address*/ \
537 __REGION_ADDR, /* target region address*/\
538 __ALPHA_ADDR, /* alpha tile address */ \
539 __COLOUR, /* colour */ \
540 __OPACITY) \
541 arm_2dp_rgb565_fill_colour_with_mask_and_opacity( \
542 NULL, \
543 (__TARGET_ADDR), \
544 (__REGION_ADDR), \
545 (__ALPHA_ADDR), \
546 (__COLOUR), \
547 (__OPACITY))
548
549#define arm_2d_rgb888_fill_colour_with_mask_and_opacity( \
550 __TARGET_ADDR, /* target tile address*/ \
551 __REGION_ADDR, /* target region address*/\
552 __ALPHA_ADDR, /* alpha tile address */ \
553 __COLOUR, /* colour */ \
554 __OPACITY) \
555 arm_2dp_cccn888_fill_colour_with_mask_and_opacity( \
556 NULL, \
557 (__TARGET_ADDR), \
558 (__REGION_ADDR), \
559 (__ALPHA_ADDR), \
560 (arm_2d_color_cccn888_t){(__COLOUR).tValue}, \
561 (__OPACITY))
562
563#define arm_2d_cccn888_fill_colour_with_mask_and_opacity( \
564 __TARGET_ADDR, /* target tile address*/ \
565 __REGION_ADDR, /* target region address*/\
566 __ALPHA_ADDR, /* alpha tile address */ \
567 __COLOUR, /* colour */ \
568 __OPACITY) \
569 arm_2dp_cccn888_fill_colour_with_mask_and_opacity( \
570 NULL, \
571 (__TARGET_ADDR), \
572 (__REGION_ADDR), \
573 (__ALPHA_ADDR), \
574 (__COLOUR), \
575 (__OPACITY))
576
577#define arm_2d_gray8_fill_colour_with_a8_mask_and_opacity \
578 arm_2d_gray8_fill_colour_with_mask_and_opacity
579#define arm_2d_rgb565_fill_colour_with_a8_mask_and_opacity \
580 arm_2d_rgb565_fill_colour_with_mask_and_opacity
581#define arm_2d_rgb888_fill_colour_with_a8_mask_and_opacity \
582 arm_2d_rgb888_fill_colour_with_mask_and_opacity
583#define arm_2d_cccn888_fill_colour_with_a8_mask_and_opacity \
584 arm_2d_cccn888_fill_colour_with_mask_and_opacity
585
586#define arm_2d_gray8_alpha_blending_with_colour_keying( \
587 __SRC_ADDR, /* source tile address */ \
588 __DES_ADDR, /* target tile address */ \
589 __REGION_ADDR,/* region address */ \
590 __ALPHA, /* colour */ \
591 __COLOUR) /* alpha */ \
592 arm_2dp_gray8_alpha_blending_with_colour_keying( \
593 NULL, \
594 (__SRC_ADDR), \
595 (__DES_ADDR), \
596 (__REGION_ADDR), \
597 (__ALPHA), \
598 (__COLOUR))
599
600#define arm_2d_rgb565_alpha_blending_with_colour_keying( \
601 __SRC_ADDR, /* source tile address */ \
602 __DES_ADDR, /* target tile address */ \
603 __REGION_ADDR,/* region address */ \
604 __ALPHA, /* colour */ \
605 __COLOUR) /* alpha */ \
606 arm_2dp_rgb565_alpha_blending_with_colour_keying( \
607 NULL, \
608 (__SRC_ADDR), \
609 (__DES_ADDR), \
610 (__REGION_ADDR), \
611 (__ALPHA), \
612 (__COLOUR))
613
614#define arm_2d_rgb888_alpha_blending_with_colour_keying( \
615 __SRC_ADDR, /* source tile address */ \
616 __DES_ADDR, /* target tile address */ \
617 __REGION_ADDR,/* region address */ \
618 __ALPHA, /* colour */ \
619 __COLOUR) /* alpha */ \
620 arm_2dp_cccn888_alpha_blending_with_colour_keying( \
621 NULL, \
622 (__SRC_ADDR), \
623 (__DES_ADDR), \
624 (__REGION_ADDR), \
625 (__ALPHA), \
626 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
627
628#define arm_2d_cccn888_alpha_blending_with_colour_keying( \
629 __SRC_ADDR, /* source tile address */ \
630 __DES_ADDR, /* target tile address */ \
631 __REGION_ADDR,/* region address */ \
632 __ALPHA, /* colour */ \
633 __COLOUR) /* alpha */ \
634 arm_2dp_cccn888_alpha_blending_with_colour_keying( \
635 NULL, \
636 (__SRC_ADDR), \
637 (__DES_ADDR), \
638 (__REGION_ADDR), \
639 (__ALPHA), \
640 (__COLOUR))
641
642
643#define arm_2dp_gray8_tile_copy_with_colour_keying_and_opacity \
644 arm_2dp_gray8_alpha_blending_with_colour_keying
645#define arm_2dp_rgb565_tile_copy_with_colour_keying_and_opacity \
646 arm_2dp_rgb565_alpha_blending_with_colour_keying
647#define arm_2dp_cccn888_tile_copy_with_colour_keying_and_opacity \
648 arm_2dp_cccn888_alpha_blending_with_colour_keying
649
650#define arm_2d_gray8_tile_copy_with_colour_keying_and_opacity( \
651 __SRC_ADDR, /* source tile address */ \
652 __DES_ADDR, /* target tile address */ \
653 __REGION_ADDR,/* region address */ \
654 __ALPHA, /* colour */ \
655 __COLOUR) /* alpha */ \
656 arm_2dp_gray8_alpha_blending_with_colour_keying( \
657 NULL, \
658 (__SRC_ADDR), \
659 (__DES_ADDR), \
660 (__REGION_ADDR), \
661 (__ALPHA), \
662 (__COLOUR))
663
664#define arm_2d_rgb565_tile_copy_with_colour_keying_and_opacity( \
665 __SRC_ADDR, /* source tile address */ \
666 __DES_ADDR, /* target tile address */ \
667 __REGION_ADDR,/* region address */ \
668 __ALPHA, /* colour */ \
669 __COLOUR) /* alpha */ \
670 arm_2dp_rgb565_alpha_blending_with_colour_keying( \
671 NULL, \
672 (__SRC_ADDR), \
673 (__DES_ADDR), \
674 (__REGION_ADDR), \
675 (__ALPHA), \
676 (__COLOUR))
677
678#define arm_2d_rgb888_tile_copy_with_colour_keying_and_opacity( \
679 __SRC_ADDR, /* source tile address */ \
680 __DES_ADDR, /* target tile address */ \
681 __REGION_ADDR,/* region address */ \
682 __ALPHA, /* colour */ \
683 __COLOUR) /* alpha */ \
684 arm_2dp_cccn888_alpha_blending_with_colour_keying( \
685 NULL, \
686 (__SRC_ADDR), \
687 (__DES_ADDR), \
688 (__REGION_ADDR), \
689 (__ALPHA), \
690 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
691
692#define arm_2d_cccn888_tile_copy_with_colour_keying_and_opacity( \
693 __SRC_ADDR, /* source tile address */ \
694 __DES_ADDR, /* target tile address */ \
695 __REGION_ADDR,/* region address */ \
696 __ALPHA, /* colour */ \
697 __COLOUR) /* alpha */ \
698 arm_2dp_cccn888_alpha_blending_with_colour_keying( \
699 NULL, \
700 (__SRC_ADDR), \
701 (__DES_ADDR), \
702 (__REGION_ADDR), \
703 (__ALPHA), \
704 (__COLOUR))
705
706#define arm_2d_gray8_tile_copy_with_masks( \
707 __SRC_ADDR, /* source tile address */ \
708 __SRC_MSK_ADDR, /* source mask address */ \
709 __DES_ADDR, /* target tile address */ \
710 __DES_MSK_ADDR, /* target mask address */ \
711 __REGION, /* region address */ \
712 __MODE) /* copy mode */ \
713 arm_2dp_gray8_tile_copy_with_masks( \
714 NULL, \
715 (__SRC_ADDR), \
716 (__SRC_MSK_ADDR), \
717 (__DES_ADDR), \
718 (__DES_MSK_ADDR), \
719 (__REGION), \
720 (__MODE))
721
722#define arm_2d_rgb565_tile_copy_with_masks( \
723 __SRC_ADDR, /* source tile address */ \
724 __SRC_MSK_ADDR, /* source mask address */ \
725 __DES_ADDR, /* target tile address */ \
726 __DES_MSK_ADDR, /* target mask address */ \
727 __REGION, /* region address */ \
728 __MODE) /* copy mode */ \
729 arm_2dp_rgb565_tile_copy_with_masks( \
730 NULL, \
731 (__SRC_ADDR), \
732 (__SRC_MSK_ADDR), \
733 (__DES_ADDR), \
734 (__DES_MSK_ADDR), \
735 (__REGION), \
736 (__MODE))
737
738#define arm_2d_rgb888_tile_copy_with_masks \
739 arm_2d_cccn888_tile_copy_with_masks
740
741#define arm_2d_cccn888_tile_copy_with_masks( \
742 __SRC_ADDR, /* source tile address */ \
743 __SRC_MSK_ADDR, /* source mask address */ \
744 __DES_ADDR, /* target tile address */ \
745 __DES_MSK_ADDR, /* target mask address */ \
746 __REGION, /* region address */ \
747 __MODE) /* copy mode */ \
748 arm_2dp_cccn888_tile_copy_with_masks( \
749 NULL, \
750 (__SRC_ADDR), \
751 (__SRC_MSK_ADDR), \
752 (__DES_ADDR), \
753 (__DES_MSK_ADDR), \
754 (__REGION), \
755 (__MODE))
756
757#define arm_2d_gray8_tile_copy_with_src_mask( \
758 __SRC_ADDR, /* source tile address */ \
759 __SRC_MSK_ADDR, /* source mask address */ \
760 __DES_ADDR, /* target tile address */ \
761 __REGION, /* region address */ \
762 __MODE) /* copy mode */ \
763 arm_2dp_gray8_tile_copy_with_src_mask( \
764 NULL, \
765 (__SRC_ADDR), \
766 (__SRC_MSK_ADDR), \
767 (__DES_ADDR), \
768 (__REGION), \
769 (__MODE))
770
771
772#define arm_2d_rgb565_tile_copy_with_src_mask( \
773 __SRC_ADDR, /* source tile address */ \
774 __SRC_MSK_ADDR, /* source mask address */ \
775 __DES_ADDR, /* target tile address */ \
776 __REGION, /* region address */ \
777 __MODE) /* copy mode */ \
778 arm_2dp_rgb565_tile_copy_with_src_mask( \
779 NULL, \
780 (__SRC_ADDR), \
781 (__SRC_MSK_ADDR), \
782 (__DES_ADDR), \
783 (__REGION), \
784 (__MODE))
785
786
787#define arm_2d_rgb888_tile_copy_with_src_mask \
788 arm_2d_cccn888_tile_copy_with_src_mask
789
790#define arm_2d_cccn888_tile_copy_with_src_mask( \
791 __SRC_ADDR, /* source tile address */ \
792 __SRC_MSK_ADDR, /* source mask address */ \
793 __DES_ADDR, /* target tile address */ \
794 __REGION, /* region address */ \
795 __MODE) /* copy mode */ \
796 arm_2dp_cccn888_tile_copy_with_src_mask( \
797 NULL, \
798 (__SRC_ADDR), \
799 (__SRC_MSK_ADDR), \
800 (__DES_ADDR), \
801 (__REGION), \
802 (__MODE))
803
804#define arm_2d_gray8_tile_copy_with_src_mask_only( \
805 __SRC_ADDR, /* source tile address */ \
806 __SRC_MSK_ADDR, /* source mask address */ \
807 __DES_ADDR, /* target tile address */ \
808 __REGION) /* region address */ \
809 arm_2dp_gray8_tile_copy_with_src_mask_only( \
810 NULL, \
811 (__SRC_ADDR), \
812 (__SRC_MSK_ADDR), \
813 (__DES_ADDR), \
814 (__REGION))
815
816
817#define arm_2d_rgb565_tile_copy_with_src_mask_only( \
818 __SRC_ADDR, /* source tile address */ \
819 __SRC_MSK_ADDR, /* source mask address */ \
820 __DES_ADDR, /* target tile address */ \
821 __REGION) /* region address */ \
822 arm_2dp_rgb565_tile_copy_with_src_mask_only( \
823 NULL, \
824 (__SRC_ADDR), \
825 (__SRC_MSK_ADDR), \
826 (__DES_ADDR), \
827 (__REGION))
828
829
830#define arm_2d_rgb888_tile_copy_with_src_mask_only \
831 arm_2d_cccn888_tile_copy_with_src_mask_only
832
833#define arm_2d_cccn888_tile_copy_with_src_mask_only( \
834 __SRC_ADDR, /* source tile address */ \
835 __SRC_MSK_ADDR, /* source mask address */ \
836 __DES_ADDR, /* target tile address */ \
837 __REGION) /* region address */ \
838 arm_2dp_cccn888_tile_copy_with_src_mask_only( \
839 NULL, \
840 (__SRC_ADDR), \
841 (__SRC_MSK_ADDR), \
842 (__DES_ADDR), \
843 (__REGION))
844
845#define arm_2d_gray8_tile_copy_with_src_mask_and_x_mirror( \
846 __SRC_ADDR, /* source tile address */ \
847 __SRC_MSK_ADDR, /* source mask address */ \
848 __DES_ADDR, /* target tile address */ \
849 __REGION) /* region address */ \
850 arm_2dp_gray8_tile_copy_with_src_mask_and_x_mirror( \
851 NULL, \
852 (__SRC_ADDR), \
853 (__SRC_MSK_ADDR), \
854 (__DES_ADDR), \
855 (__REGION))
856
857
858#define arm_2d_rgb565_tile_copy_with_src_mask_and_x_mirror( \
859 __SRC_ADDR, /* source tile address */ \
860 __SRC_MSK_ADDR, /* source mask address */ \
861 __DES_ADDR, /* target tile address */ \
862 __REGION) /* region address */ \
863 arm_2dp_rgb565_tile_copy_with_src_mask_and_x_mirror( \
864 NULL, \
865 (__SRC_ADDR), \
866 (__SRC_MSK_ADDR), \
867 (__DES_ADDR), \
868 (__REGION))
869
870
871#define arm_2d_rgb888_tile_copy_with_src_mask_and_x_mirror \
872 arm_2d_cccn888_tile_copy_with_src_mask_and_x_mirror
873
874#define arm_2d_cccn888_tile_copy_with_src_mask_and_x_mirror( \
875 __SRC_ADDR, /* source tile address */ \
876 __SRC_MSK_ADDR, /* source mask address */ \
877 __DES_ADDR, /* target tile address */ \
878 __REGION) /* region address */ \
879 arm_2dp_cccn888_tile_copy_with_src_mask_and_x_mirror( \
880 NULL, \
881 (__SRC_ADDR), \
882 (__SRC_MSK_ADDR), \
883 (__DES_ADDR), \
884 (__REGION))
885
886#define arm_2d_gray8_tile_copy_with_src_mask_and_y_mirror( \
887 __SRC_ADDR, /* source tile address */ \
888 __SRC_MSK_ADDR, /* source mask address */ \
889 __DES_ADDR, /* target tile address */ \
890 __REGION) /* region address */ \
891 arm_2dp_gray8_tile_copy_with_src_mask_and_y_mirror( \
892 NULL, \
893 (__SRC_ADDR), \
894 (__SRC_MSK_ADDR), \
895 (__DES_ADDR), \
896 (__REGION))
897
898
899#define arm_2d_rgb565_tile_copy_with_src_mask_and_y_mirror( \
900 __SRC_ADDR, /* source tile address */ \
901 __SRC_MSK_ADDR, /* source mask address */ \
902 __DES_ADDR, /* target tile address */ \
903 __REGION) /* region address */ \
904 arm_2dp_rgb565_tile_copy_with_src_mask_and_y_mirror( \
905 NULL, \
906 (__SRC_ADDR), \
907 (__SRC_MSK_ADDR), \
908 (__DES_ADDR), \
909 (__REGION))
910
911
912#define arm_2d_rgb888_tile_copy_with_src_mask_and_y_mirror \
913 arm_2d_cccn888_tile_copy_with_src_mask_and_y_mirror
914
915#define arm_2d_cccn888_tile_copy_with_src_mask_and_y_mirror( \
916 __SRC_ADDR, /* source tile address */ \
917 __SRC_MSK_ADDR, /* source mask address */ \
918 __DES_ADDR, /* target tile address */ \
919 __REGION) /* region address */ \
920 arm_2dp_cccn888_tile_copy_with_src_mask_and_y_mirror( \
921 NULL, \
922 (__SRC_ADDR), \
923 (__SRC_MSK_ADDR), \
924 (__DES_ADDR), \
925 (__REGION))
926
927#define arm_2d_gray8_tile_copy_with_src_mask_and_xy_mirror( \
928 __SRC_ADDR, /* source tile address */ \
929 __SRC_MSK_ADDR, /* source mask address */ \
930 __DES_ADDR, /* target tile address */ \
931 __REGION) /* region address */ \
932 arm_2dp_gray8_tile_copy_with_src_mask_and_xy_mirror( \
933 NULL, \
934 (__SRC_ADDR), \
935 (__SRC_MSK_ADDR), \
936 (__DES_ADDR), \
937 (__REGION))
938
939
940#define arm_2d_rgb565_tile_copy_with_src_mask_and_xy_mirror( \
941 __SRC_ADDR, /* source tile address */ \
942 __SRC_MSK_ADDR, /* source mask address */ \
943 __DES_ADDR, /* target tile address */ \
944 __REGION) /* region address */ \
945 arm_2dp_rgb565_tile_copy_with_src_mask_and_xy_mirror( \
946 NULL, \
947 (__SRC_ADDR), \
948 (__SRC_MSK_ADDR), \
949 (__DES_ADDR), \
950 (__REGION))
951
952
953#define arm_2d_rgb888_tile_copy_with_src_mask_and_xy_mirror \
954 arm_2d_cccn888_tile_copy_with_src_mask_and_xy_mirror
955
956#define arm_2d_cccn888_tile_copy_with_src_mask_and_xy_mirror( \
957 __SRC_ADDR, /* source tile address */ \
958 __SRC_MSK_ADDR, /* source mask address */ \
959 __DES_ADDR, /* target tile address */ \
960 __REGION) /* region address */ \
961 arm_2dp_cccn888_tile_copy_with_src_mask_and_xy_mirror( \
962 NULL, \
963 (__SRC_ADDR), \
964 (__SRC_MSK_ADDR), \
965 (__DES_ADDR), \
966 (__REGION))
967
968#define arm_2d_gray8_tile_fill_with_src_mask_only( \
969 __SRC_ADDR, /* source tile address */ \
970 __SRC_MSK_ADDR, /* source mask address */ \
971 __DES_ADDR, /* target tile address */ \
972 __REGION) /* region address */ \
973 arm_2dp_gray8_tile_fill_with_src_mask_only( \
974 NULL, \
975 (__SRC_ADDR), \
976 (__SRC_MSK_ADDR), \
977 (__DES_ADDR), \
978 (__REGION))
979
980
981#define arm_2d_rgb565_tile_fill_with_src_mask_only( \
982 __SRC_ADDR, /* source tile address */ \
983 __SRC_MSK_ADDR, /* source mask address */ \
984 __DES_ADDR, /* target tile address */ \
985 __REGION) /* region address */ \
986 arm_2dp_rgb565_tile_fill_with_src_mask_only( \
987 NULL, \
988 (__SRC_ADDR), \
989 (__SRC_MSK_ADDR), \
990 (__DES_ADDR), \
991 (__REGION))
992
993
994#define arm_2d_rgb888_tile_fill_with_src_mask_only \
995 arm_2d_cccn888_tile_fill_with_src_mask_only
996
997#define arm_2d_cccn888_tile_fill_with_src_mask_only( \
998 __SRC_ADDR, /* source tile address */ \
999 __SRC_MSK_ADDR, /* source mask address */ \
1000 __DES_ADDR, /* target tile address */ \
1001 __REGION) /* region address */ \
1002 arm_2dp_cccn888_tile_fill_with_src_mask_only( \
1003 NULL, \
1004 (__SRC_ADDR), \
1005 (__SRC_MSK_ADDR), \
1006 (__DES_ADDR), \
1007 (__REGION))
1008
1009#define arm_2d_gray8_tile_fill_with_src_mask_and_x_mirror( \
1010 __SRC_ADDR, /* source tile address */ \
1011 __SRC_MSK_ADDR, /* source mask address */ \
1012 __DES_ADDR, /* target tile address */ \
1013 __REGION) /* region address */ \
1014 arm_2dp_gray8_tile_fill_with_src_mask_and_x_mirror( \
1015 NULL, \
1016 (__SRC_ADDR), \
1017 (__SRC_MSK_ADDR), \
1018 (__DES_ADDR), \
1019 (__REGION))
1020
1021
1022#define arm_2d_rgb565_tile_fill_with_src_mask_and_x_mirror( \
1023 __SRC_ADDR, /* source tile address */ \
1024 __SRC_MSK_ADDR, /* source mask address */ \
1025 __DES_ADDR, /* target tile address */ \
1026 __REGION) /* region address */ \
1027 arm_2dp_rgb565_tile_fill_with_src_mask_and_x_mirror( \
1028 NULL, \
1029 (__SRC_ADDR), \
1030 (__SRC_MSK_ADDR), \
1031 (__DES_ADDR), \
1032 (__REGION))
1033
1034
1035#define arm_2d_rgb888_tile_fill_with_src_mask_and_x_mirror \
1036 arm_2d_cccn888_tile_fill_with_src_mask_and_x_mirror
1037
1038#define arm_2d_cccn888_tile_fill_with_src_mask_and_x_mirror( \
1039 __SRC_ADDR, /* source tile address */ \
1040 __SRC_MSK_ADDR, /* source mask address */ \
1041 __DES_ADDR, /* target tile address */ \
1042 __REGION) /* region address */ \
1043 arm_2dp_cccn888_tile_fill_with_src_mask_and_x_mirror( \
1044 NULL, \
1045 (__SRC_ADDR), \
1046 (__SRC_MSK_ADDR), \
1047 (__DES_ADDR), \
1048 (__REGION))
1049
1050#define arm_2d_gray8_tile_fill_with_src_mask_and_y_mirror( \
1051 __SRC_ADDR, /* source tile address */ \
1052 __SRC_MSK_ADDR, /* source mask address */ \
1053 __DES_ADDR, /* target tile address */ \
1054 __REGION) /* region address */ \
1055 arm_2dp_gray8_tile_fill_with_src_mask_and_y_mirror( \
1056 NULL, \
1057 (__SRC_ADDR), \
1058 (__SRC_MSK_ADDR), \
1059 (__DES_ADDR), \
1060 (__REGION))
1061
1062
1063#define arm_2d_rgb565_tile_fill_with_src_mask_and_y_mirror( \
1064 __SRC_ADDR, /* source tile address */ \
1065 __SRC_MSK_ADDR, /* source mask address */ \
1066 __DES_ADDR, /* target tile address */ \
1067 __REGION) /* region address */ \
1068 arm_2dp_rgb565_tile_fill_with_src_mask_and_y_mirror( \
1069 NULL, \
1070 (__SRC_ADDR), \
1071 (__SRC_MSK_ADDR), \
1072 (__DES_ADDR), \
1073 (__REGION))
1074
1075
1076#define arm_2d_rgb888_tile_fill_with_src_mask_and_y_mirror \
1077 arm_2d_cccn888_tile_fill_with_src_mask_and_y_mirror
1078
1079#define arm_2d_cccn888_tile_fill_with_src_mask_and_y_mirror( \
1080 __SRC_ADDR, /* source tile address */ \
1081 __SRC_MSK_ADDR, /* source mask address */ \
1082 __DES_ADDR, /* target tile address */ \
1083 __REGION) /* region address */ \
1084 arm_2dp_cccn888_tile_fill_with_src_mask_and_y_mirror( \
1085 NULL, \
1086 (__SRC_ADDR), \
1087 (__SRC_MSK_ADDR), \
1088 (__DES_ADDR), \
1089 (__REGION))
1090
1091#define arm_2d_gray8_tile_fill_with_src_mask_and_xy_mirror( \
1092 __SRC_ADDR, /* source tile address */ \
1093 __SRC_MSK_ADDR, /* source mask address */ \
1094 __DES_ADDR, /* target tile address */ \
1095 __REGION) /* region address */ \
1096 arm_2dp_gray8_tile_fill_with_src_mask_and_xy_mirror( \
1097 NULL, \
1098 (__SRC_ADDR), \
1099 (__SRC_MSK_ADDR), \
1100 (__DES_ADDR), \
1101 (__REGION))
1102
1103
1104#define arm_2d_rgb565_tile_fill_with_src_mask_and_xy_mirror( \
1105 __SRC_ADDR, /* source tile address */ \
1106 __SRC_MSK_ADDR, /* source mask address */ \
1107 __DES_ADDR, /* target tile address */ \
1108 __REGION) /* region address */ \
1109 arm_2dp_rgb565_tile_fill_with_src_mask_and_xy_mirror( \
1110 NULL, \
1111 (__SRC_ADDR), \
1112 (__SRC_MSK_ADDR), \
1113 (__DES_ADDR), \
1114 (__REGION))
1115
1116
1117#define arm_2d_rgb888_tile_fill_with_src_mask_and_xy_mirror \
1118 arm_2d_cccn888_tile_fill_with_src_mask_and_xy_mirror
1119
1120#define arm_2d_cccn888_tile_fill_with_src_mask_and_xy_mirror( \
1121 __SRC_ADDR, /* source tile address */ \
1122 __SRC_MSK_ADDR, /* source mask address */ \
1123 __DES_ADDR, /* target tile address */ \
1124 __REGION) /* region address */ \
1125 arm_2dp_cccn888_tile_fill_with_src_mask_and_xy_mirror( \
1126 NULL, \
1127 (__SRC_ADDR), \
1128 (__SRC_MSK_ADDR), \
1129 (__DES_ADDR), \
1130 (__REGION))
1131
1132#define arm_2d_gray8_tile_copy_with_masks_only( \
1133 __SRC_ADDR, /* source tile address */ \
1134 __SRC_MSK_ADDR, /* source mask address */ \
1135 __DES_ADDR, /* target tile address */ \
1136 __DES_MSK_ADDR, /* target mask address */ \
1137 __REGION) /* region address */ \
1138 arm_2dp_gray8_tile_copy_with_masks_only( \
1139 NULL, \
1140 (__SRC_ADDR), \
1141 (__SRC_MSK_ADDR), \
1142 (__DES_ADDR), \
1143 (__DES_MSK_ADDR), \
1144 (__REGION))
1145
1146
1147#define arm_2d_rgb565_tile_copy_with_masks_only( \
1148 __SRC_ADDR, /* source tile address */ \
1149 __SRC_MSK_ADDR, /* source mask address */ \
1150 __DES_ADDR, /* target tile address */ \
1151 __DES_MSK_ADDR, /* target mask address */ \
1152 __REGION) /* region address */ \
1153 arm_2dp_rgb565_tile_copy_with_masks_only( \
1154 NULL, \
1155 (__SRC_ADDR), \
1156 (__SRC_MSK_ADDR), \
1157 (__DES_ADDR), \
1158 (__DES_MSK_ADDR), \
1159 (__REGION))
1160
1161
1162#define arm_2d_rgb888_tile_copy_with_masks_only \
1163 arm_2d_cccn888_tile_copy_with_masks_only
1164
1165#define arm_2d_cccn888_tile_copy_with_masks_only( \
1166 __SRC_ADDR, /* source tile address */ \
1167 __SRC_MSK_ADDR, /* source mask address */ \
1168 __DES_ADDR, /* target tile address */ \
1169 __DES_MSK_ADDR, /* target mask address */ \
1170 __REGION) /* region address */ \
1171 arm_2dp_cccn888_tile_copy_with_masks_only( \
1172 NULL, \
1173 (__SRC_ADDR), \
1174 (__SRC_MSK_ADDR), \
1175 (__DES_ADDR), \
1176 (__DES_MSK_ADDR), \
1177 (__REGION))
1178
1179#define arm_2d_gray8_tile_copy_with_masks_and_x_mirror( \
1180 __SRC_ADDR, /* source tile address */ \
1181 __SRC_MSK_ADDR, /* source mask address */ \
1182 __DES_ADDR, /* target tile address */ \
1183 __DES_MSK_ADDR, /* target mask address */ \
1184 __REGION) /* region address */ \
1185 arm_2dp_gray8_tile_copy_with_masks_and_x_mirror( \
1186 NULL, \
1187 (__SRC_ADDR), \
1188 (__SRC_MSK_ADDR), \
1189 (__DES_ADDR), \
1190 (__DES_MSK_ADDR), \
1191 (__REGION))
1192
1193
1194#define arm_2d_rgb565_tile_copy_with_masks_and_x_mirror( \
1195 __SRC_ADDR, /* source tile address */ \
1196 __SRC_MSK_ADDR, /* source mask address */ \
1197 __DES_ADDR, /* target tile address */ \
1198 __DES_MSK_ADDR, /* target mask address */ \
1199 __REGION) /* region address */ \
1200 arm_2dp_rgb565_tile_copy_with_masks_and_x_mirror( \
1201 NULL, \
1202 (__SRC_ADDR), \
1203 (__SRC_MSK_ADDR), \
1204 (__DES_ADDR), \
1205 (__DES_MSK_ADDR), \
1206 (__REGION))
1207
1208
1209#define arm_2d_rgb888_tile_copy_with_masks_and_x_mirror \
1210 arm_2d_cccn888_tile_copy_with_masks_and_x_mirror
1211
1212#define arm_2d_cccn888_tile_copy_with_masks_and_x_mirror( \
1213 __SRC_ADDR, /* source tile address */ \
1214 __SRC_MSK_ADDR, /* source mask address */ \
1215 __DES_ADDR, /* target tile address */ \
1216 __DES_MSK_ADDR, /* target mask address */ \
1217 __REGION) /* region address */ \
1218 arm_2dp_cccn888_tile_copy_with_masks_and_x_mirror( \
1219 NULL, \
1220 (__SRC_ADDR), \
1221 (__SRC_MSK_ADDR), \
1222 (__DES_ADDR), \
1223 (__DES_MSK_ADDR), \
1224 (__REGION))
1225
1226#define arm_2d_gray8_tile_copy_with_masks_and_y_mirror( \
1227 __SRC_ADDR, /* source tile address */ \
1228 __SRC_MSK_ADDR, /* source mask address */ \
1229 __DES_ADDR, /* target tile address */ \
1230 __DES_MSK_ADDR, /* target mask address */ \
1231 __REGION) /* region address */ \
1232 arm_2dp_gray8_tile_copy_with_masks_and_y_mirror( \
1233 NULL, \
1234 (__SRC_ADDR), \
1235 (__SRC_MSK_ADDR), \
1236 (__DES_ADDR), \
1237 (__DES_MSK_ADDR), \
1238 (__REGION))
1239
1240
1241#define arm_2d_rgb565_tile_copy_with_masks_and_y_mirror( \
1242 __SRC_ADDR, /* source tile address */ \
1243 __SRC_MSK_ADDR, /* source mask address */ \
1244 __DES_ADDR, /* target tile address */ \
1245 __DES_MSK_ADDR, /* target mask address */ \
1246 __REGION) /* region address */ \
1247 arm_2dp_rgb565_tile_copy_with_masks_and_y_mirror( \
1248 NULL, \
1249 (__SRC_ADDR), \
1250 (__SRC_MSK_ADDR), \
1251 (__DES_ADDR), \
1252 (__DES_MSK_ADDR), \
1253 (__REGION))
1254
1255
1256#define arm_2d_rgb888_tile_copy_with_masks_and_y_mirror \
1257 arm_2d_cccn888_tile_copy_with_masks_and_y_mirror
1258
1259#define arm_2d_cccn888_tile_copy_with_masks_and_y_mirror( \
1260 __SRC_ADDR, /* source tile address */ \
1261 __SRC_MSK_ADDR, /* source mask address */ \
1262 __DES_ADDR, /* target tile address */ \
1263 __DES_MSK_ADDR, /* target mask address */ \
1264 __REGION) /* region address */ \
1265 arm_2dp_cccn888_tile_copy_with_masks_and_y_mirror( \
1266 NULL, \
1267 (__SRC_ADDR), \
1268 (__SRC_MSK_ADDR), \
1269 (__DES_ADDR), \
1270 (__DES_MSK_ADDR), \
1271 (__REGION))
1272
1273#define arm_2d_gray8_tile_copy_with_masks_and_xy_mirror( \
1274 __SRC_ADDR, /* source tile address */ \
1275 __SRC_MSK_ADDR, /* source mask address */ \
1276 __DES_ADDR, /* target tile address */ \
1277 __DES_MSK_ADDR, /* target mask address */ \
1278 __REGION) /* region address */ \
1279 arm_2dp_gray8_tile_copy_with_masks_and_xy_mirror( \
1280 NULL, \
1281 (__SRC_ADDR), \
1282 (__SRC_MSK_ADDR), \
1283 (__DES_ADDR), \
1284 (__DES_MSK_ADDR), \
1285 (__REGION))
1286
1287
1288#define arm_2d_rgb565_tile_copy_with_masks_and_xy_mirror( \
1289 __SRC_ADDR, /* source tile address */ \
1290 __SRC_MSK_ADDR, /* source mask address */ \
1291 __DES_ADDR, /* target tile address */ \
1292 __DES_MSK_ADDR, /* target mask address */ \
1293 __REGION) /* region address */ \
1294 arm_2dp_rgb565_tile_copy_with_masks_and_xy_mirror( \
1295 NULL, \
1296 (__SRC_ADDR), \
1297 (__SRC_MSK_ADDR), \
1298 (__DES_ADDR), \
1299 (__DES_MSK_ADDR), \
1300 (__REGION))
1301
1302
1303#define arm_2d_rgb888_tile_copy_with_masks_and_xy_mirror \
1304 arm_2d_cccn888_tile_copy_with_masks_and_xy_mirror
1305
1306#define arm_2d_cccn888_tile_copy_with_masks_and_xy_mirror( \
1307 __SRC_ADDR, /* source tile address */ \
1308 __SRC_MSK_ADDR, /* source mask address */ \
1309 __DES_ADDR, /* target tile address */ \
1310 __DES_MSK_ADDR, /* target mask address */ \
1311 __REGION) /* region address */ \
1312 arm_2dp_cccn888_tile_copy_with_masks_and_xy_mirror( \
1313 NULL, \
1314 (__SRC_ADDR), \
1315 (__SRC_MSK_ADDR), \
1316 (__DES_ADDR), \
1317 (__DES_MSK_ADDR), \
1318 (__REGION))
1319
1320#define arm_2d_gray8_tile_fill_with_masks_only( \
1321 __SRC_ADDR, /* source tile address */ \
1322 __SRC_MSK_ADDR, /* source mask address */ \
1323 __DES_ADDR, /* target tile address */ \
1324 __DES_MSK_ADDR, /* target mask address */ \
1325 __REGION) /* region address */ \
1326 arm_2dp_gray8_tile_fill_with_masks_only( \
1327 NULL, \
1328 (__SRC_ADDR), \
1329 (__SRC_MSK_ADDR), \
1330 (__DES_ADDR), \
1331 (__DES_MSK_ADDR), \
1332 (__REGION))
1333
1334
1335#define arm_2d_rgb565_tile_fill_with_masks_only( \
1336 __SRC_ADDR, /* source tile address */ \
1337 __SRC_MSK_ADDR, /* source mask address */ \
1338 __DES_ADDR, /* target tile address */ \
1339 __DES_MSK_ADDR, /* target mask address */ \
1340 __REGION) /* region address */ \
1341 arm_2dp_rgb565_tile_fill_with_masks_only( \
1342 NULL, \
1343 (__SRC_ADDR), \
1344 (__SRC_MSK_ADDR), \
1345 (__DES_ADDR), \
1346 (__DES_MSK_ADDR), \
1347 (__REGION))
1348
1349
1350#define arm_2d_rgb888_tile_fill_with_masks_only \
1351 arm_2d_cccn888_tile_fill_with_masks_only
1352
1353#define arm_2d_cccn888_tile_fill_with_masks_only( \
1354 __SRC_ADDR, /* source tile address */ \
1355 __SRC_MSK_ADDR, /* source mask address */ \
1356 __DES_ADDR, /* target tile address */ \
1357 __DES_MSK_ADDR, /* target mask address */ \
1358 __REGION) /* region address */ \
1359 arm_2dp_cccn888_tile_fill_with_masks_only( \
1360 NULL, \
1361 (__SRC_ADDR), \
1362 (__SRC_MSK_ADDR), \
1363 (__DES_ADDR), \
1364 (__DES_MSK_ADDR), \
1365 (__REGION))
1366
1367#define arm_2d_gray8_tile_fill_with_masks_and_x_mirror( \
1368 __SRC_ADDR, /* source tile address */ \
1369 __SRC_MSK_ADDR, /* source mask address */ \
1370 __DES_ADDR, /* target tile address */ \
1371 __DES_MSK_ADDR, /* target mask address */ \
1372 __REGION) /* region address */ \
1373 arm_2dp_gray8_tile_fill_with_masks_and_x_mirror( \
1374 NULL, \
1375 (__SRC_ADDR), \
1376 (__SRC_MSK_ADDR), \
1377 (__DES_ADDR), \
1378 (__DES_MSK_ADDR), \
1379 (__REGION))
1380
1381
1382#define arm_2d_rgb565_tile_fill_with_masks_and_x_mirror( \
1383 __SRC_ADDR, /* source tile address */ \
1384 __SRC_MSK_ADDR, /* source mask address */ \
1385 __DES_ADDR, /* target tile address */ \
1386 __DES_MSK_ADDR, /* target mask address */ \
1387 __REGION) /* region address */ \
1388 arm_2dp_rgb565_tile_fill_with_masks_and_x_mirror( \
1389 NULL, \
1390 (__SRC_ADDR), \
1391 (__SRC_MSK_ADDR), \
1392 (__DES_ADDR), \
1393 (__DES_MSK_ADDR), \
1394 (__REGION))
1395
1396
1397#define arm_2d_rgb888_tile_fill_with_masks_and_x_mirror \
1398 arm_2d_cccn888_tile_fill_with_masks_and_x_mirror
1399
1400#define arm_2d_cccn888_tile_fill_with_masks_and_x_mirror( \
1401 __SRC_ADDR, /* source tile address */ \
1402 __SRC_MSK_ADDR, /* source mask address */ \
1403 __DES_ADDR, /* target tile address */ \
1404 __DES_MSK_ADDR, /* target mask address */ \
1405 __REGION) /* region address */ \
1406 arm_2dp_cccn888_tile_fill_with_masks_and_x_mirror( \
1407 NULL, \
1408 (__SRC_ADDR), \
1409 (__SRC_MSK_ADDR), \
1410 (__DES_ADDR), \
1411 (__DES_MSK_ADDR), \
1412 (__REGION))
1413
1414#define arm_2d_gray8_tile_fill_with_masks_and_y_mirror( \
1415 __SRC_ADDR, /* source tile address */ \
1416 __SRC_MSK_ADDR, /* source mask address */ \
1417 __DES_ADDR, /* target tile address */ \
1418 __DES_MSK_ADDR, /* target mask address */ \
1419 __REGION) /* region address */ \
1420 arm_2dp_gray8_tile_fill_with_masks_and_y_mirror( \
1421 NULL, \
1422 (__SRC_ADDR), \
1423 (__SRC_MSK_ADDR), \
1424 (__DES_ADDR), \
1425 (__DES_MSK_ADDR), \
1426 (__REGION))
1427
1428
1429#define arm_2d_rgb565_tile_fill_with_masks_and_y_mirror( \
1430 __SRC_ADDR, /* source tile address */ \
1431 __SRC_MSK_ADDR, /* source mask address */ \
1432 __DES_ADDR, /* target tile address */ \
1433 __DES_MSK_ADDR, /* target mask address */ \
1434 __REGION) /* region address */ \
1435 arm_2dp_rgb565_tile_fill_with_masks_and_y_mirror( \
1436 NULL, \
1437 (__SRC_ADDR), \
1438 (__SRC_MSK_ADDR), \
1439 (__DES_ADDR), \
1440 (__DES_MSK_ADDR), \
1441 (__REGION))
1442
1443
1444#define arm_2d_rgb888_tile_fill_with_masks_and_y_mirror \
1445 arm_2d_cccn888_tile_fill_with_masks_and_y_mirror
1446
1447#define arm_2d_cccn888_tile_fill_with_masks_and_y_mirror( \
1448 __SRC_ADDR, /* source tile address */ \
1449 __SRC_MSK_ADDR, /* source mask address */ \
1450 __DES_ADDR, /* target tile address */ \
1451 __DES_MSK_ADDR, /* target mask address */ \
1452 __REGION) /* region address */ \
1453 arm_2dp_cccn888_tile_fill_with_masks_and_y_mirror( \
1454 NULL, \
1455 (__SRC_ADDR), \
1456 (__SRC_MSK_ADDR), \
1457 (__DES_ADDR), \
1458 (__DES_MSK_ADDR), \
1459 (__REGION))
1460
1461#define arm_2d_gray8_tile_fill_with_masks_and_xy_mirror( \
1462 __SRC_ADDR, /* source tile address */ \
1463 __SRC_MSK_ADDR, /* source mask address */ \
1464 __DES_ADDR, /* target tile address */ \
1465 __DES_MSK_ADDR, /* target mask address */ \
1466 __REGION) /* region address */ \
1467 arm_2dp_gray8_tile_fill_with_masks_and_xy_mirror( \
1468 NULL, \
1469 (__SRC_ADDR), \
1470 (__SRC_MSK_ADDR), \
1471 (__DES_ADDR), \
1472 (__DES_MSK_ADDR), \
1473 (__REGION))
1474
1475
1476#define arm_2d_rgb565_tile_fill_with_masks_and_xy_mirror( \
1477 __SRC_ADDR, /* source tile address */ \
1478 __SRC_MSK_ADDR, /* source mask address */ \
1479 __DES_ADDR, /* target tile address */ \
1480 __DES_MSK_ADDR, /* target mask address */ \
1481 __REGION) /* region address */ \
1482 arm_2dp_rgb565_tile_fill_with_masks_and_xy_mirror( \
1483 NULL, \
1484 (__SRC_ADDR), \
1485 (__SRC_MSK_ADDR), \
1486 (__DES_ADDR), \
1487 (__DES_MSK_ADDR), \
1488 (__REGION))
1489
1490
1491#define arm_2d_rgb888_tile_fill_with_masks_and_xy_mirror \
1492 arm_2d_cccn888_tile_fill_with_masks_and_xy_mirror
1493
1494#define arm_2d_cccn888_tile_fill_with_masks_and_xy_mirror( \
1495 __SRC_ADDR, /* source tile address */ \
1496 __SRC_MSK_ADDR, /* source mask address */ \
1497 __DES_ADDR, /* target tile address */ \
1498 __DES_MSK_ADDR, /* target mask address */ \
1499 __REGION) /* region address */ \
1500 arm_2dp_cccn888_tile_fill_with_masks_and_xy_mirror( \
1501 NULL, \
1502 (__SRC_ADDR), \
1503 (__SRC_MSK_ADDR), \
1504 (__DES_ADDR), \
1505 (__DES_MSK_ADDR), \
1506 (__REGION))
1507
1508
1509#define arm_2d_gray8_tile_copy_with_des_mask( \
1510 __SRC_ADDR, /* source tile address */ \
1511 __DES_ADDR, /* target tile address */ \
1512 __DES_MSK_ADDR, /* target mask address */ \
1513 __REGION, /* region address */ \
1514 __MODE) /* copy mode */ \
1515 arm_2dp_gray8_tile_copy_with_des_mask( \
1516 NULL, \
1517 (__SRC_ADDR), \
1518 (__DES_ADDR), \
1519 (__DES_MSK_ADDR), \
1520 (__REGION), \
1521 (__MODE))
1522
1523#define arm_2d_rgb565_tile_copy_with_des_mask( \
1524 __SRC_ADDR, /* source tile address */ \
1525 __DES_ADDR, /* target tile address */ \
1526 __DES_MSK_ADDR, /* target mask address */ \
1527 __REGION, /* region address */ \
1528 __MODE) /* copy mode */ \
1529 arm_2dp_rgb565_tile_copy_with_des_mask( \
1530 NULL, \
1531 (__SRC_ADDR), \
1532 (__DES_ADDR), \
1533 (__DES_MSK_ADDR), \
1534 (__REGION), \
1535 (__MODE))
1536
1537#define arm_2d_rgb888_tile_copy_with_des_mask \
1538 arm_2d_cccn888_tile_copy_with_des_mask
1539
1540#define arm_2d_cccn888_tile_copy_with_des_mask( \
1541 __SRC_ADDR, /* source tile address */ \
1542 __DES_ADDR, /* target tile address */ \
1543 __DES_MSK_ADDR, /* target mask address */ \
1544 __REGION, /* region address */ \
1545 __MODE) /* copy mode */ \
1546 arm_2dp_cccn888_tile_copy_with_des_mask( \
1547 NULL, \
1548 (__SRC_ADDR), \
1549 (__DES_ADDR), \
1550 (__DES_MSK_ADDR), \
1551 (__REGION), \
1552 (__MODE))
1553
1554
1555#define arm_2d_gray8_tile_copy_with_des_mask_only( \
1556 __SRC_ADDR, /* source tile address */ \
1557 __DES_ADDR, /* target tile address */ \
1558 __DES_MSK_ADDR, /* target mask address */ \
1559 __REGION) /* region address */ \
1560 arm_2dp_gray8_tile_copy_with_des_mask_only( \
1561 NULL, \
1562 (__SRC_ADDR), \
1563 (__DES_ADDR), \
1564 (__DES_MSK_ADDR), \
1565 (__REGION))
1566
1567
1568#define arm_2d_rgb565_tile_copy_with_des_mask_only( \
1569 __SRC_ADDR, /* source tile address */ \
1570 __DES_ADDR, /* target tile address */ \
1571 __DES_MSK_ADDR, /* target mask address */ \
1572 __REGION) /* region address */ \
1573 arm_2dp_rgb565_tile_copy_with_des_mask_only( \
1574 NULL, \
1575 (__SRC_ADDR), \
1576 (__DES_ADDR), \
1577 (__DES_MSK_ADDR), \
1578 (__REGION))
1579
1580
1581#define arm_2d_rgb888_tile_copy_with_des_mask_only \
1582 arm_2d_cccn888_tile_copy_with_des_mask_only
1583
1584#define arm_2d_cccn888_tile_copy_with_des_mask_only( \
1585 __SRC_ADDR, /* source tile address */ \
1586 __DES_ADDR, /* target tile address */ \
1587 __DES_MSK_ADDR, /* target mask address */ \
1588 __REGION) /* region address */ \
1589 arm_2dp_cccn888_tile_copy_with_des_mask_only( \
1590 NULL, \
1591 (__SRC_ADDR), \
1592 (__DES_ADDR), \
1593 (__DES_MSK_ADDR), \
1594 (__REGION))
1595
1596#define arm_2d_gray8_tile_copy_with_des_mask_and_x_mirror( \
1597 __SRC_ADDR, /* source tile address */ \
1598 __DES_ADDR, /* target tile address */ \
1599 __DES_MSK_ADDR, /* target mask address */ \
1600 __REGION) /* region address */ \
1601 arm_2dp_gray8_tile_copy_with_des_mask_and_x_mirror( \
1602 NULL, \
1603 (__SRC_ADDR), \
1604 (__DES_ADDR), \
1605 (__DES_MSK_ADDR), \
1606 (__REGION))
1607
1608
1609#define arm_2d_rgb565_tile_copy_with_des_mask_and_x_mirror( \
1610 __SRC_ADDR, /* source tile address */ \
1611 __DES_ADDR, /* target tile address */ \
1612 __DES_MSK_ADDR, /* target mask address */ \
1613 __REGION) /* region address */ \
1614 arm_2dp_rgb565_tile_copy_with_des_mask_and_x_mirror( \
1615 NULL, \
1616 (__SRC_ADDR), \
1617 (__DES_ADDR), \
1618 (__DES_MSK_ADDR), \
1619 (__REGION))
1620
1621
1622#define arm_2d_rgb888_tile_copy_with_des_mask_and_x_mirror \
1623 arm_2d_cccn888_tile_copy_with_des_mask_and_x_mirror
1624
1625#define arm_2d_cccn888_tile_copy_with_des_mask_and_x_mirror( \
1626 __SRC_ADDR, /* source tile address */ \
1627 __DES_ADDR, /* target tile address */ \
1628 __DES_MSK_ADDR, /* target mask address */ \
1629 __REGION) /* region address */ \
1630 arm_2dp_cccn888_tile_copy_with_des_mask_and_x_mirror( \
1631 NULL, \
1632 (__SRC_ADDR), \
1633 (__DES_ADDR), \
1634 (__DES_MSK_ADDR), \
1635 (__REGION))
1636
1637#define arm_2d_gray8_tile_copy_with_des_mask_and_y_mirror( \
1638 __SRC_ADDR, /* source tile address */ \
1639 __DES_ADDR, /* target tile address */ \
1640 __DES_MSK_ADDR, /* target mask address */ \
1641 __REGION) /* region address */ \
1642 arm_2dp_gray8_tile_copy_with_des_mask_and_y_mirror( \
1643 NULL, \
1644 (__SRC_ADDR), \
1645 (__DES_ADDR), \
1646 (__DES_MSK_ADDR), \
1647 (__REGION))
1648
1649
1650#define arm_2d_rgb565_tile_copy_with_des_mask_and_y_mirror( \
1651 __SRC_ADDR, /* source tile address */ \
1652 __DES_ADDR, /* target tile address */ \
1653 __DES_MSK_ADDR, /* target mask address */ \
1654 __REGION) /* region address */ \
1655 arm_2dp_rgb565_tile_copy_with_des_mask_and_y_mirror( \
1656 NULL, \
1657 (__SRC_ADDR), \
1658 (__DES_ADDR), \
1659 (__DES_MSK_ADDR), \
1660 (__REGION))
1661
1662
1663#define arm_2d_rgb888_tile_copy_with_des_mask_and_y_mirror \
1664 arm_2d_cccn888_tile_copy_with_des_mask_and_y_mirror
1665
1666#define arm_2d_cccn888_tile_copy_with_des_mask_and_y_mirror( \
1667 __SRC_ADDR, /* source tile address */ \
1668 __DES_ADDR, /* target tile address */ \
1669 __DES_MSK_ADDR, /* target mask address */ \
1670 __REGION) /* region address */ \
1671 arm_2dp_cccn888_tile_copy_with_des_mask_and_y_mirror( \
1672 NULL, \
1673 (__SRC_ADDR), \
1674 (__DES_ADDR), \
1675 (__DES_MSK_ADDR), \
1676 (__REGION))
1677
1678#define arm_2d_gray8_tile_copy_with_des_mask_and_xy_mirror( \
1679 __SRC_ADDR, /* source tile address */ \
1680 __DES_ADDR, /* target tile address */ \
1681 __DES_MSK_ADDR, /* target mask address */ \
1682 __REGION) /* region address */ \
1683 arm_2dp_gray8_tile_copy_with_des_mask_and_xy_mirror( \
1684 NULL, \
1685 (__SRC_ADDR), \
1686 (__DES_ADDR), \
1687 (__DES_MSK_ADDR), \
1688 (__REGION))
1689
1690
1691#define arm_2d_rgb565_tile_copy_with_des_mask_and_xy_mirror( \
1692 __SRC_ADDR, /* source tile address */ \
1693 __DES_ADDR, /* target tile address */ \
1694 __DES_MSK_ADDR, /* target mask address */ \
1695 __REGION) /* region address */ \
1696 arm_2dp_rgb565_tile_copy_with_des_mask_and_xy_mirror( \
1697 NULL, \
1698 (__SRC_ADDR), \
1699 (__DES_ADDR), \
1700 (__DES_MSK_ADDR), \
1701 (__REGION))
1702
1703
1704#define arm_2d_rgb888_tile_copy_with_des_mask_and_xy_mirror \
1705 arm_2d_cccn888_tile_copy_with_des_mask_and_xy_mirror
1706
1707#define arm_2d_cccn888_tile_copy_with_des_mask_and_xy_mirror( \
1708 __SRC_ADDR, /* source tile address */ \
1709 __DES_ADDR, /* target tile address */ \
1710 __DES_MSK_ADDR, /* target mask address */ \
1711 __REGION) /* region address */ \
1712 arm_2dp_cccn888_tile_copy_with_des_mask_and_xy_mirror( \
1713 NULL, \
1714 (__SRC_ADDR), \
1715 (__DES_ADDR), \
1716 (__DES_MSK_ADDR), \
1717 (__REGION))
1718
1719#define arm_2d_gray8_tile_fill_with_des_mask_only( \
1720 __SRC_ADDR, /* source tile address */ \
1721 __DES_ADDR, /* target tile address */ \
1722 __DES_MSK_ADDR, /* target mask address */ \
1723 __REGION) /* region address */ \
1724 arm_2dp_gray8_tile_fill_with_des_mask_only( \
1725 NULL, \
1726 (__SRC_ADDR), \
1727 (__DES_ADDR), \
1728 (__DES_MSK_ADDR), \
1729 (__REGION))
1730
1731
1732#define arm_2d_rgb565_tile_fill_with_des_mask_only( \
1733 __SRC_ADDR, /* source tile address */ \
1734 __DES_ADDR, /* target tile address */ \
1735 __DES_MSK_ADDR, /* target mask address */ \
1736 __REGION) /* region address */ \
1737 arm_2dp_rgb565_tile_fill_with_des_mask_only( \
1738 NULL, \
1739 (__SRC_ADDR), \
1740 (__DES_ADDR), \
1741 (__DES_MSK_ADDR), \
1742 (__REGION))
1743
1744
1745#define arm_2d_rgb888_tile_fill_with_des_mask_only \
1746 arm_2d_cccn888_tile_fill_with_des_mask_only
1747
1748#define arm_2d_cccn888_tile_fill_with_des_mask_only( \
1749 __SRC_ADDR, /* source tile address */ \
1750 __DES_ADDR, /* target tile address */ \
1751 __DES_MSK_ADDR, /* target mask address */ \
1752 __REGION) /* region address */ \
1753 arm_2dp_cccn888_tile_fill_with_des_mask_only( \
1754 NULL, \
1755 (__SRC_ADDR), \
1756 (__DES_ADDR), \
1757 (__DES_MSK_ADDR), \
1758 (__REGION))
1759
1760#define arm_2d_gray8_tile_fill_with_des_mask_and_x_mirror( \
1761 __SRC_ADDR, /* source tile address */ \
1762 __DES_ADDR, /* target tile address */ \
1763 __DES_MSK_ADDR, /* target mask address */ \
1764 __REGION) /* region address */ \
1765 arm_2dp_gray8_tile_fill_with_des_mask_and_x_mirror( \
1766 NULL, \
1767 (__SRC_ADDR), \
1768 (__DES_ADDR), \
1769 (__DES_MSK_ADDR), \
1770 (__REGION))
1771
1772
1773#define arm_2d_rgb565_tile_fill_with_des_mask_and_x_mirror( \
1774 __SRC_ADDR, /* source tile address */ \
1775 __DES_ADDR, /* target tile address */ \
1776 __DES_MSK_ADDR, /* target mask address */ \
1777 __REGION) /* region address */ \
1778 arm_2dp_rgb565_tile_fill_with_des_mask_and_x_mirror( \
1779 NULL, \
1780 (__SRC_ADDR), \
1781 (__DES_ADDR), \
1782 (__DES_MSK_ADDR), \
1783 (__REGION))
1784
1785
1786#define arm_2d_rgb888_tile_fill_with_des_mask_and_x_mirror \
1787 arm_2d_cccn888_tile_fill_with_des_mask_and_x_mirror
1788
1789#define arm_2d_cccn888_tile_fill_with_des_mask_and_x_mirror( \
1790 __SRC_ADDR, /* source tile address */ \
1791 __DES_ADDR, /* target tile address */ \
1792 __DES_MSK_ADDR, /* target mask address */ \
1793 __REGION) /* region address */ \
1794 arm_2dp_cccn888_tile_fill_with_des_mask_and_x_mirror( \
1795 NULL, \
1796 (__SRC_ADDR), \
1797 (__DES_ADDR), \
1798 (__DES_MSK_ADDR), \
1799 (__REGION))
1800
1801#define arm_2d_gray8_tile_fill_with_des_mask_and_y_mirror( \
1802 __SRC_ADDR, /* source tile address */ \
1803 __DES_ADDR, /* target tile address */ \
1804 __DES_MSK_ADDR, /* target mask address */ \
1805 __REGION) /* region address */ \
1806 arm_2dp_gray8_tile_fill_with_des_mask_and_y_mirror( \
1807 NULL, \
1808 (__SRC_ADDR), \
1809 (__DES_ADDR), \
1810 (__DES_MSK_ADDR), \
1811 (__REGION))
1812
1813
1814#define arm_2d_rgb565_tile_fill_with_des_mask_and_y_mirror( \
1815 __SRC_ADDR, /* source tile address */ \
1816 __DES_ADDR, /* target tile address */ \
1817 __DES_MSK_ADDR, /* target mask address */ \
1818 __REGION) /* region address */ \
1819 arm_2dp_rgb565_tile_fill_with_des_mask_and_y_mirror( \
1820 NULL, \
1821 (__SRC_ADDR), \
1822 (__DES_ADDR), \
1823 (__DES_MSK_ADDR), \
1824 (__REGION))
1825
1826
1827#define arm_2d_rgb888_tile_fill_with_des_mask_and_y_mirror \
1828 arm_2d_cccn888_tile_fill_with_des_mask_and_y_mirror
1829
1830#define arm_2d_cccn888_tile_fill_with_des_mask_and_y_mirror( \
1831 __SRC_ADDR, /* source tile address */ \
1832 __DES_ADDR, /* target tile address */ \
1833 __DES_MSK_ADDR, /* target mask address */ \
1834 __REGION) /* region address */ \
1835 arm_2dp_cccn888_tile_fill_with_des_mask_and_y_mirror( \
1836 NULL, \
1837 (__SRC_ADDR), \
1838 (__DES_ADDR), \
1839 (__DES_MSK_ADDR), \
1840 (__REGION))
1841
1842#define arm_2d_gray8_tile_fill_with_des_mask_and_xy_mirror( \
1843 __SRC_ADDR, /* source tile address */ \
1844 __DES_ADDR, /* target tile address */ \
1845 __DES_MSK_ADDR, /* target mask address */ \
1846 __REGION) /* region address */ \
1847 arm_2dp_gray8_tile_fill_with_des_mask_and_xy_mirror( \
1848 NULL, \
1849 (__SRC_ADDR), \
1850 (__DES_ADDR), \
1851 (__DES_MSK_ADDR), \
1852 (__REGION))
1853
1854
1855#define arm_2d_rgb565_tile_fill_with_des_mask_and_xy_mirror( \
1856 __SRC_ADDR, /* source tile address */ \
1857 __DES_ADDR, /* target tile address */ \
1858 __DES_MSK_ADDR, /* target mask address */ \
1859 __REGION) /* region address */ \
1860 arm_2dp_rgb565_tile_fill_with_des_mask_and_xy_mirror( \
1861 NULL, \
1862 (__SRC_ADDR), \
1863 (__DES_ADDR), \
1864 (__DES_MSK_ADDR), \
1865 (__REGION))
1866
1867
1868#define arm_2d_rgb888_tile_fill_with_des_mask_and_xy_mirror \
1869 arm_2d_cccn888_tile_fill_with_des_mask_and_xy_mirror
1870
1871#define arm_2d_cccn888_tile_fill_with_des_mask_and_xy_mirror( \
1872 __SRC_ADDR, /* source tile address */ \
1873 __DES_ADDR, /* target tile address */ \
1874 __DES_MSK_ADDR, /* target mask address */ \
1875 __REGION) /* region address */ \
1876 arm_2dp_cccn888_tile_fill_with_des_mask_and_xy_mirror( \
1877 NULL, \
1878 (__SRC_ADDR), \
1879 (__DES_ADDR), \
1880 (__DES_MSK_ADDR), \
1881 (__REGION))
1882
1883
1884/*============================ TYPES =========================================*/
1885
1886/*!
1887 * \brief control block for alpha-blending operations
1888 * \note arm_2d_op_alpha_t inherits from arm_2d_op_src_t explicitly
1889 */
1890typedef struct arm_2d_op_alpha_t {
1892 struct {
1893 const arm_2d_tile_t *ptTile; //!< target tile
1894 const arm_2d_region_t *ptRegion; //!< target region
1895 } Target; //!< target
1896 struct {
1897 const arm_2d_tile_t *ptTile; //!< source tile
1898 }Source; //!< source
1899 uint32_t wMode; //!< copy mode
1900 uint8_t chRatio; //!< opacity
1902
1903
1904/*!
1905 * \brief control block for alpha-blending-with-colour-keying operations
1906 * \note arm_2d_op_alpha_cl_key_t inherits from arm_2d_op_src_t explicitly
1907 */
1910 struct {
1911 const arm_2d_tile_t *ptTile; //!< target tile
1912 const arm_2d_region_t *ptRegion; //!< target region
1913 } Target; //!< target
1914 struct {
1915 const arm_2d_tile_t *ptTile; //!< source tile
1916 }Source; //!< source
1917 uint32_t wMode; //!< copy mode
1918 uint8_t chRatio; //!< opacity
1919
1920 union {
1921 uint8_t chColour; //!< 8bit key colour
1922 uint16_t hwColour; //!< 16bit key colour
1923 uint32_t wColour; //!< 32bit key colour
1924 };
1926
1927
1928/*!
1929 * \brief control block for colour-filling-with-mask operations
1930 * \note arm_2d_op_fill_cl_msk_t inherits from arm_2d_op_src_t explicitly
1931 */
1934 struct {
1935 const arm_2d_tile_t *ptTile; //!< target tile
1936 const arm_2d_region_t *ptRegion; //!< target region
1937 } Target; //!< target
1938 struct {
1939 const arm_2d_tile_t *ptTile; //!< Alpha Mask tile
1940 } Mask; //!< mask
1941 uint32_t wMode; //!< copy mode
1942
1943 union {
1944 uint8_t chColour; //!< 8bit key colour
1945 uint16_t hwColour; //!< 16bit key colour
1946 uint32_t wColour; //!< 32bit key colour
1947 };
1949
1950
1951/*!
1952 * \brief control block for colour-filling-with-mask-and-opacity operations
1953 * \note arm_2d_op_fill_cl_msk_t inherits from arm_2d_op_src_t explicitly
1954 */
1957 struct {
1958 const arm_2d_tile_t *ptTile; //!< target tile
1959 const arm_2d_region_t *ptRegion; //!< target region
1960 } Target; //!< target
1961 struct {
1962 const arm_2d_tile_t *ptTile; //!< Alpha Mask tile
1963 } Mask; //!< mask
1964 uint32_t wMode; //!< copy mode
1965 union {
1966 uint8_t chColour; //!< 8bit key colour
1967 uint16_t hwColour; //!< 16bit key colour
1968 uint32_t wColour; //!< 32bit key colour
1969 };
1970 uint8_t chRatio; //!< opacity
1972
1973/*!
1974 * \brief control block for colour-filling-with-opacity operations
1975 * \note arm_2d_op_fill_cl_t inherits from arm_2d_op_t explicitly
1976 */
1979 struct {
1980 const arm_2d_tile_t *ptTile; //!< target tile
1981 const arm_2d_region_t *ptRegion; //!< target region
1982 } Target; //!< target
1983 union {
1984 uint8_t chColour; //!< 8bit key colour
1985 uint16_t hwColour; //!< 16bit key colour
1986 uint32_t wColour; //!< 32bit key colour
1987 };
1988 uint8_t chRatio; //!< opacity
1990
1991/*!
1992 * \brief control block for copy with masks operations
1993 *
1994 */
1996
1997/*============================ GLOBAL VARIABLES ==============================*/
1998/*============================ PROTOTYPES ====================================*/
1999
2000/*----------------------------------------------------------------------------*
2001 * Copy tile to destination with specified transparency ratio (0~255) *
2002 *----------------------------------------------------------------------------*/
2003
2004/*!
2005 * \brief blend a source tile to a target tile with a specified opacity
2006 * \param[in] ptOP the control block, NULL means using the default control block
2007 * \param[in] ptSource the source tile
2008 * \param[in] ptTarget the target tile
2009 * \param[in] ptRegion the target region
2010 * \param[in] chRatio the opacity
2011 * \return arm_fsm_rt_t the operation result
2012 */
2013extern
2014ARM_NONNULL(2,3)
2016 const arm_2d_tile_t *ptSource,
2017 const arm_2d_tile_t *ptTarget,
2018 const arm_2d_region_t *ptRegion,
2019 uint_fast8_t chRatio);
2020
2021/*!
2022 * \brief blend a source tile to a target tile with a specified opacity
2023 * \param[in] ptOP the control block, NULL means using the default control block
2024 * \param[in] ptSource the source tile
2025 * \param[in] ptTarget the target tile
2026 * \param[in] ptRegion the target region
2027 * \param[in] chRatio the opacity
2028 * \return arm_fsm_rt_t the operation result
2029 */
2030extern
2031ARM_NONNULL(2,3)
2033 const arm_2d_tile_t *ptSource,
2034 const arm_2d_tile_t *ptTarget,
2035 const arm_2d_region_t *ptRegion,
2036 uint_fast8_t chRatio);
2037
2038/*!
2039 * \brief blend a source tile to a target tile with a specified opacity
2040 * \param[in] ptOP the control block, NULL means using the default control block
2041 * \param[in] ptSource the source tile
2042 * \param[in] ptTarget the target tile
2043 * \param[in] ptRegion the target region
2044 * \param[in] chRatio the opacity
2045 * \return arm_fsm_rt_t the operation result
2046 */
2047extern
2048ARM_NONNULL(2,3)
2050 const arm_2d_tile_t *ptSource,
2051 const arm_2d_tile_t *ptTarget,
2052 const arm_2d_region_t *ptRegion,
2053 uint_fast8_t chRatio);
2054
2055
2056/*----------------------------------------------------------------------------*
2057 * Fill a specified region with a given colour and transparency ratio (0~255) *
2058 *----------------------------------------------------------------------------*/
2059
2060/*!
2061 * \brief fill a target tile with a given gray8 colour and a specified opacity
2062 * \param[in] ptOP the control block, NULL means using the default control block
2063 * \param[in] ptTarget the target tile
2064 * \param[in] ptRegion the target region
2065 * \param[in] tColour a gray8 colour
2066 * \param[in] chRatio the opacity
2067 * \return arm_fsm_rt_t the operation result
2068 */
2069extern
2070ARM_NONNULL(2)
2073 const arm_2d_tile_t *ptTarget,
2074 const arm_2d_region_t *ptRegion,
2075 arm_2d_color_gray8_t tColour,
2076 uint_fast8_t chRatio);
2077
2078/*!
2079 * \brief fill a target tile with a given rgb565 colour and a specified opacity
2080 * \param[in] ptOP the control block, NULL means using the default control block
2081 * \param[in] ptTarget the target tile
2082 * \param[in] ptRegion the target region
2083 * \param[in] tColour a rgb565 colour
2084 * \param[in] chRatio the opacity
2085 * \return arm_fsm_rt_t the operation result
2086 */
2087extern
2088ARM_NONNULL(2)
2091 const arm_2d_tile_t *ptTarget,
2092 const arm_2d_region_t *ptRegion,
2093 arm_2d_color_rgb565_t tColour,
2094 uint_fast8_t chRatio);
2095
2096/*!
2097 * \brief fill a target tile with a given cccn888 colour and a specified opacity
2098 * \param[in] ptOP the control block, NULL means using the default control block
2099 * \param[in] ptTarget the target tile
2100 * \param[in] ptRegion the target region
2101 * \param[in] tColour a cccn888 colour
2102 * \param[in] chRatio the opacity
2103 * \return arm_fsm_rt_t the operation result
2104 */
2105extern
2106ARM_NONNULL(2)
2109 const arm_2d_tile_t *ptTarget,
2110 const arm_2d_region_t *ptRegion,
2111 arm_2d_color_cccn888_t tColour,
2112 uint_fast8_t chRatio);
2113
2114/*----------------------------------------------------------------------------*
2115 * Fill tile with a specified colour and an a2 mask *
2116 *----------------------------------------------------------------------------*/
2117
2118/*!
2119 * \brief fill a target tile with a given gray8 colour and an a2 mask on target side
2120 * \param[in] ptOP the control block, NULL means using the default control block
2121 * \param[in] ptTarget the target tile
2122 * \param[in] ptRegion the target region
2123 * \param[in] ptAlpha the mask on the target side
2124 * \param[in] tColour a gray8 colour
2125 * \return arm_fsm_rt_t the operation result
2126 */
2127extern
2128ARM_NONNULL(2,4)
2131 const arm_2d_tile_t *ptTarget,
2132 const arm_2d_region_t *ptRegion,
2133 const arm_2d_tile_t *ptAlpha,
2134 arm_2d_color_gray8_t tColour);
2135
2136/*!
2137 * \brief fill a target tile with a given rgb565 colour and an a2 mask on target side
2138 * \param[in] ptOP the control block, NULL means using the default control block
2139 * \param[in] ptTarget the target tile
2140 * \param[in] ptRegion the target region
2141 * \param[in] ptAlpha the mask on the target side
2142 * \param[in] tColour a rgb565 colour
2143 * \return arm_fsm_rt_t the operation result
2144 */
2145extern
2146ARM_NONNULL(2,4)
2149 const arm_2d_tile_t *ptTarget,
2150 const arm_2d_region_t *ptRegion,
2151 const arm_2d_tile_t *ptAlpha,
2152 arm_2d_color_rgb565_t tColour);
2153
2154/*!
2155 * \brief fill a target tile with a given cccn888 colour and an a2 mask on target side
2156 * \param[in] ptOP the control block, NULL means using the default control block
2157 * \param[in] ptTarget the target tile
2158 * \param[in] ptRegion the target region
2159 * \param[in] ptAlpha the mask on the target side
2160 * \param[in] tColour a cccn888 colour
2161 * \return arm_fsm_rt_t the operation result
2162 */
2163extern
2164ARM_NONNULL(2,4)
2167 const arm_2d_tile_t *ptTarget,
2168 const arm_2d_region_t *ptRegion,
2169 const arm_2d_tile_t *ptAlpha,
2170 arm_2d_color_cccn888_t tColour);
2171
2172
2173/*----------------------------------------------------------------------------*
2174 * Fill tile with a specified colour and an a4 mask *
2175 *----------------------------------------------------------------------------*/
2176
2177/*!
2178 * \brief fill a target tile with a given gray8 colour and an a4 mask on target side
2179 * \param[in] ptOP the control block, NULL means using the default control block
2180 * \param[in] ptTarget the target tile
2181 * \param[in] ptRegion the target region
2182 * \param[in] ptAlpha the mask on the target side
2183 * \param[in] tColour a gray8 colour
2184 * \return arm_fsm_rt_t the operation result
2185 */
2186extern
2187ARM_NONNULL(2,4)
2190 const arm_2d_tile_t *ptTarget,
2191 const arm_2d_region_t *ptRegion,
2192 const arm_2d_tile_t *ptAlpha,
2193 arm_2d_color_gray8_t tColour);
2194
2195/*!
2196 * \brief fill a target tile with a given rgb565 colour and an a4 mask on target side
2197 * \param[in] ptOP the control block, NULL means using the default control block
2198 * \param[in] ptTarget the target tile
2199 * \param[in] ptRegion the target region
2200 * \param[in] ptAlpha the mask on the target side
2201 * \param[in] tColour a rgb565 colour
2202 * \return arm_fsm_rt_t the operation result
2203 */
2204extern
2205ARM_NONNULL(2,4)
2208 const arm_2d_tile_t *ptTarget,
2209 const arm_2d_region_t *ptRegion,
2210 const arm_2d_tile_t *ptAlpha,
2211 arm_2d_color_rgb565_t tColour);
2212
2213/*!
2214 * \brief fill a target tile with a given cccn888 colour and an a4 mask on target side
2215 * \param[in] ptOP the control block, NULL means using the default control block
2216 * \param[in] ptTarget the target tile
2217 * \param[in] ptRegion the target region
2218 * \param[in] ptAlpha the mask on the target side
2219 * \param[in] tColour a cccn888 colour
2220 * \return arm_fsm_rt_t the operation result
2221 */
2222extern
2223ARM_NONNULL(2,4)
2226 const arm_2d_tile_t *ptTarget,
2227 const arm_2d_region_t *ptRegion,
2228 const arm_2d_tile_t *ptAlpha,
2229 arm_2d_color_cccn888_t tColour);
2230
2231/*----------------------------------------------------------------------------*
2232 * Fill tile with a specified colour and an a8 mask *
2233 *----------------------------------------------------------------------------*/
2234
2235/*!
2236 * \brief fill a target tile with a given gray8 colour and a mask on target side
2237 * \param[in] ptOP the control block, NULL means using the default control block
2238 * \param[in] ptTarget the target tile
2239 * \param[in] ptRegion the target region
2240 * \param[in] ptAlpha the mask on the target side
2241 * \param[in] tColour a gray8 colour
2242 * \return arm_fsm_rt_t the operation result
2243 */
2244extern
2245ARM_NONNULL(2,4)
2248 const arm_2d_tile_t *ptTarget,
2249 const arm_2d_region_t *ptRegion,
2250 const arm_2d_tile_t *ptAlpha,
2251 arm_2d_color_gray8_t tColour);
2252
2253/*!
2254 * \brief fill a target tile with a given rgb565 colour and a mask on target side
2255 * \param[in] ptOP the control block, NULL means using the default control block
2256 * \param[in] ptTarget the target tile
2257 * \param[in] ptRegion the target region
2258 * \param[in] ptAlpha the mask on the target side
2259 * \param[in] tColour a rgb565 colour
2260 * \return arm_fsm_rt_t the operation result
2261 */
2262extern
2263ARM_NONNULL(2,4)
2266 const arm_2d_tile_t *ptTarget,
2267 const arm_2d_region_t *ptRegion,
2268 const arm_2d_tile_t *ptAlpha,
2269 arm_2d_color_rgb565_t tColour);
2270
2271/*!
2272 * \brief fill a target tile with a given cccn888 colour and a mask on target side
2273 * \param[in] ptOP the control block, NULL means using the default control block
2274 * \param[in] ptTarget the target tile
2275 * \param[in] ptRegion the target region
2276 * \param[in] ptAlpha the mask on the target side
2277 * \param[in] tColour a cccn888 colour
2278 * \return arm_fsm_rt_t the operation result
2279 */
2280extern
2281ARM_NONNULL(2,4)
2284 const arm_2d_tile_t *ptTarget,
2285 const arm_2d_region_t *ptRegion,
2286 const arm_2d_tile_t *ptAlpha,
2287 arm_2d_color_cccn888_t tColour);
2288
2289
2290/*----------------------------------------------------------------------------*
2291 * Fill tile with a specified colour, an a2 mask and a specified opacity *
2292 *----------------------------------------------------------------------------*/
2293
2294/*!
2295 * \brief fill a target tile with a given gray8 colour, an a2 mask on target side and an opacity
2296 * \param[in] ptOP the control block, NULL means using the default control block
2297 * \param[in] ptTarget the target tile
2298 * \param[in] ptRegion the target region
2299 * \param[in] ptAlpha the mask on the target side
2300 * \param[in] tColour a gray8 colour
2301 * \param[in] chOpacity the opacity
2302 * \return arm_fsm_rt_t the operation result
2303 */
2304extern
2305ARM_NONNULL(2,4)
2308 const arm_2d_tile_t *ptTarget,
2309 const arm_2d_region_t *ptRegion,
2310 const arm_2d_tile_t *ptAlpha,
2311 arm_2d_color_gray8_t tColour,
2312 uint8_t chOpacity);
2313
2314/*!
2315 * \brief fill a target tile with a given rgb565 colour, an a2 mask on target side and an opacity
2316 * \param[in] ptOP the control block, NULL means using the default control block
2317 * \param[in] ptTarget the target tile
2318 * \param[in] ptRegion the target region
2319 * \param[in] ptAlpha the mask on the target side
2320 * \param[in] tColour a rgb565 colour
2321 * \param[in] chOpacity the opacity
2322 * \return arm_fsm_rt_t the operation result
2323 */
2324extern
2325ARM_NONNULL(2,4)
2328 const arm_2d_tile_t *ptTarget,
2329 const arm_2d_region_t *ptRegion,
2330 const arm_2d_tile_t *ptAlpha,
2331 arm_2d_color_rgb565_t tColour,
2332 uint8_t chOpacity);
2333
2334/*!
2335 * \brief fill a target tile with a given cccn888 colour, an a2 mask on target side and an opacity
2336 * \param[in] ptOP the control block, NULL means using the default control block
2337 * \param[in] ptTarget the target tile
2338 * \param[in] ptRegion the target region
2339 * \param[in] ptAlpha the mask on the target side
2340 * \param[in] tColour a cccn888 colour
2341 * \param[in] chOpacity the opacity
2342 * \return arm_fsm_rt_t the operation result
2343 */
2344extern
2345ARM_NONNULL(2,4)
2348 const arm_2d_tile_t *ptTarget,
2349 const arm_2d_region_t *ptRegion,
2350 const arm_2d_tile_t *ptAlpha,
2351 arm_2d_color_cccn888_t tColour,
2352 uint8_t chOpacity);
2353
2354/*----------------------------------------------------------------------------*
2355 * Fill tile with a specified colour, an a4 mask and a specified opacity *
2356 *----------------------------------------------------------------------------*/
2357
2358/*!
2359 * \brief fill a target tile with a given gray8 colour, an a4 mask on target side and an opacity
2360 * \param[in] ptOP the control block, NULL means using the default control block
2361 * \param[in] ptTarget the target tile
2362 * \param[in] ptRegion the target region
2363 * \param[in] ptAlpha the mask on the target side
2364 * \param[in] tColour a gray8 colour
2365 * \param[in] chOpacity the opacity
2366 * \return arm_fsm_rt_t the operation result
2367 */
2368extern
2369ARM_NONNULL(2,4)
2372 const arm_2d_tile_t *ptTarget,
2373 const arm_2d_region_t *ptRegion,
2374 const arm_2d_tile_t *ptAlpha,
2375 arm_2d_color_gray8_t tColour,
2376 uint8_t chOpacity);
2377
2378/*!
2379 * \brief fill a target tile with a given rgb565 colour, an a4 mask on target side and an opacity
2380 * \param[in] ptOP the control block, NULL means using the default control block
2381 * \param[in] ptTarget the target tile
2382 * \param[in] ptRegion the target region
2383 * \param[in] ptAlpha the mask on the target side
2384 * \param[in] tColour a rgb565 colour
2385 * \param[in] chOpacity the opacity
2386 * \return arm_fsm_rt_t the operation result
2387 */
2388extern
2389ARM_NONNULL(2,4)
2392 const arm_2d_tile_t *ptTarget,
2393 const arm_2d_region_t *ptRegion,
2394 const arm_2d_tile_t *ptAlpha,
2395 arm_2d_color_rgb565_t tColour,
2396 uint8_t chOpacity);
2397
2398/*!
2399 * \brief fill a target tile with a given cccn888 colour, an a4 mask on target side and an opacity
2400 * \param[in] ptOP the control block, NULL means using the default control block
2401 * \param[in] ptTarget the target tile
2402 * \param[in] ptRegion the target region
2403 * \param[in] ptAlpha the mask on the target side
2404 * \param[in] tColour a cccn888 colour
2405 * \param[in] chOpacity the opacity
2406 * \return arm_fsm_rt_t the operation result
2407 */
2408extern
2409ARM_NONNULL(2,4)
2412 const arm_2d_tile_t *ptTarget,
2413 const arm_2d_region_t *ptRegion,
2414 const arm_2d_tile_t *ptAlpha,
2415 arm_2d_color_cccn888_t tColour,
2416 uint8_t chOpacity);
2417
2418/*----------------------------------------------------------------------------*
2419 * Fill tile with a specified colour, an alpha mask and a specified opacity *
2420 *----------------------------------------------------------------------------*/
2421
2422/*!
2423 * \brief fill a target tile with a given gray8 colour, a mask on target side and an opacity
2424 * \param[in] ptOP the control block, NULL means using the default control block
2425 * \param[in] ptTarget the target tile
2426 * \param[in] ptRegion the target region
2427 * \param[in] ptAlpha the mask on the target side
2428 * \param[in] tColour a gray8 colour
2429 * \param[in] chOpacity the opacity
2430 * \return arm_fsm_rt_t the operation result
2431 */
2432extern
2433ARM_NONNULL(2,4)
2436 const arm_2d_tile_t *ptTarget,
2437 const arm_2d_region_t *ptRegion,
2438 const arm_2d_tile_t *ptAlpha,
2439 arm_2d_color_gray8_t tColour,
2440 uint8_t chOpacity);
2441
2442/*!
2443 * \brief fill a target tile with a given rgb565 colour, a mask on target side and an opacity
2444 * \param[in] ptOP the control block, NULL means using the default control block
2445 * \param[in] ptTarget the target tile
2446 * \param[in] ptRegion the target region
2447 * \param[in] ptAlpha the mask on the target side
2448 * \param[in] tColour a rgb565 colour
2449 * \param[in] chOpacity the opacity
2450 * \return arm_fsm_rt_t the operation result
2451 */
2452extern
2453ARM_NONNULL(2,4)
2456 const arm_2d_tile_t *ptTarget,
2457 const arm_2d_region_t *ptRegion,
2458 const arm_2d_tile_t *ptAlpha,
2459 arm_2d_color_rgb565_t tColour,
2460 uint8_t chOpacity);
2461
2462/*!
2463 * \brief fill a target tile with a given cccn888 colour, a mask on target side and an opacity
2464 * \param[in] ptOP the control block, NULL means using the default control block
2465 * \param[in] ptTarget the target tile
2466 * \param[in] ptRegion the target region
2467 * \param[in] ptAlpha the mask on the target side
2468 * \param[in] tColour a cccn888 colour
2469 * \param[in] chOpacity the opacity
2470 * \return arm_fsm_rt_t the operation result
2471 */
2472extern
2473ARM_NONNULL(2,4)
2476 const arm_2d_tile_t *ptTarget,
2477 const arm_2d_region_t *ptRegion,
2478 const arm_2d_tile_t *ptAlpha,
2479 arm_2d_color_cccn888_t tColour,
2480 uint8_t chOpacity);
2481
2482/*----------------------------------------------------------------------------*
2483 * Blend tile and background with a specified transparency ratio(0~255) and a *
2484 * specified transparency color mask *
2485 *----------------------------------------------------------------------------*/
2486
2487/*!
2488 * \brief blend a source tile to a target tile with a opacity and colour keying
2489 * \param[in] ptOP the control block, NULL means using the default control block
2490 * \param[in] ptSource the source tile
2491 * \param[in] ptTarget the target tile
2492 * \param[in] ptRegion the target region
2493 * \param[in] chRatio the opacity
2494 * \param[in] tColour the key colour
2495 * \return arm_fsm_rt_t the operation result
2496 */
2497extern
2498ARM_NONNULL(2,3)
2501 const arm_2d_tile_t *ptSource,
2502 const arm_2d_tile_t *ptTarget,
2503 const arm_2d_region_t *ptRegion,
2504 uint_fast8_t chRatio,
2505 arm_2d_color_gray8_t tColour);
2506
2507/*!
2508 * \brief blend a source tile to a target tile with a opacity and colour keying
2509 * \param[in] ptOP the control block, NULL means using the default control block
2510 * \param[in] ptSource the source tile
2511 * \param[in] ptTarget the target tile
2512 * \param[in] ptRegion the target region
2513 * \param[in] chRatio the opacity
2514 * \param[in] tColour the key colour
2515 * \return arm_fsm_rt_t the operation result
2516 */
2517extern
2518ARM_NONNULL(2,3)
2521 const arm_2d_tile_t *ptSource,
2522 const arm_2d_tile_t *ptTarget,
2523 const arm_2d_region_t *ptRegion,
2524 uint_fast8_t chRatio,
2525 arm_2d_color_rgb565_t tColour);
2526
2527/*!
2528 * \brief blend a source tile to a target tile with a opacity and colour keying
2529 * \param[in] ptOP the control block, NULL means using the default control block
2530 * \param[in] ptSource the source tile
2531 * \param[in] ptTarget the target tile
2532 * \param[in] ptRegion the target region
2533 * \param[in] chRatio the opacity
2534 * \param[in] tColour the key colour
2535 * \return arm_fsm_rt_t the operation result
2536 */
2537extern
2538ARM_NONNULL(2,3)
2541 const arm_2d_tile_t *ptSource,
2542 const arm_2d_tile_t *ptTarget,
2543 const arm_2d_region_t *ptRegion,
2544 uint_fast8_t chRatio,
2545 arm_2d_color_cccn888_t tColour);
2546
2547/*----------------------------------------------------------------------------*
2548 * Copy tile to target tile with a source mask, a target mask and a given mode*
2549 *----------------------------------------------------------------------------*/
2550
2551/*!
2552 * \brief copy a source tile to a target tile with masks in a given mode
2553 * \param[in] ptOP the control block, NULL means using the default control block
2554 * \param[in] ptSource the source tile
2555 * \param[in] ptSrcMask the mask on the source side
2556 * \param[in] ptTarget the target tile
2557 * \param[in] ptDesMask the mask on the target side
2558 * \param[in] ptRegion the target region
2559 * \param[in] wMode the copy mode
2560 * \return arm_fsm_rt_t the operation result
2561 */
2562extern
2563ARM_NONNULL(2,3,4,5)
2565 arm_2d_op_cp_msk_t *ptOP,
2566 const arm_2d_tile_t *ptSource,
2567 const arm_2d_tile_t *ptSrcMask,
2568 const arm_2d_tile_t *ptTarget,
2569 const arm_2d_tile_t *ptDesMask,
2570 const arm_2d_region_t *ptRegion,
2571 uint32_t wMode);
2572
2573/*!
2574 * \brief copy a source tile to a target tile with masks in a given mode
2575 * \param[in] ptOP the control block, NULL means using the default control block
2576 * \param[in] ptSource the source tile
2577 * \param[in] ptSrcMask the mask on the source side
2578 * \param[in] ptTarget the target tile
2579 * \param[in] ptDesMask the mask on the target side
2580 * \param[in] ptRegion the target region
2581 * \param[in] wMode the copy mode
2582 * \return arm_fsm_rt_t the operation result
2583 */
2584extern
2585ARM_NONNULL(2,3,4,5)
2587 arm_2d_op_cp_msk_t *ptOP,
2588 const arm_2d_tile_t *ptSource,
2589 const arm_2d_tile_t *ptSrcMask,
2590 const arm_2d_tile_t *ptTarget,
2591 const arm_2d_tile_t *ptDesMask,
2592 const arm_2d_region_t *ptRegion,
2593 uint32_t wMode);
2594
2595/*!
2596 * \brief copy a source tile to a target tile with masks in a given mode
2597 * \param[in] ptOP the control block, NULL means using the default control block
2598 * \param[in] ptSource the source tile
2599 * \param[in] ptSrcMask the mask on the source side
2600 * \param[in] ptTarget the target tile
2601 * \param[in] ptDesMask the mask on the target side
2602 * \param[in] ptRegion the target region
2603 * \param[in] wMode the copy mode
2604 * \return arm_fsm_rt_t the operation result
2605 */
2606extern
2607ARM_NONNULL(2,3,4,5)
2609 arm_2d_op_cp_msk_t *ptOP,
2610 const arm_2d_tile_t *ptSource,
2611 const arm_2d_tile_t *ptSrcMask,
2612 const arm_2d_tile_t *ptTarget,
2613 const arm_2d_tile_t *ptDesMask,
2614 const arm_2d_region_t *ptRegion,
2615 uint32_t wMode);
2616
2617/*----------------------------------------------------------------------------*
2618 * Copy tile to target tile with a source mask and a target mask *
2619 *----------------------------------------------------------------------------*/
2620
2621/*!
2622 * \brief copy a source tile to a target tile with masks
2623 * \param[in] ptOP the control block, NULL means using the default control block
2624 * \param[in] ptSource the source tile
2625 * \param[in] ptSrcMask the mask on the source side
2626 * \param[in] ptTarget the target tile
2627 * \param[in] ptDesMask the mask on the target side
2628 * \param[in] ptRegion the target region
2629 * \return arm_fsm_rt_t the operation result
2630 */
2631extern
2632ARM_NONNULL(2,3,4,5)
2634 arm_2d_op_cp_msk_t *ptOP,
2635 const arm_2d_tile_t *ptSource,
2636 const arm_2d_tile_t *ptSrcMask,
2637 const arm_2d_tile_t *ptTarget,
2638 const arm_2d_tile_t *ptDesMask,
2639 const arm_2d_region_t *ptRegion);
2640
2641/*!
2642 * \brief copy a source tile to a target tile with masks
2643 * \param[in] ptOP the control block, NULL means using the default control block
2644 * \param[in] ptSource the source tile
2645 * \param[in] ptSrcMask the mask on the source side
2646 * \param[in] ptTarget the target tile
2647 * \param[in] ptDesMask the mask on the target side
2648 * \param[in] ptRegion the target region
2649 * \return arm_fsm_rt_t the operation result
2650 */
2651extern
2652ARM_NONNULL(2,3,4,5)
2654 arm_2d_op_cp_msk_t *ptOP,
2655 const arm_2d_tile_t *ptSource,
2656 const arm_2d_tile_t *ptSrcMask,
2657 const arm_2d_tile_t *ptTarget,
2658 const arm_2d_tile_t *ptDesMask,
2659 const arm_2d_region_t *ptRegion);
2660
2661/*!
2662 * \brief copy a source tile to a target tile with masks
2663 * \param[in] ptOP the control block, NULL means using the default control block
2664 * \param[in] ptSource the source tile
2665 * \param[in] ptSrcMask the mask on the source side
2666 * \param[in] ptTarget the target tile
2667 * \param[in] ptDesMask the mask on the target side
2668 * \param[in] ptRegion the target region
2669 * \return arm_fsm_rt_t the operation result
2670 */
2671extern
2672ARM_NONNULL(2,3,4,5)
2674 arm_2d_op_cp_msk_t *ptOP,
2675 const arm_2d_tile_t *ptSource,
2676 const arm_2d_tile_t *ptSrcMask,
2677 const arm_2d_tile_t *ptTarget,
2678 const arm_2d_tile_t *ptDesMask,
2679 const arm_2d_region_t *ptRegion);
2680
2681
2682/*----------------------------------------------------------------------------*
2683 * Copy tile to target tile with a source mask, a target mask and x-mirroring *
2684 *----------------------------------------------------------------------------*/
2685
2686/*!
2687 * \brief copy a source tile to a target tile with masks and x-mirroring
2688 * \param[in] ptOP the control block, NULL means using the default control block
2689 * \param[in] ptSource the source tile
2690 * \param[in] ptSrcMask the mask on the source side
2691 * \param[in] ptTarget the target tile
2692 * \param[in] ptDesMask the mask on the target side
2693 * \param[in] ptRegion the target region
2694 * \return arm_fsm_rt_t the operation result
2695 */
2696extern
2697ARM_NONNULL(2,3,4,5)
2699 arm_2d_op_cp_msk_t *ptOP,
2700 const arm_2d_tile_t *ptSource,
2701 const arm_2d_tile_t *ptSrcMask,
2702 const arm_2d_tile_t *ptTarget,
2703 const arm_2d_tile_t *ptDesMask,
2704 const arm_2d_region_t *ptRegion);
2705
2706/*!
2707 * \brief copy a source tile to a target tile with masks and x-mirroring
2708 * \param[in] ptOP the control block, NULL means using the default control block
2709 * \param[in] ptSource the source tile
2710 * \param[in] ptSrcMask the mask on the source side
2711 * \param[in] ptTarget the target tile
2712 * \param[in] ptDesMask the mask on the target side
2713 * \param[in] ptRegion the target region
2714 * \return arm_fsm_rt_t the operation result
2715 */
2716extern
2717ARM_NONNULL(2,3,4,5)
2719 arm_2d_op_cp_msk_t *ptOP,
2720 const arm_2d_tile_t *ptSource,
2721 const arm_2d_tile_t *ptSrcMask,
2722 const arm_2d_tile_t *ptTarget,
2723 const arm_2d_tile_t *ptDesMask,
2724 const arm_2d_region_t *ptRegion);
2725
2726/*!
2727 * \brief copy a source tile to a target tile with masks and x-mirroring
2728 * \param[in] ptOP the control block, NULL means using the default control block
2729 * \param[in] ptSource the source tile
2730 * \param[in] ptSrcMask the mask on the source side
2731 * \param[in] ptTarget the target tile
2732 * \param[in] ptDesMask the mask on the target side
2733 * \param[in] ptRegion the target region
2734 * \return arm_fsm_rt_t the operation result
2735 */
2736extern
2737ARM_NONNULL(2,3,4,5)
2739 arm_2d_op_cp_msk_t *ptOP,
2740 const arm_2d_tile_t *ptSource,
2741 const arm_2d_tile_t *ptSrcMask,
2742 const arm_2d_tile_t *ptTarget,
2743 const arm_2d_tile_t *ptDesMask,
2744 const arm_2d_region_t *ptRegion);
2745
2746
2747/*----------------------------------------------------------------------------*
2748 * Copy tile to target tile with a source mask, a target mask and y-mirroring *
2749 *----------------------------------------------------------------------------*/
2750
2751/*!
2752 * \brief copy a source tile to a target tile with masks and y-mirroring
2753 * \param[in] ptOP the control block, NULL means using the default control block
2754 * \param[in] ptSource the source tile
2755 * \param[in] ptSrcMask the mask on the source side
2756 * \param[in] ptTarget the target tile
2757 * \param[in] ptDesMask the mask on the target side
2758 * \param[in] ptRegion the target region
2759 * \return arm_fsm_rt_t the operation result
2760 */
2761extern
2762ARM_NONNULL(2,3,4,5)
2764 arm_2d_op_cp_msk_t *ptOP,
2765 const arm_2d_tile_t *ptSource,
2766 const arm_2d_tile_t *ptSrcMask,
2767 const arm_2d_tile_t *ptTarget,
2768 const arm_2d_tile_t *ptDesMask,
2769 const arm_2d_region_t *ptRegion);
2770
2771/*!
2772 * \brief copy a source tile to a target tile with masks and y-mirroring
2773 * \param[in] ptOP the control block, NULL means using the default control block
2774 * \param[in] ptSource the source tile
2775 * \param[in] ptSrcMask the mask on the source side
2776 * \param[in] ptTarget the target tile
2777 * \param[in] ptDesMask the mask on the target side
2778 * \param[in] ptRegion the target region
2779 * \return arm_fsm_rt_t the operation result
2780 */
2781extern
2782ARM_NONNULL(2,3,4,5)
2784 arm_2d_op_cp_msk_t *ptOP,
2785 const arm_2d_tile_t *ptSource,
2786 const arm_2d_tile_t *ptSrcMask,
2787 const arm_2d_tile_t *ptTarget,
2788 const arm_2d_tile_t *ptDesMask,
2789 const arm_2d_region_t *ptRegion);
2790
2791/*!
2792 * \brief copy a source tile to a target tile with masks and y-mirroring
2793 * \param[in] ptOP the control block, NULL means using the default control block
2794 * \param[in] ptSource the source tile
2795 * \param[in] ptSrcMask the mask on the source side
2796 * \param[in] ptTarget the target tile
2797 * \param[in] ptDesMask the mask on the target side
2798 * \param[in] ptRegion the target region
2799 * \return arm_fsm_rt_t the operation result
2800 */
2801extern
2802ARM_NONNULL(2,3,4,5)
2804 arm_2d_op_cp_msk_t *ptOP,
2805 const arm_2d_tile_t *ptSource,
2806 const arm_2d_tile_t *ptSrcMask,
2807 const arm_2d_tile_t *ptTarget,
2808 const arm_2d_tile_t *ptDesMask,
2809 const arm_2d_region_t *ptRegion);
2810
2811
2812/*----------------------------------------------------------------------------*
2813 * Copy tile to target tile with a source mask, a target mask and xy-mirroring *
2814 *----------------------------------------------------------------------------*/
2815
2816/*!
2817 * \brief copy a source tile to a target tile with masks and xy-mirroring
2818 * \param[in] ptOP the control block, NULL means using the default control block
2819 * \param[in] ptSource the source tile
2820 * \param[in] ptSrcMask the mask on the source side
2821 * \param[in] ptTarget the target tile
2822 * \param[in] ptDesMask the mask on the target side
2823 * \param[in] ptRegion the target region
2824 * \return arm_fsm_rt_t the operation result
2825 */
2826extern
2827ARM_NONNULL(2,3,4,5)
2829 arm_2d_op_cp_msk_t *ptOP,
2830 const arm_2d_tile_t *ptSource,
2831 const arm_2d_tile_t *ptSrcMask,
2832 const arm_2d_tile_t *ptTarget,
2833 const arm_2d_tile_t *ptDesMask,
2834 const arm_2d_region_t *ptRegion);
2835
2836/*!
2837 * \brief copy a source tile to a target tile with masks and xy-mirroring
2838 * \param[in] ptOP the control block, NULL means using the default control block
2839 * \param[in] ptSource the source tile
2840 * \param[in] ptSrcMask the mask on the source side
2841 * \param[in] ptTarget the target tile
2842 * \param[in] ptDesMask the mask on the target side
2843 * \param[in] ptRegion the target region
2844 * \return arm_fsm_rt_t the operation result
2845 */
2846extern
2847ARM_NONNULL(2,3,4,5)
2849 arm_2d_op_cp_msk_t *ptOP,
2850 const arm_2d_tile_t *ptSource,
2851 const arm_2d_tile_t *ptSrcMask,
2852 const arm_2d_tile_t *ptTarget,
2853 const arm_2d_tile_t *ptDesMask,
2854 const arm_2d_region_t *ptRegion);
2855
2856/*!
2857 * \brief copy a source tile to a target tile with masks and xy-mirroring
2858 * \param[in] ptOP the control block, NULL means using the default control block
2859 * \param[in] ptSource the source tile
2860 * \param[in] ptSrcMask the mask on the source side
2861 * \param[in] ptTarget the target tile
2862 * \param[in] ptDesMask the mask on the target side
2863 * \param[in] ptRegion the target region
2864 * \return arm_fsm_rt_t the operation result
2865 */
2866extern
2867ARM_NONNULL(2,3,4,5)
2869 arm_2d_op_cp_msk_t *ptOP,
2870 const arm_2d_tile_t *ptSource,
2871 const arm_2d_tile_t *ptSrcMask,
2872 const arm_2d_tile_t *ptTarget,
2873 const arm_2d_tile_t *ptDesMask,
2874 const arm_2d_region_t *ptRegion);
2875
2876/*----------------------------------------------------------------------------*
2877 * Fill tile to target tile with a source mask and a target mask *
2878 *----------------------------------------------------------------------------*/
2879
2880/*!
2881 * \brief fill a source tile to a target tile with masks
2882 * \param[in] ptOP the control block, NULL means using the default control block
2883 * \param[in] ptSource the source tile
2884 * \param[in] ptSrcMask the mask on the source side
2885 * \param[in] ptTarget the target tile
2886 * \param[in] ptDesMask the mask on the target side
2887 * \param[in] ptRegion the target region
2888 * \return arm_fsm_rt_t the operation result
2889 */
2890extern
2891ARM_NONNULL(2,3,4,5)
2893 arm_2d_op_cp_msk_t *ptOP,
2894 const arm_2d_tile_t *ptSource,
2895 const arm_2d_tile_t *ptSrcMask,
2896 const arm_2d_tile_t *ptTarget,
2897 const arm_2d_tile_t *ptDesMask,
2898 const arm_2d_region_t *ptRegion);
2899
2900/*!
2901 * \brief fill a source tile to a target tile with masks
2902 * \param[in] ptOP the control block, NULL means using the default control block
2903 * \param[in] ptSource the source tile
2904 * \param[in] ptSrcMask the mask on the source side
2905 * \param[in] ptTarget the target tile
2906 * \param[in] ptDesMask the mask on the target side
2907 * \param[in] ptRegion the target region
2908 * \return arm_fsm_rt_t the operation result
2909 */
2910extern
2911ARM_NONNULL(2,3,4,5)
2913 arm_2d_op_cp_msk_t *ptOP,
2914 const arm_2d_tile_t *ptSource,
2915 const arm_2d_tile_t *ptSrcMask,
2916 const arm_2d_tile_t *ptTarget,
2917 const arm_2d_tile_t *ptDesMask,
2918 const arm_2d_region_t *ptRegion);
2919
2920/*!
2921 * \brief fill a source tile to a target tile with masks
2922 * \param[in] ptOP the control block, NULL means using the default control block
2923 * \param[in] ptSource the source tile
2924 * \param[in] ptSrcMask the mask on the source side
2925 * \param[in] ptTarget the target tile
2926 * \param[in] ptDesMask the mask on the target side
2927 * \param[in] ptRegion the target region
2928 * \return arm_fsm_rt_t the operation result
2929 */
2930extern
2931ARM_NONNULL(2,3,4,5)
2933 arm_2d_op_cp_msk_t *ptOP,
2934 const arm_2d_tile_t *ptSource,
2935 const arm_2d_tile_t *ptSrcMask,
2936 const arm_2d_tile_t *ptTarget,
2937 const arm_2d_tile_t *ptDesMask,
2938 const arm_2d_region_t *ptRegion);
2939
2940
2941/*----------------------------------------------------------------------------*
2942 * Fill tile to target tile with a source mask, a target mask and x-mirroring *
2943 *----------------------------------------------------------------------------*/
2944
2945/*!
2946 * \brief fill a source tile to a target tile with masks and x-mirroring
2947 * \param[in] ptOP the control block, NULL means using the default control block
2948 * \param[in] ptSource the source tile
2949 * \param[in] ptSrcMask the mask on the source side
2950 * \param[in] ptTarget the target tile
2951 * \param[in] ptDesMask the mask on the target side
2952 * \param[in] ptRegion the target region
2953 * \return arm_fsm_rt_t the operation result
2954 */
2955extern
2956ARM_NONNULL(2,3,4,5)
2958 arm_2d_op_cp_msk_t *ptOP,
2959 const arm_2d_tile_t *ptSource,
2960 const arm_2d_tile_t *ptSrcMask,
2961 const arm_2d_tile_t *ptTarget,
2962 const arm_2d_tile_t *ptDesMask,
2963 const arm_2d_region_t *ptRegion);
2964
2965/*!
2966 * \brief fill a source tile to a target tile with masks and x-mirroring
2967 * \param[in] ptOP the control block, NULL means using the default control block
2968 * \param[in] ptSource the source tile
2969 * \param[in] ptSrcMask the mask on the source side
2970 * \param[in] ptTarget the target tile
2971 * \param[in] ptDesMask the mask on the target side
2972 * \param[in] ptRegion the target region
2973 * \return arm_fsm_rt_t the operation result
2974 */
2975extern
2976ARM_NONNULL(2,3,4,5)
2978 arm_2d_op_cp_msk_t *ptOP,
2979 const arm_2d_tile_t *ptSource,
2980 const arm_2d_tile_t *ptSrcMask,
2981 const arm_2d_tile_t *ptTarget,
2982 const arm_2d_tile_t *ptDesMask,
2983 const arm_2d_region_t *ptRegion);
2984
2985/*!
2986 * \brief fill a source tile to a target tile with masks and x-mirroring
2987 * \param[in] ptOP the control block, NULL means using the default control block
2988 * \param[in] ptSource the source tile
2989 * \param[in] ptSrcMask the mask on the source side
2990 * \param[in] ptTarget the target tile
2991 * \param[in] ptDesMask the mask on the target side
2992 * \param[in] ptRegion the target region
2993 * \return arm_fsm_rt_t the operation result
2994 */
2995extern
2996ARM_NONNULL(2,3,4,5)
2998 arm_2d_op_cp_msk_t *ptOP,
2999 const arm_2d_tile_t *ptSource,
3000 const arm_2d_tile_t *ptSrcMask,
3001 const arm_2d_tile_t *ptTarget,
3002 const arm_2d_tile_t *ptDesMask,
3003 const arm_2d_region_t *ptRegion);
3004
3005
3006/*----------------------------------------------------------------------------*
3007 * Fill tile to target tile with a source mask, a target mask and y-mirroring *
3008 *----------------------------------------------------------------------------*/
3009
3010/*!
3011 * \brief fill a source tile to a target tile with masks and y-mirroring
3012 * \param[in] ptOP the control block, NULL means using the default control block
3013 * \param[in] ptSource the source tile
3014 * \param[in] ptSrcMask the mask on the source side
3015 * \param[in] ptTarget the target tile
3016 * \param[in] ptDesMask the mask on the target side
3017 * \param[in] ptRegion the target region
3018 * \return arm_fsm_rt_t the operation result
3019 */
3020extern
3021ARM_NONNULL(2,3,4,5)
3023 arm_2d_op_cp_msk_t *ptOP,
3024 const arm_2d_tile_t *ptSource,
3025 const arm_2d_tile_t *ptSrcMask,
3026 const arm_2d_tile_t *ptTarget,
3027 const arm_2d_tile_t *ptDesMask,
3028 const arm_2d_region_t *ptRegion);
3029
3030/*!
3031 * \brief fill a source tile to a target tile with masks and y-mirroring
3032 * \param[in] ptOP the control block, NULL means using the default control block
3033 * \param[in] ptSource the source tile
3034 * \param[in] ptSrcMask the mask on the source side
3035 * \param[in] ptTarget the target tile
3036 * \param[in] ptDesMask the mask on the target side
3037 * \param[in] ptRegion the target region
3038 * \return arm_fsm_rt_t the operation result
3039 */
3040extern
3041ARM_NONNULL(2,3,4,5)
3043 arm_2d_op_cp_msk_t *ptOP,
3044 const arm_2d_tile_t *ptSource,
3045 const arm_2d_tile_t *ptSrcMask,
3046 const arm_2d_tile_t *ptTarget,
3047 const arm_2d_tile_t *ptDesMask,
3048 const arm_2d_region_t *ptRegion);
3049
3050/*!
3051 * \brief fill a source tile to a target tile with masks and y-mirroring
3052 * \param[in] ptOP the control block, NULL means using the default control block
3053 * \param[in] ptSource the source tile
3054 * \param[in] ptSrcMask the mask on the source side
3055 * \param[in] ptTarget the target tile
3056 * \param[in] ptDesMask the mask on the target side
3057 * \param[in] ptRegion the target region
3058 * \return arm_fsm_rt_t the operation result
3059 */
3060extern
3061ARM_NONNULL(2,3,4,5)
3063 arm_2d_op_cp_msk_t *ptOP,
3064 const arm_2d_tile_t *ptSource,
3065 const arm_2d_tile_t *ptSrcMask,
3066 const arm_2d_tile_t *ptTarget,
3067 const arm_2d_tile_t *ptDesMask,
3068 const arm_2d_region_t *ptRegion);
3069
3070
3071/*----------------------------------------------------------------------------*
3072 * Fill tile to target tile with a source mask, a target mask and xy-mirroring *
3073 *----------------------------------------------------------------------------*/
3074
3075/*!
3076 * \brief fill a source tile to a target tile with masks and xy-mirroring
3077 * \param[in] ptOP the control block, NULL means using the default control block
3078 * \param[in] ptSource the source tile
3079 * \param[in] ptSrcMask the mask on the source side
3080 * \param[in] ptTarget the target tile
3081 * \param[in] ptDesMask the mask on the target side
3082 * \param[in] ptRegion the target region
3083 * \return arm_fsm_rt_t the operation result
3084 */
3085extern
3086ARM_NONNULL(2,3,4,5)
3088 arm_2d_op_cp_msk_t *ptOP,
3089 const arm_2d_tile_t *ptSource,
3090 const arm_2d_tile_t *ptSrcMask,
3091 const arm_2d_tile_t *ptTarget,
3092 const arm_2d_tile_t *ptDesMask,
3093 const arm_2d_region_t *ptRegion);
3094
3095/*!
3096 * \brief fill a source tile to a target tile with masks and xy-mirroring
3097 * \param[in] ptOP the control block, NULL means using the default control block
3098 * \param[in] ptSource the source tile
3099 * \param[in] ptSrcMask the mask on the source side
3100 * \param[in] ptTarget the target tile
3101 * \param[in] ptDesMask the mask on the target side
3102 * \param[in] ptRegion the target region
3103 * \return arm_fsm_rt_t the operation result
3104 */
3105extern
3106ARM_NONNULL(2,3,4,5)
3108 arm_2d_op_cp_msk_t *ptOP,
3109 const arm_2d_tile_t *ptSource,
3110 const arm_2d_tile_t *ptSrcMask,
3111 const arm_2d_tile_t *ptTarget,
3112 const arm_2d_tile_t *ptDesMask,
3113 const arm_2d_region_t *ptRegion);
3114
3115/*!
3116 * \brief fill a source tile to a target tile with masks and xy-mirroring
3117 * \param[in] ptOP the control block, NULL means using the default control block
3118 * \param[in] ptSource the source tile
3119 * \param[in] ptSrcMask the mask on the source side
3120 * \param[in] ptTarget the target tile
3121 * \param[in] ptDesMask the mask on the target side
3122 * \param[in] ptRegion the target region
3123 * \return arm_fsm_rt_t the operation result
3124 */
3125extern
3126ARM_NONNULL(2,3,4,5)
3128 arm_2d_op_cp_msk_t *ptOP,
3129 const arm_2d_tile_t *ptSource,
3130 const arm_2d_tile_t *ptSrcMask,
3131 const arm_2d_tile_t *ptTarget,
3132 const arm_2d_tile_t *ptDesMask,
3133 const arm_2d_region_t *ptRegion);
3134
3135
3136/*----------------------------------------------------------------------------*
3137 * Copy tile to destination with a source mask and a specified mode *
3138 *----------------------------------------------------------------------------*/
3139/*!
3140 * \brief copy a source tile to a target tile with a source mask in a given mode
3141 * \param[in] ptOP the control block, NULL means using the default control block
3142 * \param[in] ptSource the source tile
3143 * \param[in] ptSrcMask the mask on the source side
3144 * \param[in] ptTarget the target tile
3145 * \param[in] ptRegion the target region
3146 * \param[in] wMode the copy mode
3147 * \return arm_fsm_rt_t the operation result
3148 */
3149extern
3150ARM_NONNULL(2,3,4)
3152 arm_2d_op_cp_msk_t *ptOP,
3153 const arm_2d_tile_t *ptSource,
3154 const arm_2d_tile_t *ptSrcMask,
3155 const arm_2d_tile_t *ptTarget,
3156 const arm_2d_region_t *ptRegion,
3157 uint32_t wMode);
3158
3159/*!
3160 * \brief copy a source tile to a target tile with a source mask in a given mode
3161 * \param[in] ptOP the control block, NULL means using the default control block
3162 * \param[in] ptSource the source tile
3163 * \param[in] ptSrcMask the mask on the source side
3164 * \param[in] ptTarget the target tile
3165 * \param[in] ptRegion the target region
3166 * \param[in] wMode the copy mode
3167 * \return arm_fsm_rt_t the operation result
3168 */
3169extern
3170ARM_NONNULL(2,3,4)
3172 arm_2d_op_cp_msk_t *ptOP,
3173 const arm_2d_tile_t *ptSource,
3174 const arm_2d_tile_t *ptSrcMask,
3175 const arm_2d_tile_t *ptTarget,
3176 const arm_2d_region_t *ptRegion,
3177 uint32_t wMode);
3178
3179/*!
3180 * \brief copy a source tile to a target tile with a source mask in a given mode
3181 * \param[in] ptOP the control block, NULL means using the default control block
3182 * \param[in] ptSource the source tile
3183 * \param[in] ptSrcMask the mask on the source side
3184 * \param[in] ptTarget the target tile
3185 * \param[in] ptRegion the target region
3186 * \param[in] wMode the copy mode
3187 * \return arm_fsm_rt_t the operation result
3188 */
3189extern
3190ARM_NONNULL(2,3,4)
3192 arm_2d_op_cp_msk_t *ptOP,
3193 const arm_2d_tile_t *ptSource,
3194 const arm_2d_tile_t *ptSrcMask,
3195 const arm_2d_tile_t *ptTarget,
3196 const arm_2d_region_t *ptRegion,
3197 uint32_t wMode);
3198
3199
3200
3201/*----------------------------------------------------------------------------*
3202 * Copy tile to destination with a specified source mask *
3203 *----------------------------------------------------------------------------*/
3204/*!
3205 * \brief copy a source tile to a target tile with a source mask
3206 * \param[in] ptOP the control block, NULL means using the default control block
3207 * \param[in] ptSource the source tile
3208 * \param[in] ptSrcMask the mask on the source side
3209 * \param[in] ptTarget the target tile
3210 * \param[in] ptRegion the target region
3211 * \return arm_fsm_rt_t the operation result
3212 */
3213extern
3214ARM_NONNULL(2,3,4)
3216 arm_2d_op_cp_msk_t *ptOP,
3217 const arm_2d_tile_t *ptSource,
3218 const arm_2d_tile_t *ptSrcMask,
3219 const arm_2d_tile_t *ptTarget,
3220 const arm_2d_region_t *ptRegion);
3221
3222/*!
3223 * \brief copy a source tile to a target tile with a source mask
3224 * \param[in] ptOP the control block, NULL means using the default control block
3225 * \param[in] ptSource the source tile
3226 * \param[in] ptSrcMask the mask on the source side
3227 * \param[in] ptTarget the target tile
3228 * \param[in] ptRegion the target region
3229 * \return arm_fsm_rt_t the operation result
3230 */
3231extern
3232ARM_NONNULL(2,3,4)
3234 arm_2d_op_cp_msk_t *ptOP,
3235 const arm_2d_tile_t *ptSource,
3236 const arm_2d_tile_t *ptSrcMask,
3237 const arm_2d_tile_t *ptTarget,
3238 const arm_2d_region_t *ptRegion);
3239
3240/*!
3241 * \brief copy a source tile to a target tile with a source mask
3242 * \param[in] ptOP the control block, NULL means using the default control block
3243 * \param[in] ptSource the source tile
3244 * \param[in] ptSrcMask the mask on the source side
3245 * \param[in] ptTarget the target tile
3246 * \param[in] ptRegion the target region
3247 * \param[in] wMode the copy mode
3248 * \return arm_fsm_rt_t the operation result
3249 */
3250extern
3251ARM_NONNULL(2,3,4)
3253 arm_2d_op_cp_msk_t *ptOP,
3254 const arm_2d_tile_t *ptSource,
3255 const arm_2d_tile_t *ptSrcMask,
3256 const arm_2d_tile_t *ptTarget,
3257 const arm_2d_region_t *ptRegion);
3258
3259
3260/*----------------------------------------------------------------------------*
3261 * Copy tile to destination with a specified source mask and x-mirroring *
3262 *----------------------------------------------------------------------------*/
3263/*!
3264 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3265 * \param[in] ptOP the control block, NULL means using the default control block
3266 * \param[in] ptSource the source tile
3267 * \param[in] ptSrcMask the mask on the source side
3268 * \param[in] ptTarget the target tile
3269 * \param[in] ptRegion the target region
3270 * \return arm_fsm_rt_t the operation result
3271 */
3272extern
3273ARM_NONNULL(2,3,4)
3275 arm_2d_op_cp_msk_t *ptOP,
3276 const arm_2d_tile_t *ptSource,
3277 const arm_2d_tile_t *ptSrcMask,
3278 const arm_2d_tile_t *ptTarget,
3279 const arm_2d_region_t *ptRegion);
3280
3281/*!
3282 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3283 * \param[in] ptOP the control block, NULL means using the default control block
3284 * \param[in] ptSource the source tile
3285 * \param[in] ptSrcMask the mask on the source side
3286 * \param[in] ptTarget the target tile
3287 * \param[in] ptRegion the target region
3288 * \return arm_fsm_rt_t the operation result
3289 */
3290extern
3291ARM_NONNULL(2,3,4)
3293 arm_2d_op_cp_msk_t *ptOP,
3294 const arm_2d_tile_t *ptSource,
3295 const arm_2d_tile_t *ptSrcMask,
3296 const arm_2d_tile_t *ptTarget,
3297 const arm_2d_region_t *ptRegion);
3298
3299/*!
3300 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3301 * \param[in] ptOP the control block, NULL means using the default control block
3302 * \param[in] ptSource the source tile
3303 * \param[in] ptSrcMask the mask on the source side
3304 * \param[in] ptTarget the target tile
3305 * \param[in] ptRegion the target region
3306 * \param[in] wMode the copy mode
3307 * \return arm_fsm_rt_t the operation result
3308 */
3309extern
3310ARM_NONNULL(2,3,4)
3312 arm_2d_op_cp_msk_t *ptOP,
3313 const arm_2d_tile_t *ptSource,
3314 const arm_2d_tile_t *ptSrcMask,
3315 const arm_2d_tile_t *ptTarget,
3316 const arm_2d_region_t *ptRegion);
3317
3318/*----------------------------------------------------------------------------*
3319 * Copy tile to destination with a specified source mask and y-mirroring *
3320 *----------------------------------------------------------------------------*/
3321/*!
3322 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3323 * \param[in] ptOP the control block, NULL means using the default control block
3324 * \param[in] ptSource the source tile
3325 * \param[in] ptSrcMask the mask on the source side
3326 * \param[in] ptTarget the target tile
3327 * \param[in] ptRegion the target region
3328 * \return arm_fsm_rt_t the operation result
3329 */
3330extern
3331ARM_NONNULL(2,3,4)
3333 arm_2d_op_cp_msk_t *ptOP,
3334 const arm_2d_tile_t *ptSource,
3335 const arm_2d_tile_t *ptSrcMask,
3336 const arm_2d_tile_t *ptTarget,
3337 const arm_2d_region_t *ptRegion);
3338
3339/*!
3340 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3341 * \param[in] ptOP the control block, NULL means using the default control block
3342 * \param[in] ptSource the source tile
3343 * \param[in] ptSrcMask the mask on the source side
3344 * \param[in] ptTarget the target tile
3345 * \param[in] ptRegion the target region
3346 * \return arm_fsm_rt_t the operation result
3347 */
3348extern
3349ARM_NONNULL(2,3,4)
3351 arm_2d_op_cp_msk_t *ptOP,
3352 const arm_2d_tile_t *ptSource,
3353 const arm_2d_tile_t *ptSrcMask,
3354 const arm_2d_tile_t *ptTarget,
3355 const arm_2d_region_t *ptRegion);
3356
3357/*!
3358 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3359 * \param[in] ptOP the control block, NULL means using the default control block
3360 * \param[in] ptSource the source tile
3361 * \param[in] ptSrcMask the mask on the source side
3362 * \param[in] ptTarget the target tile
3363 * \param[in] ptRegion the target region
3364 * \param[in] wMode the copy mode
3365 * \return arm_fsm_rt_t the operation result
3366 */
3367extern
3368ARM_NONNULL(2,3,4)
3370 arm_2d_op_cp_msk_t *ptOP,
3371 const arm_2d_tile_t *ptSource,
3372 const arm_2d_tile_t *ptSrcMask,
3373 const arm_2d_tile_t *ptTarget,
3374 const arm_2d_region_t *ptRegion);
3375
3376
3377/*----------------------------------------------------------------------------*
3378 * Copy tile to destination with a specified source mask and xy-mirroring *
3379 *----------------------------------------------------------------------------*/
3380/*!
3381 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3382 * \param[in] ptOP the control block, NULL means using the default control block
3383 * \param[in] ptSource the source tile
3384 * \param[in] ptSrcMask the mask on the source side
3385 * \param[in] ptTarget the target tile
3386 * \param[in] ptRegion the target region
3387 * \return arm_fsm_rt_t the operation result
3388 */
3389extern
3390ARM_NONNULL(2,3,4)
3392 arm_2d_op_cp_msk_t *ptOP,
3393 const arm_2d_tile_t *ptSource,
3394 const arm_2d_tile_t *ptSrcMask,
3395 const arm_2d_tile_t *ptTarget,
3396 const arm_2d_region_t *ptRegion);
3397
3398/*!
3399 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3400 * \param[in] ptOP the control block, NULL means using the default control block
3401 * \param[in] ptSource the source tile
3402 * \param[in] ptSrcMask the mask on the source side
3403 * \param[in] ptTarget the target tile
3404 * \param[in] ptRegion the target region
3405 * \return arm_fsm_rt_t the operation result
3406 */
3407extern
3408ARM_NONNULL(2,3,4)
3410 arm_2d_op_cp_msk_t *ptOP,
3411 const arm_2d_tile_t *ptSource,
3412 const arm_2d_tile_t *ptSrcMask,
3413 const arm_2d_tile_t *ptTarget,
3414 const arm_2d_region_t *ptRegion);
3415
3416/*!
3417 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3418 * \param[in] ptOP the control block, NULL means using the default control block
3419 * \param[in] ptSource the source tile
3420 * \param[in] ptSrcMask the mask on the source side
3421 * \param[in] ptTarget the target tile
3422 * \param[in] ptRegion the target region
3423 * \param[in] wMode the copy mode
3424 * \return arm_fsm_rt_t the operation result
3425 */
3426extern
3427ARM_NONNULL(2,3,4)
3429 arm_2d_op_cp_msk_t *ptOP,
3430 const arm_2d_tile_t *ptSource,
3431 const arm_2d_tile_t *ptSrcMask,
3432 const arm_2d_tile_t *ptTarget,
3433 const arm_2d_region_t *ptRegion);
3434
3435/*----------------------------------------------------------------------------*
3436 * Fill tile to destination with a specified source mask *
3437 *----------------------------------------------------------------------------*/
3438/*!
3439 * \brief fill a source tile to a target tile with a source mask
3440 * \param[in] ptOP the control block, NULL means using the default control block
3441 * \param[in] ptSource the source tile
3442 * \param[in] ptSrcMask the mask on the source side
3443 * \param[in] ptTarget the target tile
3444 * \param[in] ptRegion the target region
3445 * \return arm_fsm_rt_t the operation result
3446 */
3447extern
3448ARM_NONNULL(2,3,4)
3450 arm_2d_op_cp_msk_t *ptOP,
3451 const arm_2d_tile_t *ptSource,
3452 const arm_2d_tile_t *ptSrcMask,
3453 const arm_2d_tile_t *ptTarget,
3454 const arm_2d_region_t *ptRegion);
3455
3456/*!
3457 * \brief fill a source tile to a target tile with a source mask
3458 * \param[in] ptOP the control block, NULL means using the default control block
3459 * \param[in] ptSource the source tile
3460 * \param[in] ptSrcMask the mask on the source side
3461 * \param[in] ptTarget the target tile
3462 * \param[in] ptRegion the target region
3463 * \return arm_fsm_rt_t the operation result
3464 */
3465extern
3466ARM_NONNULL(2,3,4)
3468 arm_2d_op_cp_msk_t *ptOP,
3469 const arm_2d_tile_t *ptSource,
3470 const arm_2d_tile_t *ptSrcMask,
3471 const arm_2d_tile_t *ptTarget,
3472 const arm_2d_region_t *ptRegion);
3473
3474/*!
3475 * \brief fill a source tile to a target tile with a source mask
3476 * \param[in] ptOP the control block, NULL means using the default control block
3477 * \param[in] ptSource the source tile
3478 * \param[in] ptSrcMask the mask on the source side
3479 * \param[in] ptTarget the target tile
3480 * \param[in] ptRegion the target region
3481 * \param[in] wMode the fill mode
3482 * \return arm_fsm_rt_t the operation result
3483 */
3484extern
3485ARM_NONNULL(2,3,4)
3487 arm_2d_op_cp_msk_t *ptOP,
3488 const arm_2d_tile_t *ptSource,
3489 const arm_2d_tile_t *ptSrcMask,
3490 const arm_2d_tile_t *ptTarget,
3491 const arm_2d_region_t *ptRegion);
3492
3493
3494/*----------------------------------------------------------------------------*
3495 * Fill tile to destination with a specified source mask and x-mirroring *
3496 *----------------------------------------------------------------------------*/
3497/*!
3498 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3499 * \param[in] ptOP the control block, NULL means using the default control block
3500 * \param[in] ptSource the source tile
3501 * \param[in] ptSrcMask the mask on the source side
3502 * \param[in] ptTarget the target tile
3503 * \param[in] ptRegion the target region
3504 * \return arm_fsm_rt_t the operation result
3505 */
3506extern
3507ARM_NONNULL(2,3,4)
3509 arm_2d_op_cp_msk_t *ptOP,
3510 const arm_2d_tile_t *ptSource,
3511 const arm_2d_tile_t *ptSrcMask,
3512 const arm_2d_tile_t *ptTarget,
3513 const arm_2d_region_t *ptRegion);
3514
3515/*!
3516 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3517 * \param[in] ptOP the control block, NULL means using the default control block
3518 * \param[in] ptSource the source tile
3519 * \param[in] ptSrcMask the mask on the source side
3520 * \param[in] ptTarget the target tile
3521 * \param[in] ptRegion the target region
3522 * \return arm_fsm_rt_t the operation result
3523 */
3524extern
3525ARM_NONNULL(2,3,4)
3527 arm_2d_op_cp_msk_t *ptOP,
3528 const arm_2d_tile_t *ptSource,
3529 const arm_2d_tile_t *ptSrcMask,
3530 const arm_2d_tile_t *ptTarget,
3531 const arm_2d_region_t *ptRegion);
3532
3533/*!
3534 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3535 * \param[in] ptOP the control block, NULL means using the default control block
3536 * \param[in] ptSource the source tile
3537 * \param[in] ptSrcMask the mask on the source side
3538 * \param[in] ptTarget the target tile
3539 * \param[in] ptRegion the target region
3540 * \param[in] wMode the fill mode
3541 * \return arm_fsm_rt_t the operation result
3542 */
3543extern
3544ARM_NONNULL(2,3,4)
3546 arm_2d_op_cp_msk_t *ptOP,
3547 const arm_2d_tile_t *ptSource,
3548 const arm_2d_tile_t *ptSrcMask,
3549 const arm_2d_tile_t *ptTarget,
3550 const arm_2d_region_t *ptRegion);
3551
3552/*----------------------------------------------------------------------------*
3553 * Fill tile to destination with a specified source mask and y-mirroring *
3554 *----------------------------------------------------------------------------*/
3555/*!
3556 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3557 * \param[in] ptOP the control block, NULL means using the default control block
3558 * \param[in] ptSource the source tile
3559 * \param[in] ptSrcMask the mask on the source side
3560 * \param[in] ptTarget the target tile
3561 * \param[in] ptRegion the target region
3562 * \return arm_fsm_rt_t the operation result
3563 */
3564extern
3565ARM_NONNULL(2,3,4)
3567 arm_2d_op_cp_msk_t *ptOP,
3568 const arm_2d_tile_t *ptSource,
3569 const arm_2d_tile_t *ptSrcMask,
3570 const arm_2d_tile_t *ptTarget,
3571 const arm_2d_region_t *ptRegion);
3572
3573/*!
3574 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3575 * \param[in] ptOP the control block, NULL means using the default control block
3576 * \param[in] ptSource the source tile
3577 * \param[in] ptSrcMask the mask on the source side
3578 * \param[in] ptTarget the target tile
3579 * \param[in] ptRegion the target region
3580 * \return arm_fsm_rt_t the operation result
3581 */
3582extern
3583ARM_NONNULL(2,3,4)
3585 arm_2d_op_cp_msk_t *ptOP,
3586 const arm_2d_tile_t *ptSource,
3587 const arm_2d_tile_t *ptSrcMask,
3588 const arm_2d_tile_t *ptTarget,
3589 const arm_2d_region_t *ptRegion);
3590
3591/*!
3592 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3593 * \param[in] ptOP the control block, NULL means using the default control block
3594 * \param[in] ptSource the source tile
3595 * \param[in] ptSrcMask the mask on the source side
3596 * \param[in] ptTarget the target tile
3597 * \param[in] ptRegion the target region
3598 * \param[in] wMode the fill mode
3599 * \return arm_fsm_rt_t the operation result
3600 */
3601extern
3602ARM_NONNULL(2,3,4)
3604 arm_2d_op_cp_msk_t *ptOP,
3605 const arm_2d_tile_t *ptSource,
3606 const arm_2d_tile_t *ptSrcMask,
3607 const arm_2d_tile_t *ptTarget,
3608 const arm_2d_region_t *ptRegion);
3609
3610
3611/*----------------------------------------------------------------------------*
3612 * Fill tile to destination with a specified source mask and xy-mirroring *
3613 *----------------------------------------------------------------------------*/
3614/*!
3615 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3616 * \param[in] ptOP the control block, NULL means using the default control block
3617 * \param[in] ptSource the source tile
3618 * \param[in] ptSrcMask the mask on the source side
3619 * \param[in] ptTarget the target tile
3620 * \param[in] ptRegion the target region
3621 * \return arm_fsm_rt_t the operation result
3622 */
3623extern
3624ARM_NONNULL(2,3,4)
3626 arm_2d_op_cp_msk_t *ptOP,
3627 const arm_2d_tile_t *ptSource,
3628 const arm_2d_tile_t *ptSrcMask,
3629 const arm_2d_tile_t *ptTarget,
3630 const arm_2d_region_t *ptRegion);
3631
3632/*!
3633 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3634 * \param[in] ptOP the control block, NULL means using the default control block
3635 * \param[in] ptSource the source tile
3636 * \param[in] ptSrcMask the mask on the source side
3637 * \param[in] ptTarget the target tile
3638 * \param[in] ptRegion the target region
3639 * \return arm_fsm_rt_t the operation result
3640 */
3641extern
3642ARM_NONNULL(2,3,4)
3644 arm_2d_op_cp_msk_t *ptOP,
3645 const arm_2d_tile_t *ptSource,
3646 const arm_2d_tile_t *ptSrcMask,
3647 const arm_2d_tile_t *ptTarget,
3648 const arm_2d_region_t *ptRegion);
3649
3650/*!
3651 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3652 * \param[in] ptOP the control block, NULL means using the default control block
3653 * \param[in] ptSource the source tile
3654 * \param[in] ptSrcMask the mask on the source side
3655 * \param[in] ptTarget the target tile
3656 * \param[in] ptRegion the target region
3657 * \param[in] wMode the fill mode
3658 * \return arm_fsm_rt_t the operation result
3659 */
3660extern
3661ARM_NONNULL(2,3,4)
3663 arm_2d_op_cp_msk_t *ptOP,
3664 const arm_2d_tile_t *ptSource,
3665 const arm_2d_tile_t *ptSrcMask,
3666 const arm_2d_tile_t *ptTarget,
3667 const arm_2d_region_t *ptRegion);
3668
3669
3670/*----------------------------------------------------------------------------*
3671 * Copy tile to destination with a target mask and a specified mode *
3672 *----------------------------------------------------------------------------*/
3673
3674/*!
3675 * \brief copy a source tile to a target tile with a target mask in a given mode
3676 * \param[in] ptOP the control block, NULL means using the default control block
3677 * \param[in] ptSource the source tile
3678 * \param[in] ptTarget the target tile
3679 * \param[in] ptDesMask the mask on the target side
3680 * \param[in] ptRegion the target region
3681 * \param[in] wMode the copy mode
3682 * \return arm_fsm_rt_t the operation result
3683 */
3684extern
3685ARM_NONNULL(2,3,4)
3687 arm_2d_op_cp_msk_t *ptOP,
3688 const arm_2d_tile_t *ptSource,
3689 const arm_2d_tile_t *ptTarget,
3690 const arm_2d_tile_t *ptDesMask,
3691 const arm_2d_region_t *ptRegion,
3692 uint32_t wMode);
3693
3694/*!
3695 * \brief copy a source tile to a target tile with a target mask in a given mode
3696 * \param[in] ptOP the control block, NULL means using the default control block
3697 * \param[in] ptSource the source tile
3698 * \param[in] ptTarget the target tile
3699 * \param[in] ptDesMask the mask on the target side
3700 * \param[in] ptRegion the target region
3701 * \param[in] wMode the copy mode
3702 * \return arm_fsm_rt_t the operation result
3703 */
3704extern
3705ARM_NONNULL(2,3,4)
3707 arm_2d_op_cp_msk_t *ptOP,
3708 const arm_2d_tile_t *ptSource,
3709 const arm_2d_tile_t *ptTarget,
3710 const arm_2d_tile_t *ptDesMask,
3711 const arm_2d_region_t *ptRegion,
3712 uint32_t wMode);
3713
3714/*!
3715 * \brief copy a source tile to a target tile with a target mask in a given mode
3716 * \param[in] ptOP the control block, NULL means using the default control block
3717 * \param[in] ptSource the source tile
3718 * \param[in] ptTarget the target tile
3719 * \param[in] ptDesMask the mask on the target side
3720 * \param[in] ptRegion the target region
3721 * \param[in] wMode the copy mode
3722 * \return arm_fsm_rt_t the operation result
3723 */
3724extern
3725ARM_NONNULL(2,3,4)
3727 arm_2d_op_cp_msk_t *ptOP,
3728 const arm_2d_tile_t *ptSource,
3729 const arm_2d_tile_t *ptTarget,
3730 const arm_2d_tile_t *ptDesMask,
3731 const arm_2d_region_t *ptRegion,
3732 uint32_t wMode);
3733
3734/*----------------------------------------------------------------------------*
3735 * Copy tile to target tile with a source tile and a target mask *
3736 *----------------------------------------------------------------------------*/
3737
3738/*!
3739 * \brief copy a source tile to a target tile with a target mask
3740 * \param[in] ptOP the control block, NULL means using the default control block
3741 * \param[in] ptSource the source tile
3742 * \param[in] ptTarget the target tile
3743 * \param[in] ptDesMask the mask on the target side
3744 * \param[in] ptRegion the target region
3745 * \return arm_fsm_rt_t the operation result
3746 */
3747extern
3748ARM_NONNULL(2,3,4,5)
3750 arm_2d_op_cp_msk_t *ptOP,
3751 const arm_2d_tile_t *ptSource,
3752 const arm_2d_tile_t *ptTarget,
3753 const arm_2d_tile_t *ptDesMask,
3754 const arm_2d_region_t *ptRegion);
3755
3756/*!
3757 * \brief copy a source tile to a target tile with a target mask
3758 * \param[in] ptOP the control block, NULL means using the default control block
3759 * \param[in] ptSource the source tile
3760 * \param[in] ptTarget the target tile
3761 * \param[in] ptDesMask the mask on the target side
3762 * \param[in] ptRegion the target region
3763 * \return arm_fsm_rt_t the operation result
3764 */
3765extern
3766ARM_NONNULL(2,3,4,5)
3768 arm_2d_op_cp_msk_t *ptOP,
3769 const arm_2d_tile_t *ptSource,
3770 const arm_2d_tile_t *ptTarget,
3771 const arm_2d_tile_t *ptDesMask,
3772 const arm_2d_region_t *ptRegion);
3773
3774/*!
3775 * \brief copy a source tile to a target tile with a target mask
3776 * \param[in] ptOP the control block, NULL means using the default control block
3777 * \param[in] ptSource the source tile
3778 * \param[in] ptTarget the target tile
3779 * \param[in] ptDesMask the mask on the target side
3780 * \param[in] ptRegion the target region
3781 * \return arm_fsm_rt_t the operation result
3782 */
3783extern
3784ARM_NONNULL(2,3,4,5)
3786 arm_2d_op_cp_msk_t *ptOP,
3787 const arm_2d_tile_t *ptSource,
3788 const arm_2d_tile_t *ptTarget,
3789 const arm_2d_tile_t *ptDesMask,
3790 const arm_2d_region_t *ptRegion);
3791
3792
3793/*----------------------------------------------------------------------------*
3794 * Copy tile to target tile with a source mask, a target mask and x-mirroring *
3795 *----------------------------------------------------------------------------*/
3796
3797/*!
3798 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3799 * \param[in] ptOP the control block, NULL means using the default control block
3800 * \param[in] ptSource the source tile
3801 * \param[in] ptTarget the target tile
3802 * \param[in] ptDesMask the mask on the target side
3803 * \param[in] ptRegion the target region
3804 * \return arm_fsm_rt_t the operation result
3805 */
3806extern
3807ARM_NONNULL(2,3,4,5)
3809 arm_2d_op_cp_msk_t *ptOP,
3810 const arm_2d_tile_t *ptSource,
3811 const arm_2d_tile_t *ptTarget,
3812 const arm_2d_tile_t *ptDesMask,
3813 const arm_2d_region_t *ptRegion);
3814
3815/*!
3816 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3817 * \param[in] ptOP the control block, NULL means using the default control block
3818 * \param[in] ptSource the source tile
3819 * \param[in] ptTarget the target tile
3820 * \param[in] ptDesMask the mask on the target side
3821 * \param[in] ptRegion the target region
3822 * \return arm_fsm_rt_t the operation result
3823 */
3824extern
3825ARM_NONNULL(2,3,4,5)
3827 arm_2d_op_cp_msk_t *ptOP,
3828 const arm_2d_tile_t *ptSource,
3829 const arm_2d_tile_t *ptTarget,
3830 const arm_2d_tile_t *ptDesMask,
3831 const arm_2d_region_t *ptRegion);
3832
3833/*!
3834 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3835 * \param[in] ptOP the control block, NULL means using the default control block
3836 * \param[in] ptSource the source tile
3837 * \param[in] ptTarget the target tile
3838 * \param[in] ptDesMask the mask on the target side
3839 * \param[in] ptRegion the target region
3840 * \return arm_fsm_rt_t the operation result
3841 */
3842extern
3843ARM_NONNULL(2,3,4,5)
3845 arm_2d_op_cp_msk_t *ptOP,
3846 const arm_2d_tile_t *ptSource,
3847 const arm_2d_tile_t *ptTarget,
3848 const arm_2d_tile_t *ptDesMask,
3849 const arm_2d_region_t *ptRegion);
3850
3851
3852/*----------------------------------------------------------------------------*
3853 * Copy tile to target tile with a source tile, a target mask and y-mirroring *
3854 *----------------------------------------------------------------------------*/
3855
3856/*!
3857 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3858 * \param[in] ptOP the control block, NULL means using the default control block
3859 * \param[in] ptSource the source tile
3860 * \param[in] ptTarget the target tile
3861 * \param[in] ptDesMask the mask on the target side
3862 * \param[in] ptRegion the target region
3863 * \return arm_fsm_rt_t the operation result
3864 */
3865extern
3866ARM_NONNULL(2,3,4,5)
3868 arm_2d_op_cp_msk_t *ptOP,
3869 const arm_2d_tile_t *ptSource,
3870 const arm_2d_tile_t *ptTarget,
3871 const arm_2d_tile_t *ptDesMask,
3872 const arm_2d_region_t *ptRegion);
3873
3874/*!
3875 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3876 * \param[in] ptOP the control block, NULL means using the default control block
3877 * \param[in] ptSource the source tile
3878 * \param[in] ptTarget the target tile
3879 * \param[in] ptDesMask the mask on the target side
3880 * \param[in] ptRegion the target region
3881 * \return arm_fsm_rt_t the operation result
3882 */
3883extern
3884ARM_NONNULL(2,3,4,5)
3886 arm_2d_op_cp_msk_t *ptOP,
3887 const arm_2d_tile_t *ptSource,
3888 const arm_2d_tile_t *ptTarget,
3889 const arm_2d_tile_t *ptDesMask,
3890 const arm_2d_region_t *ptRegion);
3891
3892/*!
3893 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3894 * \param[in] ptOP the control block, NULL means using the default control block
3895 * \param[in] ptSource the source tile
3896 * \param[in] ptTarget the target tile
3897 * \param[in] ptDesMask the mask on the target side
3898 * \param[in] ptRegion the target region
3899 * \return arm_fsm_rt_t the operation result
3900 */
3901extern
3902ARM_NONNULL(2,3,4,5)
3904 arm_2d_op_cp_msk_t *ptOP,
3905 const arm_2d_tile_t *ptSource,
3906 const arm_2d_tile_t *ptTarget,
3907 const arm_2d_tile_t *ptDesMask,
3908 const arm_2d_region_t *ptRegion);
3909
3910
3911/*----------------------------------------------------------------------------*
3912 * Copy tile to target tile with a source tile, a target mask and xy-mirroring*
3913 *----------------------------------------------------------------------------*/
3914
3915/*!
3916 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3917 * \param[in] ptOP the control block, NULL means using the default control block
3918 * \param[in] ptSource the source tile
3919 * \param[in] ptTarget the target tile
3920 * \param[in] ptDesMask the mask on the target side
3921 * \param[in] ptRegion the target region
3922 * \return arm_fsm_rt_t the operation result
3923 */
3924extern
3925ARM_NONNULL(2,3,4,5)
3927 arm_2d_op_cp_msk_t *ptOP,
3928 const arm_2d_tile_t *ptSource,
3929 const arm_2d_tile_t *ptTarget,
3930 const arm_2d_tile_t *ptDesMask,
3931 const arm_2d_region_t *ptRegion);
3932
3933/*!
3934 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3935 * \param[in] ptOP the control block, NULL means using the default control block
3936 * \param[in] ptSource the source tile
3937 * \param[in] ptTarget the target tile
3938 * \param[in] ptDesMask the mask on the target side
3939 * \param[in] ptRegion the target region
3940 * \return arm_fsm_rt_t the operation result
3941 */
3942extern
3943ARM_NONNULL(2,3,4,5)
3945 arm_2d_op_cp_msk_t *ptOP,
3946 const arm_2d_tile_t *ptSource,
3947 const arm_2d_tile_t *ptTarget,
3948 const arm_2d_tile_t *ptDesMask,
3949 const arm_2d_region_t *ptRegion);
3950
3951/*!
3952 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3953 * \param[in] ptOP the control block, NULL means using the default control block
3954 * \param[in] ptSource the source tile
3955 * \param[in] ptTarget the target tile
3956 * \param[in] ptDesMask the mask on the target side
3957 * \param[in] ptRegion the target region
3958 * \return arm_fsm_rt_t the operation result
3959 */
3960extern
3961ARM_NONNULL(2,3,4,5)
3963 arm_2d_op_cp_msk_t *ptOP,
3964 const arm_2d_tile_t *ptSource,
3965 const arm_2d_tile_t *ptTarget,
3966 const arm_2d_tile_t *ptDesMask,
3967 const arm_2d_region_t *ptRegion);
3968
3969/*----------------------------------------------------------------------------*
3970 * Fill tile to target tile with a source tile and a target mask *
3971 *----------------------------------------------------------------------------*/
3972
3973/*!
3974 * \brief fill a source tile to a target tile with a target mask
3975 * \param[in] ptOP the control block, NULL means using the default control block
3976 * \param[in] ptSource the source tile
3977 * \param[in] ptTarget the target tile
3978 * \param[in] ptDesMask the mask on the target side
3979 * \param[in] ptRegion the target region
3980 * \return arm_fsm_rt_t the operation result
3981 */
3982extern
3983ARM_NONNULL(2,3,4,5)
3985 arm_2d_op_cp_msk_t *ptOP,
3986 const arm_2d_tile_t *ptSource,
3987 const arm_2d_tile_t *ptTarget,
3988 const arm_2d_tile_t *ptDesMask,
3989 const arm_2d_region_t *ptRegion);
3990
3991/*!
3992 * \brief fill a source tile to a target tile with a target mask
3993 * \param[in] ptOP the control block, NULL means using the default control block
3994 * \param[in] ptSource the source tile
3995 * \param[in] ptTarget the target tile
3996 * \param[in] ptDesMask the mask on the target side
3997 * \param[in] ptRegion the target region
3998 * \return arm_fsm_rt_t the operation result
3999 */
4000extern
4001ARM_NONNULL(2,3,4,5)
4003 arm_2d_op_cp_msk_t *ptOP,
4004 const arm_2d_tile_t *ptSource,
4005 const arm_2d_tile_t *ptTarget,
4006 const arm_2d_tile_t *ptDesMask,
4007 const arm_2d_region_t *ptRegion);
4008
4009/*!
4010 * \brief fill a source tile to a target tile with a target mask
4011 * \param[in] ptOP the control block, NULL means using the default control block
4012 * \param[in] ptSource the source tile
4013 * \param[in] ptTarget the target tile
4014 * \param[in] ptDesMask the mask on the target side
4015 * \param[in] ptRegion the target region
4016 * \return arm_fsm_rt_t the operation result
4017 */
4018extern
4019ARM_NONNULL(2,3,4,5)
4021 arm_2d_op_cp_msk_t *ptOP,
4022 const arm_2d_tile_t *ptSource,
4023 const arm_2d_tile_t *ptTarget,
4024 const arm_2d_tile_t *ptDesMask,
4025 const arm_2d_region_t *ptRegion);
4026
4027
4028/*----------------------------------------------------------------------------*
4029 * Fill tile to target tile with a source tile, a target mask and x-mirroring *
4030 *----------------------------------------------------------------------------*/
4031
4032/*!
4033 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4034 * \param[in] ptOP the control block, NULL means using the default control block
4035 * \param[in] ptSource the source tile
4036 * \param[in] ptTarget the target tile
4037 * \param[in] ptDesMask the mask on the target side
4038 * \param[in] ptRegion the target region
4039 * \return arm_fsm_rt_t the operation result
4040 */
4041extern
4042ARM_NONNULL(2,3,4,5)
4044 arm_2d_op_cp_msk_t *ptOP,
4045 const arm_2d_tile_t *ptSource,
4046 const arm_2d_tile_t *ptTarget,
4047 const arm_2d_tile_t *ptDesMask,
4048 const arm_2d_region_t *ptRegion);
4049
4050/*!
4051 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4052 * \param[in] ptOP the control block, NULL means using the default control block
4053 * \param[in] ptSource the source tile
4054 * \param[in] ptTarget the target tile
4055 * \param[in] ptDesMask the mask on the target side
4056 * \param[in] ptRegion the target region
4057 * \return arm_fsm_rt_t the operation result
4058 */
4059extern
4060ARM_NONNULL(2,3,4,5)
4062 arm_2d_op_cp_msk_t *ptOP,
4063 const arm_2d_tile_t *ptSource,
4064 const arm_2d_tile_t *ptTarget,
4065 const arm_2d_tile_t *ptDesMask,
4066 const arm_2d_region_t *ptRegion);
4067
4068/*!
4069 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4070 * \param[in] ptOP the control block, NULL means using the default control block
4071 * \param[in] ptSource the source tile
4072 * \param[in] ptTarget the target tile
4073 * \param[in] ptDesMask the mask on the target side
4074 * \param[in] ptRegion the target region
4075 * \return arm_fsm_rt_t the operation result
4076 */
4077extern
4078ARM_NONNULL(2,3,4,5)
4080 arm_2d_op_cp_msk_t *ptOP,
4081 const arm_2d_tile_t *ptSource,
4082 const arm_2d_tile_t *ptTarget,
4083 const arm_2d_tile_t *ptDesMask,
4084 const arm_2d_region_t *ptRegion);
4085
4086
4087/*----------------------------------------------------------------------------*
4088 * Fill tile to target tile with a source tile, a target mask and y-mirroring *
4089 *----------------------------------------------------------------------------*/
4090
4091/*!
4092 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4093 * \param[in] ptOP the control block, NULL means using the default control block
4094 * \param[in] ptSource the source tile
4095 * \param[in] ptTarget the target tile
4096 * \param[in] ptDesMask the mask on the target side
4097 * \param[in] ptRegion the target region
4098 * \return arm_fsm_rt_t the operation result
4099 */
4100extern
4101ARM_NONNULL(2,3,4,5)
4103 arm_2d_op_cp_msk_t *ptOP,
4104 const arm_2d_tile_t *ptSource,
4105 const arm_2d_tile_t *ptTarget,
4106 const arm_2d_tile_t *ptDesMask,
4107 const arm_2d_region_t *ptRegion);
4108
4109/*!
4110 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4111 * \param[in] ptOP the control block, NULL means using the default control block
4112 * \param[in] ptSource the source tile
4113 * \param[in] ptTarget the target tile
4114 * \param[in] ptDesMask the mask on the target side
4115 * \param[in] ptRegion the target region
4116 * \return arm_fsm_rt_t the operation result
4117 */
4118extern
4119ARM_NONNULL(2,3,4,5)
4121 arm_2d_op_cp_msk_t *ptOP,
4122 const arm_2d_tile_t *ptSource,
4123 const arm_2d_tile_t *ptTarget,
4124 const arm_2d_tile_t *ptDesMask,
4125 const arm_2d_region_t *ptRegion);
4126
4127/*!
4128 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4129 * \param[in] ptOP the control block, NULL means using the default control block
4130 * \param[in] ptSource the source tile
4131 * \param[in] ptTarget the target tile
4132 * \param[in] ptDesMask the mask on the target side
4133 * \param[in] ptRegion the target region
4134 * \return arm_fsm_rt_t the operation result
4135 */
4136extern
4137ARM_NONNULL(2,3,4,5)
4139 arm_2d_op_cp_msk_t *ptOP,
4140 const arm_2d_tile_t *ptSource,
4141 const arm_2d_tile_t *ptTarget,
4142 const arm_2d_tile_t *ptDesMask,
4143 const arm_2d_region_t *ptRegion);
4144
4145
4146/*----------------------------------------------------------------------------*
4147 * Fill tile to target tile with a source tile, a target mask and xy-mirroring*
4148 *----------------------------------------------------------------------------*/
4149
4150/*!
4151 * \brief fill a source tile to a target tile with a target mask and xy-mirroring
4152 * \param[in] ptOP the control block, NULL means using the default control block
4153 * \param[in] ptSource the source tile
4154 * \param[in] ptTarget the target tile
4155 * \param[in] ptDesMask the mask on the target side
4156 * \param[in] ptRegion the target region
4157 * \return arm_fsm_rt_t the operation result
4158 */
4159extern
4160ARM_NONNULL(2,3,4,5)
4162 arm_2d_op_cp_msk_t *ptOP,
4163 const arm_2d_tile_t *ptSource,
4164 const arm_2d_tile_t *ptTarget,
4165 const arm_2d_tile_t *ptDesMask,
4166 const arm_2d_region_t *ptRegion);
4167
4168/*!
4169 * \brief fill a source tile to a target tile with target mask and xy-mirroring
4170 * \param[in] ptOP the control block, NULL means using the default control block
4171 * \param[in] ptSource the source tile
4172 * \param[in] ptTarget the target tile
4173 * \param[in] ptDesMask the mask on the target side
4174 * \param[in] ptRegion the target region
4175 * \return arm_fsm_rt_t the operation result
4176 */
4177extern
4178ARM_NONNULL(2,3,4,5)
4180 arm_2d_op_cp_msk_t *ptOP,
4181 const arm_2d_tile_t *ptSource,
4182 const arm_2d_tile_t *ptTarget,
4183 const arm_2d_tile_t *ptDesMask,
4184 const arm_2d_region_t *ptRegion);
4185
4186/*!
4187 * \brief fill a source tile to a target tile with a target mask and xy-mirroring
4188 * \param[in] ptOP the control block, NULL means using the default control block
4189 * \param[in] ptSource the source tile
4190 * \param[in] ptTarget the target tile
4191 * \param[in] ptDesMask the mask on the target side
4192 * \param[in] ptRegion the target region
4193 * \return arm_fsm_rt_t the operation result
4194 */
4195extern
4196ARM_NONNULL(2,3,4,5)
4198 arm_2d_op_cp_msk_t *ptOP,
4199 const arm_2d_tile_t *ptSource,
4200 const arm_2d_tile_t *ptTarget,
4201 const arm_2d_tile_t *ptDesMask,
4202 const arm_2d_region_t *ptRegion);
4203
4204
4205
4206/*! @} */
4207
4208#if defined(__clang__)
4209#pragma clang diagnostic pop
4210#endif
4211
4212#ifdef __cplusplus
4213}
4214#endif
4215
4216#endif