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