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