Arm-2D  
2D Image Processing Library for Cortex-M Processors
arm_2d_alpha_blending.h
1/*
2 * Copyright (C) 2022 Arm Limited or its affiliates. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19/* ----------------------------------------------------------------------
20 * Project: Arm-2D Library
21 * Title: arm_2d_alpha_blending.h
22 * Description: Public header file to contain the alpha related APIs
23 *
24 * $Date: 17. May 2024
25 * $Revision: V.1.7.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 union {
1943 uint8_t chRatio; //!< opacity
1944 uint8_t chOpacity;
1945 };
1947
1948/*!
1949 * \brief control block for colour-filling-with-opacity operations
1950 * \note arm_2d_op_fill_cl_t inherits from arm_2d_op_t explicitly
1951 */
1954 struct {
1955 const arm_2d_tile_t *ptTile; //!< target tile
1956 const arm_2d_region_t *ptRegion; //!< target region
1957 } Target; //!< target
1958 union {
1959 uint8_t chColour; //!< 8bit key colour
1960 uint16_t hwColour; //!< 16bit key colour
1961 uint32_t wColour; //!< 32bit key colour
1962 };
1963 uint8_t chRatio; //!< opacity
1965
1966/*!
1967 * \brief control block for copy with masks operations
1968 *
1969 */
1971
1972/*============================ GLOBAL VARIABLES ==============================*/
1973/*============================ PROTOTYPES ====================================*/
1974
1975/*----------------------------------------------------------------------------*
1976 * Copy tile to destination with specified transparency ratio (0~255) *
1977 *----------------------------------------------------------------------------*/
1978
1979/*!
1980 * \brief blend a source tile to a target tile with a specified opacity
1981 * \param[in] ptOP the control block, NULL means using the default control block
1982 * \param[in] ptSource the source tile
1983 * \param[in] ptTarget the target tile
1984 * \param[in] ptRegion the target region
1985 * \param[in] chRatio the opacity
1986 * \return arm_fsm_rt_t the operation result
1987 */
1988extern
1989ARM_NONNULL(2,3)
1991 const arm_2d_tile_t *ptSource,
1992 const arm_2d_tile_t *ptTarget,
1993 const arm_2d_region_t *ptRegion,
1994 uint_fast8_t chRatio);
1995
1996/*!
1997 * \brief blend a source tile to a target tile with a specified opacity
1998 * \param[in] ptOP the control block, NULL means using the default control block
1999 * \param[in] ptSource the source tile
2000 * \param[in] ptTarget the target tile
2001 * \param[in] ptRegion the target region
2002 * \param[in] chRatio the opacity
2003 * \return arm_fsm_rt_t the operation result
2004 */
2005extern
2006ARM_NONNULL(2,3)
2008 const arm_2d_tile_t *ptSource,
2009 const arm_2d_tile_t *ptTarget,
2010 const arm_2d_region_t *ptRegion,
2011 uint_fast8_t chRatio);
2012
2013/*!
2014 * \brief blend a source tile to a target tile with a specified opacity
2015 * \param[in] ptOP the control block, NULL means using the default control block
2016 * \param[in] ptSource the source tile
2017 * \param[in] ptTarget the target tile
2018 * \param[in] ptRegion the target region
2019 * \param[in] chRatio the opacity
2020 * \return arm_fsm_rt_t the operation result
2021 */
2022extern
2023ARM_NONNULL(2,3)
2025 const arm_2d_tile_t *ptSource,
2026 const arm_2d_tile_t *ptTarget,
2027 const arm_2d_region_t *ptRegion,
2028 uint_fast8_t chRatio);
2029
2030
2031/*----------------------------------------------------------------------------*
2032 * Fill a specified region with a given colour and transparency ratio (0~255) *
2033 *----------------------------------------------------------------------------*/
2034
2035/*!
2036 * \brief fill a target tile with a given gray8 colour and a specified opacity
2037 * \param[in] ptOP the control block, NULL means using the default control block
2038 * \param[in] ptTarget the target tile
2039 * \param[in] ptRegion the target region
2040 * \param[in] tColour a gray8 colour
2041 * \param[in] chRatio the opacity
2042 * \return arm_fsm_rt_t the operation result
2043 */
2044extern
2045ARM_NONNULL(2)
2048 const arm_2d_tile_t *ptTarget,
2049 const arm_2d_region_t *ptRegion,
2050 arm_2d_color_gray8_t tColour,
2051 uint_fast8_t chRatio);
2052
2053/*!
2054 * \brief fill a target tile with a given rgb565 colour and a specified opacity
2055 * \param[in] ptOP the control block, NULL means using the default control block
2056 * \param[in] ptTarget the target tile
2057 * \param[in] ptRegion the target region
2058 * \param[in] tColour a rgb565 colour
2059 * \param[in] chRatio the opacity
2060 * \return arm_fsm_rt_t the operation result
2061 */
2062extern
2063ARM_NONNULL(2)
2066 const arm_2d_tile_t *ptTarget,
2067 const arm_2d_region_t *ptRegion,
2068 arm_2d_color_rgb565_t tColour,
2069 uint_fast8_t chRatio);
2070
2071/*!
2072 * \brief fill a target tile with a given cccn888 colour and a specified opacity
2073 * \param[in] ptOP the control block, NULL means using the default control block
2074 * \param[in] ptTarget the target tile
2075 * \param[in] ptRegion the target region
2076 * \param[in] tColour a cccn888 colour
2077 * \param[in] chRatio the opacity
2078 * \return arm_fsm_rt_t the operation result
2079 */
2080extern
2081ARM_NONNULL(2)
2084 const arm_2d_tile_t *ptTarget,
2085 const arm_2d_region_t *ptRegion,
2086 arm_2d_color_cccn888_t tColour,
2087 uint_fast8_t chRatio);
2088
2089/*----------------------------------------------------------------------------*
2090 * Fill tile with a specified colour and an a2 mask *
2091 *----------------------------------------------------------------------------*/
2092
2093/*!
2094 * \brief fill a target tile with a given gray8 colour and an a2 mask on target side
2095 * \param[in] ptOP the control block, NULL means using the default control block
2096 * \param[in] ptTarget the target tile
2097 * \param[in] ptRegion the target region
2098 * \param[in] ptAlpha the mask on the target side
2099 * \param[in] tColour a gray8 colour
2100 * \return arm_fsm_rt_t the operation result
2101 */
2102extern
2103ARM_NONNULL(2,4)
2106 const arm_2d_tile_t *ptTarget,
2107 const arm_2d_region_t *ptRegion,
2108 const arm_2d_tile_t *ptAlpha,
2109 arm_2d_color_gray8_t tColour);
2110
2111/*!
2112 * \brief fill a target tile with a given rgb565 colour and an a2 mask on target side
2113 * \param[in] ptOP the control block, NULL means using the default control block
2114 * \param[in] ptTarget the target tile
2115 * \param[in] ptRegion the target region
2116 * \param[in] ptAlpha the mask on the target side
2117 * \param[in] tColour a rgb565 colour
2118 * \return arm_fsm_rt_t the operation result
2119 */
2120extern
2121ARM_NONNULL(2,4)
2124 const arm_2d_tile_t *ptTarget,
2125 const arm_2d_region_t *ptRegion,
2126 const arm_2d_tile_t *ptAlpha,
2127 arm_2d_color_rgb565_t tColour);
2128
2129/*!
2130 * \brief fill a target tile with a given cccn888 colour and an a2 mask on target side
2131 * \param[in] ptOP the control block, NULL means using the default control block
2132 * \param[in] ptTarget the target tile
2133 * \param[in] ptRegion the target region
2134 * \param[in] ptAlpha the mask on the target side
2135 * \param[in] tColour a cccn888 colour
2136 * \return arm_fsm_rt_t the operation result
2137 */
2138extern
2139ARM_NONNULL(2,4)
2142 const arm_2d_tile_t *ptTarget,
2143 const arm_2d_region_t *ptRegion,
2144 const arm_2d_tile_t *ptAlpha,
2145 arm_2d_color_cccn888_t tColour);
2146
2147
2148/*----------------------------------------------------------------------------*
2149 * Fill tile with a specified colour and an a4 mask *
2150 *----------------------------------------------------------------------------*/
2151
2152/*!
2153 * \brief fill a target tile with a given gray8 colour and an a4 mask on target side
2154 * \param[in] ptOP the control block, NULL means using the default control block
2155 * \param[in] ptTarget the target tile
2156 * \param[in] ptRegion the target region
2157 * \param[in] ptAlpha the mask on the target side
2158 * \param[in] tColour a gray8 colour
2159 * \return arm_fsm_rt_t the operation result
2160 */
2161extern
2162ARM_NONNULL(2,4)
2165 const arm_2d_tile_t *ptTarget,
2166 const arm_2d_region_t *ptRegion,
2167 const arm_2d_tile_t *ptAlpha,
2168 arm_2d_color_gray8_t tColour);
2169
2170/*!
2171 * \brief fill a target tile with a given rgb565 colour and an a4 mask on target side
2172 * \param[in] ptOP the control block, NULL means using the default control block
2173 * \param[in] ptTarget the target tile
2174 * \param[in] ptRegion the target region
2175 * \param[in] ptAlpha the mask on the target side
2176 * \param[in] tColour a rgb565 colour
2177 * \return arm_fsm_rt_t the operation result
2178 */
2179extern
2180ARM_NONNULL(2,4)
2183 const arm_2d_tile_t *ptTarget,
2184 const arm_2d_region_t *ptRegion,
2185 const arm_2d_tile_t *ptAlpha,
2186 arm_2d_color_rgb565_t tColour);
2187
2188/*!
2189 * \brief fill a target tile with a given cccn888 colour and an a4 mask on target side
2190 * \param[in] ptOP the control block, NULL means using the default control block
2191 * \param[in] ptTarget the target tile
2192 * \param[in] ptRegion the target region
2193 * \param[in] ptAlpha the mask on the target side
2194 * \param[in] tColour a cccn888 colour
2195 * \return arm_fsm_rt_t the operation result
2196 */
2197extern
2198ARM_NONNULL(2,4)
2201 const arm_2d_tile_t *ptTarget,
2202 const arm_2d_region_t *ptRegion,
2203 const arm_2d_tile_t *ptAlpha,
2204 arm_2d_color_cccn888_t tColour);
2205
2206/*----------------------------------------------------------------------------*
2207 * Fill tile with a specified colour and an a8 mask *
2208 *----------------------------------------------------------------------------*/
2209
2210/*!
2211 * \brief fill a target tile with a given gray8 colour and a mask on target side
2212 * \param[in] ptOP the control block, NULL means using the default control block
2213 * \param[in] ptTarget the target tile
2214 * \param[in] ptRegion the target region
2215 * \param[in] ptAlpha the mask on the target side
2216 * \param[in] tColour a gray8 colour
2217 * \return arm_fsm_rt_t the operation result
2218 */
2219extern
2220ARM_NONNULL(2,4)
2223 const arm_2d_tile_t *ptTarget,
2224 const arm_2d_region_t *ptRegion,
2225 const arm_2d_tile_t *ptAlpha,
2226 arm_2d_color_gray8_t tColour);
2227
2228/*!
2229 * \brief fill a target tile with a given rgb565 colour and a mask on target side
2230 * \param[in] ptOP the control block, NULL means using the default control block
2231 * \param[in] ptTarget the target tile
2232 * \param[in] ptRegion the target region
2233 * \param[in] ptAlpha the mask on the target side
2234 * \param[in] tColour a rgb565 colour
2235 * \return arm_fsm_rt_t the operation result
2236 */
2237extern
2238ARM_NONNULL(2,4)
2241 const arm_2d_tile_t *ptTarget,
2242 const arm_2d_region_t *ptRegion,
2243 const arm_2d_tile_t *ptAlpha,
2244 arm_2d_color_rgb565_t tColour);
2245
2246/*!
2247 * \brief fill a target tile with a given cccn888 colour and a mask on target side
2248 * \param[in] ptOP the control block, NULL means using the default control block
2249 * \param[in] ptTarget the target tile
2250 * \param[in] ptRegion the target region
2251 * \param[in] ptAlpha the mask on the target side
2252 * \param[in] tColour a cccn888 colour
2253 * \return arm_fsm_rt_t the operation result
2254 */
2255extern
2256ARM_NONNULL(2,4)
2259 const arm_2d_tile_t *ptTarget,
2260 const arm_2d_region_t *ptRegion,
2261 const arm_2d_tile_t *ptAlpha,
2262 arm_2d_color_cccn888_t tColour);
2263
2264
2265/*----------------------------------------------------------------------------*
2266 * Fill tile with a specified colour, an a2 mask and a specified opacity *
2267 *----------------------------------------------------------------------------*/
2268
2269/*!
2270 * \brief fill a target tile with a given gray8 colour, an a2 mask on target side and an opacity
2271 * \param[in] ptOP the control block, NULL means using the default control block
2272 * \param[in] ptTarget the target tile
2273 * \param[in] ptRegion the target region
2274 * \param[in] ptAlpha the mask on the target side
2275 * \param[in] tColour a gray8 colour
2276 * \param[in] chOpacity the opacity
2277 * \return arm_fsm_rt_t the operation result
2278 */
2279extern
2280ARM_NONNULL(2,4)
2283 const arm_2d_tile_t *ptTarget,
2284 const arm_2d_region_t *ptRegion,
2285 const arm_2d_tile_t *ptAlpha,
2286 arm_2d_color_gray8_t tColour,
2287 uint8_t chOpacity);
2288
2289/*!
2290 * \brief fill a target tile with a given rgb565 colour, an a2 mask on target side and an opacity
2291 * \param[in] ptOP the control block, NULL means using the default control block
2292 * \param[in] ptTarget the target tile
2293 * \param[in] ptRegion the target region
2294 * \param[in] ptAlpha the mask on the target side
2295 * \param[in] tColour a rgb565 colour
2296 * \param[in] chOpacity the opacity
2297 * \return arm_fsm_rt_t the operation result
2298 */
2299extern
2300ARM_NONNULL(2,4)
2303 const arm_2d_tile_t *ptTarget,
2304 const arm_2d_region_t *ptRegion,
2305 const arm_2d_tile_t *ptAlpha,
2306 arm_2d_color_rgb565_t tColour,
2307 uint8_t chOpacity);
2308
2309/*!
2310 * \brief fill a target tile with a given cccn888 colour, an a2 mask on target side and an opacity
2311 * \param[in] ptOP the control block, NULL means using the default control block
2312 * \param[in] ptTarget the target tile
2313 * \param[in] ptRegion the target region
2314 * \param[in] ptAlpha the mask on the target side
2315 * \param[in] tColour a cccn888 colour
2316 * \param[in] chOpacity the opacity
2317 * \return arm_fsm_rt_t the operation result
2318 */
2319extern
2320ARM_NONNULL(2,4)
2323 const arm_2d_tile_t *ptTarget,
2324 const arm_2d_region_t *ptRegion,
2325 const arm_2d_tile_t *ptAlpha,
2326 arm_2d_color_cccn888_t tColour,
2327 uint8_t chOpacity);
2328
2329/*----------------------------------------------------------------------------*
2330 * Fill tile with a specified colour, an a4 mask and a specified opacity *
2331 *----------------------------------------------------------------------------*/
2332
2333/*!
2334 * \brief fill a target tile with a given gray8 colour, an a4 mask on target side and an opacity
2335 * \param[in] ptOP the control block, NULL means using the default control block
2336 * \param[in] ptTarget the target tile
2337 * \param[in] ptRegion the target region
2338 * \param[in] ptAlpha the mask on the target side
2339 * \param[in] tColour a gray8 colour
2340 * \param[in] chOpacity the opacity
2341 * \return arm_fsm_rt_t the operation result
2342 */
2343extern
2344ARM_NONNULL(2,4)
2347 const arm_2d_tile_t *ptTarget,
2348 const arm_2d_region_t *ptRegion,
2349 const arm_2d_tile_t *ptAlpha,
2350 arm_2d_color_gray8_t tColour,
2351 uint8_t chOpacity);
2352
2353/*!
2354 * \brief fill a target tile with a given rgb565 colour, an a4 mask on target side and an opacity
2355 * \param[in] ptOP the control block, NULL means using the default control block
2356 * \param[in] ptTarget the target tile
2357 * \param[in] ptRegion the target region
2358 * \param[in] ptAlpha the mask on the target side
2359 * \param[in] tColour a rgb565 colour
2360 * \param[in] chOpacity the opacity
2361 * \return arm_fsm_rt_t the operation result
2362 */
2363extern
2364ARM_NONNULL(2,4)
2367 const arm_2d_tile_t *ptTarget,
2368 const arm_2d_region_t *ptRegion,
2369 const arm_2d_tile_t *ptAlpha,
2370 arm_2d_color_rgb565_t tColour,
2371 uint8_t chOpacity);
2372
2373/*!
2374 * \brief fill a target tile with a given cccn888 colour, an a4 mask on target side and an opacity
2375 * \param[in] ptOP the control block, NULL means using the default control block
2376 * \param[in] ptTarget the target tile
2377 * \param[in] ptRegion the target region
2378 * \param[in] ptAlpha the mask on the target side
2379 * \param[in] tColour a cccn888 colour
2380 * \param[in] chOpacity the opacity
2381 * \return arm_fsm_rt_t the operation result
2382 */
2383extern
2384ARM_NONNULL(2,4)
2387 const arm_2d_tile_t *ptTarget,
2388 const arm_2d_region_t *ptRegion,
2389 const arm_2d_tile_t *ptAlpha,
2390 arm_2d_color_cccn888_t tColour,
2391 uint8_t chOpacity);
2392
2393/*----------------------------------------------------------------------------*
2394 * Fill tile with a specified colour, an alpha mask and a specified opacity *
2395 *----------------------------------------------------------------------------*/
2396
2397/*!
2398 * \brief fill a target tile with a given gray8 colour, a mask on target side and an opacity
2399 * \param[in] ptOP the control block, NULL means using the default control block
2400 * \param[in] ptTarget the target tile
2401 * \param[in] ptRegion the target region
2402 * \param[in] ptAlpha the mask on the target side
2403 * \param[in] tColour a gray8 colour
2404 * \param[in] chOpacity the opacity
2405 * \return arm_fsm_rt_t the operation result
2406 */
2407extern
2408ARM_NONNULL(2,4)
2411 const arm_2d_tile_t *ptTarget,
2412 const arm_2d_region_t *ptRegion,
2413 const arm_2d_tile_t *ptAlpha,
2414 arm_2d_color_gray8_t tColour,
2415 uint8_t chOpacity);
2416
2417/*!
2418 * \brief fill a target tile with a given rgb565 colour, a mask on target side and an opacity
2419 * \param[in] ptOP the control block, NULL means using the default control block
2420 * \param[in] ptTarget the target tile
2421 * \param[in] ptRegion the target region
2422 * \param[in] ptAlpha the mask on the target side
2423 * \param[in] tColour a rgb565 colour
2424 * \param[in] chOpacity the opacity
2425 * \return arm_fsm_rt_t the operation result
2426 */
2427extern
2428ARM_NONNULL(2,4)
2431 const arm_2d_tile_t *ptTarget,
2432 const arm_2d_region_t *ptRegion,
2433 const arm_2d_tile_t *ptAlpha,
2434 arm_2d_color_rgb565_t tColour,
2435 uint8_t chOpacity);
2436
2437/*!
2438 * \brief fill a target tile with a given cccn888 colour, a mask on target side and an opacity
2439 * \param[in] ptOP the control block, NULL means using the default control block
2440 * \param[in] ptTarget the target tile
2441 * \param[in] ptRegion the target region
2442 * \param[in] ptAlpha the mask on the target side
2443 * \param[in] tColour a cccn888 colour
2444 * \param[in] chOpacity the opacity
2445 * \return arm_fsm_rt_t the operation result
2446 */
2447extern
2448ARM_NONNULL(2,4)
2451 const arm_2d_tile_t *ptTarget,
2452 const arm_2d_region_t *ptRegion,
2453 const arm_2d_tile_t *ptAlpha,
2454 arm_2d_color_cccn888_t tColour,
2455 uint8_t chOpacity);
2456
2457/*----------------------------------------------------------------------------*
2458 * Blend tile and background with a specified transparency ratio(0~255) and *
2459 * colour keying *
2460 *----------------------------------------------------------------------------*/
2461
2462/*!
2463 * \brief blend a source tile to a target tile with a opacity and colour keying
2464 * \param[in] ptOP the control block, NULL means using the default control block
2465 * \param[in] ptSource the source tile
2466 * \param[in] ptTarget the target tile
2467 * \param[in] ptRegion the target region
2468 * \param[in] chRatio the opacity
2469 * \param[in] tColour the key colour
2470 * \return arm_fsm_rt_t the operation result
2471 */
2472extern
2473ARM_NONNULL(2,3)
2476 const arm_2d_tile_t *ptSource,
2477 const arm_2d_tile_t *ptTarget,
2478 const arm_2d_region_t *ptRegion,
2479 uint_fast8_t chRatio,
2480 arm_2d_color_gray8_t tColour);
2481
2482/*!
2483 * \brief blend a source tile to a target tile with a opacity and colour keying
2484 * \param[in] ptOP the control block, NULL means using the default control block
2485 * \param[in] ptSource the source tile
2486 * \param[in] ptTarget the target tile
2487 * \param[in] ptRegion the target region
2488 * \param[in] chRatio the opacity
2489 * \param[in] tColour the key colour
2490 * \return arm_fsm_rt_t the operation result
2491 */
2492extern
2493ARM_NONNULL(2,3)
2496 const arm_2d_tile_t *ptSource,
2497 const arm_2d_tile_t *ptTarget,
2498 const arm_2d_region_t *ptRegion,
2499 uint_fast8_t chRatio,
2500 arm_2d_color_rgb565_t tColour);
2501
2502/*!
2503 * \brief blend a source tile to a target tile with a opacity and colour keying
2504 * \param[in] ptOP the control block, NULL means using the default control block
2505 * \param[in] ptSource the source tile
2506 * \param[in] ptTarget the target tile
2507 * \param[in] ptRegion the target region
2508 * \param[in] chRatio the opacity
2509 * \param[in] tColour the key colour
2510 * \return arm_fsm_rt_t the operation result
2511 */
2512extern
2513ARM_NONNULL(2,3)
2516 const arm_2d_tile_t *ptSource,
2517 const arm_2d_tile_t *ptTarget,
2518 const arm_2d_region_t *ptRegion,
2519 uint_fast8_t chRatio,
2520 arm_2d_color_cccn888_t tColour);
2521
2522/*----------------------------------------------------------------------------*
2523 * Copy tile to target tile with a source mask, a target mask and a given mode*
2524 *----------------------------------------------------------------------------*/
2525
2526/*!
2527 * \brief copy a source tile to a target tile with masks in a given mode
2528 * \param[in] ptOP the control block, NULL means using the default control block
2529 * \param[in] ptSource the source tile
2530 * \param[in] ptSrcMask the mask on the source side
2531 * \param[in] ptTarget the target tile
2532 * \param[in] ptDesMask the mask on the target side
2533 * \param[in] ptRegion the target region
2534 * \param[in] wMode the copy mode
2535 * \return arm_fsm_rt_t the operation result
2536 */
2537extern
2538ARM_NONNULL(2,3,4,5)
2540 arm_2d_op_cp_msk_t *ptOP,
2541 const arm_2d_tile_t *ptSource,
2542 const arm_2d_tile_t *ptSrcMask,
2543 const arm_2d_tile_t *ptTarget,
2544 const arm_2d_tile_t *ptDesMask,
2545 const arm_2d_region_t *ptRegion,
2546 uint32_t wMode);
2547
2548/*!
2549 * \brief copy a source tile to a target tile with masks in a given mode
2550 * \param[in] ptOP the control block, NULL means using the default control block
2551 * \param[in] ptSource the source tile
2552 * \param[in] ptSrcMask the mask on the source side
2553 * \param[in] ptTarget the target tile
2554 * \param[in] ptDesMask the mask on the target side
2555 * \param[in] ptRegion the target region
2556 * \param[in] wMode the copy mode
2557 * \return arm_fsm_rt_t the operation result
2558 */
2559extern
2560ARM_NONNULL(2,3,4,5)
2562 arm_2d_op_cp_msk_t *ptOP,
2563 const arm_2d_tile_t *ptSource,
2564 const arm_2d_tile_t *ptSrcMask,
2565 const arm_2d_tile_t *ptTarget,
2566 const arm_2d_tile_t *ptDesMask,
2567 const arm_2d_region_t *ptRegion,
2568 uint32_t wMode);
2569
2570/*!
2571 * \brief copy a source tile to a target tile with masks in a given mode
2572 * \param[in] ptOP the control block, NULL means using the default control block
2573 * \param[in] ptSource the source tile
2574 * \param[in] ptSrcMask the mask on the source side
2575 * \param[in] ptTarget the target tile
2576 * \param[in] ptDesMask the mask on the target side
2577 * \param[in] ptRegion the target region
2578 * \param[in] wMode the copy mode
2579 * \return arm_fsm_rt_t the operation result
2580 */
2581extern
2582ARM_NONNULL(2,3,4,5)
2584 arm_2d_op_cp_msk_t *ptOP,
2585 const arm_2d_tile_t *ptSource,
2586 const arm_2d_tile_t *ptSrcMask,
2587 const arm_2d_tile_t *ptTarget,
2588 const arm_2d_tile_t *ptDesMask,
2589 const arm_2d_region_t *ptRegion,
2590 uint32_t wMode);
2591
2592/*----------------------------------------------------------------------------*
2593 * Copy tile to target tile with a source mask and a target mask *
2594 *----------------------------------------------------------------------------*/
2595
2596/*!
2597 * \brief copy a source tile to a target tile with masks
2598 * \param[in] ptOP the control block, NULL means using the default control block
2599 * \param[in] ptSource the source tile
2600 * \param[in] ptSrcMask the mask on the source side
2601 * \param[in] ptTarget the target tile
2602 * \param[in] ptDesMask the mask on the target side
2603 * \param[in] ptRegion the target region
2604 * \return arm_fsm_rt_t the operation result
2605 */
2606extern
2607ARM_NONNULL(2,3,4,5)
2609 arm_2d_op_cp_msk_t *ptOP,
2610 const arm_2d_tile_t *ptSource,
2611 const arm_2d_tile_t *ptSrcMask,
2612 const arm_2d_tile_t *ptTarget,
2613 const arm_2d_tile_t *ptDesMask,
2614 const arm_2d_region_t *ptRegion);
2615
2616/*!
2617 * \brief copy a source tile to a target tile with masks
2618 * \param[in] ptOP the control block, NULL means using the default control block
2619 * \param[in] ptSource the source tile
2620 * \param[in] ptSrcMask the mask on the source side
2621 * \param[in] ptTarget the target tile
2622 * \param[in] ptDesMask the mask on the target side
2623 * \param[in] ptRegion the target region
2624 * \return arm_fsm_rt_t the operation result
2625 */
2626extern
2627ARM_NONNULL(2,3,4,5)
2629 arm_2d_op_cp_msk_t *ptOP,
2630 const arm_2d_tile_t *ptSource,
2631 const arm_2d_tile_t *ptSrcMask,
2632 const arm_2d_tile_t *ptTarget,
2633 const arm_2d_tile_t *ptDesMask,
2634 const arm_2d_region_t *ptRegion);
2635
2636/*!
2637 * \brief copy a source tile to a target tile with masks
2638 * \param[in] ptOP the control block, NULL means using the default control block
2639 * \param[in] ptSource the source tile
2640 * \param[in] ptSrcMask the mask on the source side
2641 * \param[in] ptTarget the target tile
2642 * \param[in] ptDesMask the mask on the target side
2643 * \param[in] ptRegion the target region
2644 * \return arm_fsm_rt_t the operation result
2645 */
2646extern
2647ARM_NONNULL(2,3,4,5)
2649 arm_2d_op_cp_msk_t *ptOP,
2650 const arm_2d_tile_t *ptSource,
2651 const arm_2d_tile_t *ptSrcMask,
2652 const arm_2d_tile_t *ptTarget,
2653 const arm_2d_tile_t *ptDesMask,
2654 const arm_2d_region_t *ptRegion);
2655
2656
2657/*----------------------------------------------------------------------------*
2658 * Copy tile to target tile with a source mask, a target mask and x-mirroring *
2659 *----------------------------------------------------------------------------*/
2660
2661/*!
2662 * \brief copy a source tile to a target tile with masks and x-mirroring
2663 * \param[in] ptOP the control block, NULL means using the default control block
2664 * \param[in] ptSource the source tile
2665 * \param[in] ptSrcMask the mask on the source side
2666 * \param[in] ptTarget the target tile
2667 * \param[in] ptDesMask the mask on the target side
2668 * \param[in] ptRegion the target region
2669 * \return arm_fsm_rt_t the operation result
2670 */
2671extern
2672ARM_NONNULL(2,3,4,5)
2674 arm_2d_op_cp_msk_t *ptOP,
2675 const arm_2d_tile_t *ptSource,
2676 const arm_2d_tile_t *ptSrcMask,
2677 const arm_2d_tile_t *ptTarget,
2678 const arm_2d_tile_t *ptDesMask,
2679 const arm_2d_region_t *ptRegion);
2680
2681/*!
2682 * \brief copy a source tile to a target tile with masks and x-mirroring
2683 * \param[in] ptOP the control block, NULL means using the default control block
2684 * \param[in] ptSource the source tile
2685 * \param[in] ptSrcMask the mask on the source side
2686 * \param[in] ptTarget the target tile
2687 * \param[in] ptDesMask the mask on the target side
2688 * \param[in] ptRegion the target region
2689 * \return arm_fsm_rt_t the operation result
2690 */
2691extern
2692ARM_NONNULL(2,3,4,5)
2694 arm_2d_op_cp_msk_t *ptOP,
2695 const arm_2d_tile_t *ptSource,
2696 const arm_2d_tile_t *ptSrcMask,
2697 const arm_2d_tile_t *ptTarget,
2698 const arm_2d_tile_t *ptDesMask,
2699 const arm_2d_region_t *ptRegion);
2700
2701/*!
2702 * \brief copy a source tile to a target tile with masks and x-mirroring
2703 * \param[in] ptOP the control block, NULL means using the default control block
2704 * \param[in] ptSource the source tile
2705 * \param[in] ptSrcMask the mask on the source side
2706 * \param[in] ptTarget the target tile
2707 * \param[in] ptDesMask the mask on the target side
2708 * \param[in] ptRegion the target region
2709 * \return arm_fsm_rt_t the operation result
2710 */
2711extern
2712ARM_NONNULL(2,3,4,5)
2714 arm_2d_op_cp_msk_t *ptOP,
2715 const arm_2d_tile_t *ptSource,
2716 const arm_2d_tile_t *ptSrcMask,
2717 const arm_2d_tile_t *ptTarget,
2718 const arm_2d_tile_t *ptDesMask,
2719 const arm_2d_region_t *ptRegion);
2720
2721
2722/*----------------------------------------------------------------------------*
2723 * Copy tile to target tile with a source mask, a target mask and y-mirroring *
2724 *----------------------------------------------------------------------------*/
2725
2726/*!
2727 * \brief copy a source tile to a target tile with masks and y-mirroring
2728 * \param[in] ptOP the control block, NULL means using the default control block
2729 * \param[in] ptSource the source tile
2730 * \param[in] ptSrcMask the mask on the source side
2731 * \param[in] ptTarget the target tile
2732 * \param[in] ptDesMask the mask on the target side
2733 * \param[in] ptRegion the target region
2734 * \return arm_fsm_rt_t the operation result
2735 */
2736extern
2737ARM_NONNULL(2,3,4,5)
2739 arm_2d_op_cp_msk_t *ptOP,
2740 const arm_2d_tile_t *ptSource,
2741 const arm_2d_tile_t *ptSrcMask,
2742 const arm_2d_tile_t *ptTarget,
2743 const arm_2d_tile_t *ptDesMask,
2744 const arm_2d_region_t *ptRegion);
2745
2746/*!
2747 * \brief copy a source tile to a target tile with masks and y-mirroring
2748 * \param[in] ptOP the control block, NULL means using the default control block
2749 * \param[in] ptSource the source tile
2750 * \param[in] ptSrcMask the mask on the source side
2751 * \param[in] ptTarget the target tile
2752 * \param[in] ptDesMask the mask on the target side
2753 * \param[in] ptRegion the target region
2754 * \return arm_fsm_rt_t the operation result
2755 */
2756extern
2757ARM_NONNULL(2,3,4,5)
2759 arm_2d_op_cp_msk_t *ptOP,
2760 const arm_2d_tile_t *ptSource,
2761 const arm_2d_tile_t *ptSrcMask,
2762 const arm_2d_tile_t *ptTarget,
2763 const arm_2d_tile_t *ptDesMask,
2764 const arm_2d_region_t *ptRegion);
2765
2766/*!
2767 * \brief copy a source tile to a target tile with masks and y-mirroring
2768 * \param[in] ptOP the control block, NULL means using the default control block
2769 * \param[in] ptSource the source tile
2770 * \param[in] ptSrcMask the mask on the source side
2771 * \param[in] ptTarget the target tile
2772 * \param[in] ptDesMask the mask on the target side
2773 * \param[in] ptRegion the target region
2774 * \return arm_fsm_rt_t the operation result
2775 */
2776extern
2777ARM_NONNULL(2,3,4,5)
2779 arm_2d_op_cp_msk_t *ptOP,
2780 const arm_2d_tile_t *ptSource,
2781 const arm_2d_tile_t *ptSrcMask,
2782 const arm_2d_tile_t *ptTarget,
2783 const arm_2d_tile_t *ptDesMask,
2784 const arm_2d_region_t *ptRegion);
2785
2786
2787/*----------------------------------------------------------------------------*
2788 * Copy tile to target tile with a source mask, a target mask and xy-mirroring *
2789 *----------------------------------------------------------------------------*/
2790
2791/*!
2792 * \brief copy a source tile to a target tile with masks and xy-mirroring
2793 * \param[in] ptOP the control block, NULL means using the default control block
2794 * \param[in] ptSource the source tile
2795 * \param[in] ptSrcMask the mask on the source side
2796 * \param[in] ptTarget the target tile
2797 * \param[in] ptDesMask the mask on the target side
2798 * \param[in] ptRegion the target region
2799 * \return arm_fsm_rt_t the operation result
2800 */
2801extern
2802ARM_NONNULL(2,3,4,5)
2804 arm_2d_op_cp_msk_t *ptOP,
2805 const arm_2d_tile_t *ptSource,
2806 const arm_2d_tile_t *ptSrcMask,
2807 const arm_2d_tile_t *ptTarget,
2808 const arm_2d_tile_t *ptDesMask,
2809 const arm_2d_region_t *ptRegion);
2810
2811/*!
2812 * \brief copy a source tile to a target tile with masks and xy-mirroring
2813 * \param[in] ptOP the control block, NULL means using the default control block
2814 * \param[in] ptSource the source tile
2815 * \param[in] ptSrcMask the mask on the source side
2816 * \param[in] ptTarget the target tile
2817 * \param[in] ptDesMask the mask on the target side
2818 * \param[in] ptRegion the target region
2819 * \return arm_fsm_rt_t the operation result
2820 */
2821extern
2822ARM_NONNULL(2,3,4,5)
2824 arm_2d_op_cp_msk_t *ptOP,
2825 const arm_2d_tile_t *ptSource,
2826 const arm_2d_tile_t *ptSrcMask,
2827 const arm_2d_tile_t *ptTarget,
2828 const arm_2d_tile_t *ptDesMask,
2829 const arm_2d_region_t *ptRegion);
2830
2831/*!
2832 * \brief copy a source tile to a target tile with masks and xy-mirroring
2833 * \param[in] ptOP the control block, NULL means using the default control block
2834 * \param[in] ptSource the source tile
2835 * \param[in] ptSrcMask the mask on the source side
2836 * \param[in] ptTarget the target tile
2837 * \param[in] ptDesMask the mask on the target side
2838 * \param[in] ptRegion the target region
2839 * \return arm_fsm_rt_t the operation result
2840 */
2841extern
2842ARM_NONNULL(2,3,4,5)
2844 arm_2d_op_cp_msk_t *ptOP,
2845 const arm_2d_tile_t *ptSource,
2846 const arm_2d_tile_t *ptSrcMask,
2847 const arm_2d_tile_t *ptTarget,
2848 const arm_2d_tile_t *ptDesMask,
2849 const arm_2d_region_t *ptRegion);
2850
2851/*----------------------------------------------------------------------------*
2852 * Fill tile to target tile with a source mask and a target mask *
2853 *----------------------------------------------------------------------------*/
2854
2855/*!
2856 * \brief fill a source tile to a target tile with masks
2857 * \param[in] ptOP the control block, NULL means using the default control block
2858 * \param[in] ptSource the source tile
2859 * \param[in] ptSrcMask the mask on the source side
2860 * \param[in] ptTarget the target tile
2861 * \param[in] ptDesMask the mask on the target side
2862 * \param[in] ptRegion the target region
2863 * \return arm_fsm_rt_t the operation result
2864 */
2865extern
2866ARM_NONNULL(2,3,4,5)
2868 arm_2d_op_cp_msk_t *ptOP,
2869 const arm_2d_tile_t *ptSource,
2870 const arm_2d_tile_t *ptSrcMask,
2871 const arm_2d_tile_t *ptTarget,
2872 const arm_2d_tile_t *ptDesMask,
2873 const arm_2d_region_t *ptRegion);
2874
2875/*!
2876 * \brief fill a source tile to a target tile with masks
2877 * \param[in] ptOP the control block, NULL means using the default control block
2878 * \param[in] ptSource the source tile
2879 * \param[in] ptSrcMask the mask on the source side
2880 * \param[in] ptTarget the target tile
2881 * \param[in] ptDesMask the mask on the target side
2882 * \param[in] ptRegion the target region
2883 * \return arm_fsm_rt_t the operation result
2884 */
2885extern
2886ARM_NONNULL(2,3,4,5)
2888 arm_2d_op_cp_msk_t *ptOP,
2889 const arm_2d_tile_t *ptSource,
2890 const arm_2d_tile_t *ptSrcMask,
2891 const arm_2d_tile_t *ptTarget,
2892 const arm_2d_tile_t *ptDesMask,
2893 const arm_2d_region_t *ptRegion);
2894
2895/*!
2896 * \brief fill a source tile to a target tile with masks
2897 * \param[in] ptOP the control block, NULL means using the default control block
2898 * \param[in] ptSource the source tile
2899 * \param[in] ptSrcMask the mask on the source side
2900 * \param[in] ptTarget the target tile
2901 * \param[in] ptDesMask the mask on the target side
2902 * \param[in] ptRegion the target region
2903 * \return arm_fsm_rt_t the operation result
2904 */
2905extern
2906ARM_NONNULL(2,3,4,5)
2908 arm_2d_op_cp_msk_t *ptOP,
2909 const arm_2d_tile_t *ptSource,
2910 const arm_2d_tile_t *ptSrcMask,
2911 const arm_2d_tile_t *ptTarget,
2912 const arm_2d_tile_t *ptDesMask,
2913 const arm_2d_region_t *ptRegion);
2914
2915
2916/*----------------------------------------------------------------------------*
2917 * Fill tile to target tile with a source mask, a target mask and x-mirroring *
2918 *----------------------------------------------------------------------------*/
2919
2920/*!
2921 * \brief fill a source tile to a target tile with masks and x-mirroring
2922 * \param[in] ptOP the control block, NULL means using the default control block
2923 * \param[in] ptSource the source tile
2924 * \param[in] ptSrcMask the mask on the source side
2925 * \param[in] ptTarget the target tile
2926 * \param[in] ptDesMask the mask on the target side
2927 * \param[in] ptRegion the target region
2928 * \return arm_fsm_rt_t the operation result
2929 */
2930extern
2931ARM_NONNULL(2,3,4,5)
2933 arm_2d_op_cp_msk_t *ptOP,
2934 const arm_2d_tile_t *ptSource,
2935 const arm_2d_tile_t *ptSrcMask,
2936 const arm_2d_tile_t *ptTarget,
2937 const arm_2d_tile_t *ptDesMask,
2938 const arm_2d_region_t *ptRegion);
2939
2940/*!
2941 * \brief fill a source tile to a target tile with masks and x-mirroring
2942 * \param[in] ptOP the control block, NULL means using the default control block
2943 * \param[in] ptSource the source tile
2944 * \param[in] ptSrcMask the mask on the source side
2945 * \param[in] ptTarget the target tile
2946 * \param[in] ptDesMask the mask on the target side
2947 * \param[in] ptRegion the target region
2948 * \return arm_fsm_rt_t the operation result
2949 */
2950extern
2951ARM_NONNULL(2,3,4,5)
2953 arm_2d_op_cp_msk_t *ptOP,
2954 const arm_2d_tile_t *ptSource,
2955 const arm_2d_tile_t *ptSrcMask,
2956 const arm_2d_tile_t *ptTarget,
2957 const arm_2d_tile_t *ptDesMask,
2958 const arm_2d_region_t *ptRegion);
2959
2960/*!
2961 * \brief fill a source tile to a target tile with masks and x-mirroring
2962 * \param[in] ptOP the control block, NULL means using the default control block
2963 * \param[in] ptSource the source tile
2964 * \param[in] ptSrcMask the mask on the source side
2965 * \param[in] ptTarget the target tile
2966 * \param[in] ptDesMask the mask on the target side
2967 * \param[in] ptRegion the target region
2968 * \return arm_fsm_rt_t the operation result
2969 */
2970extern
2971ARM_NONNULL(2,3,4,5)
2973 arm_2d_op_cp_msk_t *ptOP,
2974 const arm_2d_tile_t *ptSource,
2975 const arm_2d_tile_t *ptSrcMask,
2976 const arm_2d_tile_t *ptTarget,
2977 const arm_2d_tile_t *ptDesMask,
2978 const arm_2d_region_t *ptRegion);
2979
2980
2981/*----------------------------------------------------------------------------*
2982 * Fill tile to target tile with a source mask, a target mask and y-mirroring *
2983 *----------------------------------------------------------------------------*/
2984
2985/*!
2986 * \brief fill a source tile to a target tile with masks and y-mirroring
2987 * \param[in] ptOP the control block, NULL means using the default control block
2988 * \param[in] ptSource the source tile
2989 * \param[in] ptSrcMask the mask on the source side
2990 * \param[in] ptTarget the target tile
2991 * \param[in] ptDesMask the mask on the target side
2992 * \param[in] ptRegion the target region
2993 * \return arm_fsm_rt_t the operation result
2994 */
2995extern
2996ARM_NONNULL(2,3,4,5)
2998 arm_2d_op_cp_msk_t *ptOP,
2999 const arm_2d_tile_t *ptSource,
3000 const arm_2d_tile_t *ptSrcMask,
3001 const arm_2d_tile_t *ptTarget,
3002 const arm_2d_tile_t *ptDesMask,
3003 const arm_2d_region_t *ptRegion);
3004
3005/*!
3006 * \brief fill a source tile to a target tile with masks and y-mirroring
3007 * \param[in] ptOP the control block, NULL means using the default control block
3008 * \param[in] ptSource the source tile
3009 * \param[in] ptSrcMask the mask on the source side
3010 * \param[in] ptTarget the target tile
3011 * \param[in] ptDesMask the mask on the target side
3012 * \param[in] ptRegion the target region
3013 * \return arm_fsm_rt_t the operation result
3014 */
3015extern
3016ARM_NONNULL(2,3,4,5)
3018 arm_2d_op_cp_msk_t *ptOP,
3019 const arm_2d_tile_t *ptSource,
3020 const arm_2d_tile_t *ptSrcMask,
3021 const arm_2d_tile_t *ptTarget,
3022 const arm_2d_tile_t *ptDesMask,
3023 const arm_2d_region_t *ptRegion);
3024
3025/*!
3026 * \brief fill a source tile to a target tile with masks and y-mirroring
3027 * \param[in] ptOP the control block, NULL means using the default control block
3028 * \param[in] ptSource the source tile
3029 * \param[in] ptSrcMask the mask on the source side
3030 * \param[in] ptTarget the target tile
3031 * \param[in] ptDesMask the mask on the target side
3032 * \param[in] ptRegion the target region
3033 * \return arm_fsm_rt_t the operation result
3034 */
3035extern
3036ARM_NONNULL(2,3,4,5)
3038 arm_2d_op_cp_msk_t *ptOP,
3039 const arm_2d_tile_t *ptSource,
3040 const arm_2d_tile_t *ptSrcMask,
3041 const arm_2d_tile_t *ptTarget,
3042 const arm_2d_tile_t *ptDesMask,
3043 const arm_2d_region_t *ptRegion);
3044
3045
3046/*----------------------------------------------------------------------------*
3047 * Fill tile to target tile with a source mask, a target mask and xy-mirroring *
3048 *----------------------------------------------------------------------------*/
3049
3050/*!
3051 * \brief fill a source tile to a target tile with masks and xy-mirroring
3052 * \param[in] ptOP the control block, NULL means using the default control block
3053 * \param[in] ptSource the source tile
3054 * \param[in] ptSrcMask the mask on the source side
3055 * \param[in] ptTarget the target tile
3056 * \param[in] ptDesMask the mask on the target side
3057 * \param[in] ptRegion the target region
3058 * \return arm_fsm_rt_t the operation result
3059 */
3060extern
3061ARM_NONNULL(2,3,4,5)
3063 arm_2d_op_cp_msk_t *ptOP,
3064 const arm_2d_tile_t *ptSource,
3065 const arm_2d_tile_t *ptSrcMask,
3066 const arm_2d_tile_t *ptTarget,
3067 const arm_2d_tile_t *ptDesMask,
3068 const arm_2d_region_t *ptRegion);
3069
3070/*!
3071 * \brief fill a source tile to a target tile with masks and xy-mirroring
3072 * \param[in] ptOP the control block, NULL means using the default control block
3073 * \param[in] ptSource the source tile
3074 * \param[in] ptSrcMask the mask on the source side
3075 * \param[in] ptTarget the target tile
3076 * \param[in] ptDesMask the mask on the target side
3077 * \param[in] ptRegion the target region
3078 * \return arm_fsm_rt_t the operation result
3079 */
3080extern
3081ARM_NONNULL(2,3,4,5)
3083 arm_2d_op_cp_msk_t *ptOP,
3084 const arm_2d_tile_t *ptSource,
3085 const arm_2d_tile_t *ptSrcMask,
3086 const arm_2d_tile_t *ptTarget,
3087 const arm_2d_tile_t *ptDesMask,
3088 const arm_2d_region_t *ptRegion);
3089
3090/*!
3091 * \brief fill a source tile to a target tile with masks and xy-mirroring
3092 * \param[in] ptOP the control block, NULL means using the default control block
3093 * \param[in] ptSource the source tile
3094 * \param[in] ptSrcMask the mask on the source side
3095 * \param[in] ptTarget the target tile
3096 * \param[in] ptDesMask the mask on the target side
3097 * \param[in] ptRegion the target region
3098 * \return arm_fsm_rt_t the operation result
3099 */
3100extern
3101ARM_NONNULL(2,3,4,5)
3103 arm_2d_op_cp_msk_t *ptOP,
3104 const arm_2d_tile_t *ptSource,
3105 const arm_2d_tile_t *ptSrcMask,
3106 const arm_2d_tile_t *ptTarget,
3107 const arm_2d_tile_t *ptDesMask,
3108 const arm_2d_region_t *ptRegion);
3109
3110
3111/*----------------------------------------------------------------------------*
3112 * Copy tile to destination with a source mask and a specified mode *
3113 *----------------------------------------------------------------------------*/
3114/*!
3115 * \brief copy a source tile to a target tile with a source mask in a given mode
3116 * \param[in] ptOP the control block, NULL means using the default control block
3117 * \param[in] ptSource the source tile
3118 * \param[in] ptSrcMask the mask on the source side
3119 * \param[in] ptTarget the target tile
3120 * \param[in] ptRegion the target region
3121 * \param[in] wMode the copy mode
3122 * \return arm_fsm_rt_t the operation result
3123 */
3124extern
3125ARM_NONNULL(2,3,4)
3127 arm_2d_op_cp_msk_t *ptOP,
3128 const arm_2d_tile_t *ptSource,
3129 const arm_2d_tile_t *ptSrcMask,
3130 const arm_2d_tile_t *ptTarget,
3131 const arm_2d_region_t *ptRegion,
3132 uint32_t wMode);
3133
3134/*!
3135 * \brief copy a source tile to a target tile with a source mask in a given mode
3136 * \param[in] ptOP the control block, NULL means using the default control block
3137 * \param[in] ptSource the source tile
3138 * \param[in] ptSrcMask the mask on the source side
3139 * \param[in] ptTarget the target tile
3140 * \param[in] ptRegion the target region
3141 * \param[in] wMode the copy mode
3142 * \return arm_fsm_rt_t the operation result
3143 */
3144extern
3145ARM_NONNULL(2,3,4)
3147 arm_2d_op_cp_msk_t *ptOP,
3148 const arm_2d_tile_t *ptSource,
3149 const arm_2d_tile_t *ptSrcMask,
3150 const arm_2d_tile_t *ptTarget,
3151 const arm_2d_region_t *ptRegion,
3152 uint32_t wMode);
3153
3154/*!
3155 * \brief copy a source tile to a target tile with a source mask in a given mode
3156 * \param[in] ptOP the control block, NULL means using the default control block
3157 * \param[in] ptSource the source tile
3158 * \param[in] ptSrcMask the mask on the source side
3159 * \param[in] ptTarget the target tile
3160 * \param[in] ptRegion the target region
3161 * \param[in] wMode the copy mode
3162 * \return arm_fsm_rt_t the operation result
3163 */
3164extern
3165ARM_NONNULL(2,3,4)
3167 arm_2d_op_cp_msk_t *ptOP,
3168 const arm_2d_tile_t *ptSource,
3169 const arm_2d_tile_t *ptSrcMask,
3170 const arm_2d_tile_t *ptTarget,
3171 const arm_2d_region_t *ptRegion,
3172 uint32_t wMode);
3173
3174
3175
3176/*----------------------------------------------------------------------------*
3177 * Copy tile to destination with a specified source mask *
3178 *----------------------------------------------------------------------------*/
3179/*!
3180 * \brief copy a source tile to a target tile with a source mask
3181 * \param[in] ptOP the control block, NULL means using the default control block
3182 * \param[in] ptSource the source tile
3183 * \param[in] ptSrcMask the mask on the source side
3184 * \param[in] ptTarget the target tile
3185 * \param[in] ptRegion the target region
3186 * \return arm_fsm_rt_t the operation result
3187 */
3188extern
3189ARM_NONNULL(2,3,4)
3191 arm_2d_op_cp_msk_t *ptOP,
3192 const arm_2d_tile_t *ptSource,
3193 const arm_2d_tile_t *ptSrcMask,
3194 const arm_2d_tile_t *ptTarget,
3195 const arm_2d_region_t *ptRegion);
3196
3197/*!
3198 * \brief copy a source tile to a target tile with a source mask
3199 * \param[in] ptOP the control block, NULL means using the default control block
3200 * \param[in] ptSource the source tile
3201 * \param[in] ptSrcMask the mask on the source side
3202 * \param[in] ptTarget the target tile
3203 * \param[in] ptRegion the target region
3204 * \return arm_fsm_rt_t the operation result
3205 */
3206extern
3207ARM_NONNULL(2,3,4)
3209 arm_2d_op_cp_msk_t *ptOP,
3210 const arm_2d_tile_t *ptSource,
3211 const arm_2d_tile_t *ptSrcMask,
3212 const arm_2d_tile_t *ptTarget,
3213 const arm_2d_region_t *ptRegion);
3214
3215/*!
3216 * \brief copy a source tile to a target tile with a source mask
3217 * \param[in] ptOP the control block, NULL means using the default control block
3218 * \param[in] ptSource the source tile
3219 * \param[in] ptSrcMask the mask on the source side
3220 * \param[in] ptTarget the target tile
3221 * \param[in] ptRegion the target region
3222 * \param[in] wMode the copy mode
3223 * \return arm_fsm_rt_t the operation result
3224 */
3225extern
3226ARM_NONNULL(2,3,4)
3228 arm_2d_op_cp_msk_t *ptOP,
3229 const arm_2d_tile_t *ptSource,
3230 const arm_2d_tile_t *ptSrcMask,
3231 const arm_2d_tile_t *ptTarget,
3232 const arm_2d_region_t *ptRegion);
3233
3234
3235/*----------------------------------------------------------------------------*
3236 * Copy tile to destination with a specified source mask and x-mirroring *
3237 *----------------------------------------------------------------------------*/
3238/*!
3239 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3240 * \param[in] ptOP the control block, NULL means using the default control block
3241 * \param[in] ptSource the source tile
3242 * \param[in] ptSrcMask the mask on the source side
3243 * \param[in] ptTarget the target tile
3244 * \param[in] ptRegion the target region
3245 * \return arm_fsm_rt_t the operation result
3246 */
3247extern
3248ARM_NONNULL(2,3,4)
3250 arm_2d_op_cp_msk_t *ptOP,
3251 const arm_2d_tile_t *ptSource,
3252 const arm_2d_tile_t *ptSrcMask,
3253 const arm_2d_tile_t *ptTarget,
3254 const arm_2d_region_t *ptRegion);
3255
3256/*!
3257 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3258 * \param[in] ptOP the control block, NULL means using the default control block
3259 * \param[in] ptSource the source tile
3260 * \param[in] ptSrcMask the mask on the source side
3261 * \param[in] ptTarget the target tile
3262 * \param[in] ptRegion the target region
3263 * \return arm_fsm_rt_t the operation result
3264 */
3265extern
3266ARM_NONNULL(2,3,4)
3268 arm_2d_op_cp_msk_t *ptOP,
3269 const arm_2d_tile_t *ptSource,
3270 const arm_2d_tile_t *ptSrcMask,
3271 const arm_2d_tile_t *ptTarget,
3272 const arm_2d_region_t *ptRegion);
3273
3274/*!
3275 * \brief copy a source tile to a target tile with a source mask and x-mirroring
3276 * \param[in] ptOP the control block, NULL means using the default control block
3277 * \param[in] ptSource the source tile
3278 * \param[in] ptSrcMask the mask on the source side
3279 * \param[in] ptTarget the target tile
3280 * \param[in] ptRegion the target region
3281 * \param[in] wMode the copy mode
3282 * \return arm_fsm_rt_t the operation result
3283 */
3284extern
3285ARM_NONNULL(2,3,4)
3287 arm_2d_op_cp_msk_t *ptOP,
3288 const arm_2d_tile_t *ptSource,
3289 const arm_2d_tile_t *ptSrcMask,
3290 const arm_2d_tile_t *ptTarget,
3291 const arm_2d_region_t *ptRegion);
3292
3293/*----------------------------------------------------------------------------*
3294 * Copy tile to destination with a specified source mask and y-mirroring *
3295 *----------------------------------------------------------------------------*/
3296/*!
3297 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3298 * \param[in] ptOP the control block, NULL means using the default control block
3299 * \param[in] ptSource the source tile
3300 * \param[in] ptSrcMask the mask on the source side
3301 * \param[in] ptTarget the target tile
3302 * \param[in] ptRegion the target region
3303 * \return arm_fsm_rt_t the operation result
3304 */
3305extern
3306ARM_NONNULL(2,3,4)
3308 arm_2d_op_cp_msk_t *ptOP,
3309 const arm_2d_tile_t *ptSource,
3310 const arm_2d_tile_t *ptSrcMask,
3311 const arm_2d_tile_t *ptTarget,
3312 const arm_2d_region_t *ptRegion);
3313
3314/*!
3315 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3316 * \param[in] ptOP the control block, NULL means using the default control block
3317 * \param[in] ptSource the source tile
3318 * \param[in] ptSrcMask the mask on the source side
3319 * \param[in] ptTarget the target tile
3320 * \param[in] ptRegion the target region
3321 * \return arm_fsm_rt_t the operation result
3322 */
3323extern
3324ARM_NONNULL(2,3,4)
3326 arm_2d_op_cp_msk_t *ptOP,
3327 const arm_2d_tile_t *ptSource,
3328 const arm_2d_tile_t *ptSrcMask,
3329 const arm_2d_tile_t *ptTarget,
3330 const arm_2d_region_t *ptRegion);
3331
3332/*!
3333 * \brief copy a source tile to a target tile with a source mask and y-mirroring
3334 * \param[in] ptOP the control block, NULL means using the default control block
3335 * \param[in] ptSource the source tile
3336 * \param[in] ptSrcMask the mask on the source side
3337 * \param[in] ptTarget the target tile
3338 * \param[in] ptRegion the target region
3339 * \param[in] wMode the copy mode
3340 * \return arm_fsm_rt_t the operation result
3341 */
3342extern
3343ARM_NONNULL(2,3,4)
3345 arm_2d_op_cp_msk_t *ptOP,
3346 const arm_2d_tile_t *ptSource,
3347 const arm_2d_tile_t *ptSrcMask,
3348 const arm_2d_tile_t *ptTarget,
3349 const arm_2d_region_t *ptRegion);
3350
3351
3352/*----------------------------------------------------------------------------*
3353 * Copy tile to destination with a specified source mask and xy-mirroring *
3354 *----------------------------------------------------------------------------*/
3355/*!
3356 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3357 * \param[in] ptOP the control block, NULL means using the default control block
3358 * \param[in] ptSource the source tile
3359 * \param[in] ptSrcMask the mask on the source side
3360 * \param[in] ptTarget the target tile
3361 * \param[in] ptRegion the target region
3362 * \return arm_fsm_rt_t the operation result
3363 */
3364extern
3365ARM_NONNULL(2,3,4)
3367 arm_2d_op_cp_msk_t *ptOP,
3368 const arm_2d_tile_t *ptSource,
3369 const arm_2d_tile_t *ptSrcMask,
3370 const arm_2d_tile_t *ptTarget,
3371 const arm_2d_region_t *ptRegion);
3372
3373/*!
3374 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3375 * \param[in] ptOP the control block, NULL means using the default control block
3376 * \param[in] ptSource the source tile
3377 * \param[in] ptSrcMask the mask on the source side
3378 * \param[in] ptTarget the target tile
3379 * \param[in] ptRegion the target region
3380 * \return arm_fsm_rt_t the operation result
3381 */
3382extern
3383ARM_NONNULL(2,3,4)
3385 arm_2d_op_cp_msk_t *ptOP,
3386 const arm_2d_tile_t *ptSource,
3387 const arm_2d_tile_t *ptSrcMask,
3388 const arm_2d_tile_t *ptTarget,
3389 const arm_2d_region_t *ptRegion);
3390
3391/*!
3392 * \brief copy a source tile to a target tile with a source mask and xy-mirroring
3393 * \param[in] ptOP the control block, NULL means using the default control block
3394 * \param[in] ptSource the source tile
3395 * \param[in] ptSrcMask the mask on the source side
3396 * \param[in] ptTarget the target tile
3397 * \param[in] ptRegion the target region
3398 * \param[in] wMode the copy mode
3399 * \return arm_fsm_rt_t the operation result
3400 */
3401extern
3402ARM_NONNULL(2,3,4)
3404 arm_2d_op_cp_msk_t *ptOP,
3405 const arm_2d_tile_t *ptSource,
3406 const arm_2d_tile_t *ptSrcMask,
3407 const arm_2d_tile_t *ptTarget,
3408 const arm_2d_region_t *ptRegion);
3409
3410/*----------------------------------------------------------------------------*
3411 * Fill tile to destination with a specified source mask *
3412 *----------------------------------------------------------------------------*/
3413/*!
3414 * \brief fill a source tile to a target tile with a source mask
3415 * \param[in] ptOP the control block, NULL means using the default control block
3416 * \param[in] ptSource the source tile
3417 * \param[in] ptSrcMask the mask on the source side
3418 * \param[in] ptTarget the target tile
3419 * \param[in] ptRegion the target region
3420 * \return arm_fsm_rt_t the operation result
3421 */
3422extern
3423ARM_NONNULL(2,3,4)
3425 arm_2d_op_cp_msk_t *ptOP,
3426 const arm_2d_tile_t *ptSource,
3427 const arm_2d_tile_t *ptSrcMask,
3428 const arm_2d_tile_t *ptTarget,
3429 const arm_2d_region_t *ptRegion);
3430
3431/*!
3432 * \brief fill a source tile to a target tile with a source mask
3433 * \param[in] ptOP the control block, NULL means using the default control block
3434 * \param[in] ptSource the source tile
3435 * \param[in] ptSrcMask the mask on the source side
3436 * \param[in] ptTarget the target tile
3437 * \param[in] ptRegion the target region
3438 * \return arm_fsm_rt_t the operation result
3439 */
3440extern
3441ARM_NONNULL(2,3,4)
3443 arm_2d_op_cp_msk_t *ptOP,
3444 const arm_2d_tile_t *ptSource,
3445 const arm_2d_tile_t *ptSrcMask,
3446 const arm_2d_tile_t *ptTarget,
3447 const arm_2d_region_t *ptRegion);
3448
3449/*!
3450 * \brief fill a source tile to a target tile with a source mask
3451 * \param[in] ptOP the control block, NULL means using the default control block
3452 * \param[in] ptSource the source tile
3453 * \param[in] ptSrcMask the mask on the source side
3454 * \param[in] ptTarget the target tile
3455 * \param[in] ptRegion the target region
3456 * \param[in] wMode the fill mode
3457 * \return arm_fsm_rt_t the operation result
3458 */
3459extern
3460ARM_NONNULL(2,3,4)
3462 arm_2d_op_cp_msk_t *ptOP,
3463 const arm_2d_tile_t *ptSource,
3464 const arm_2d_tile_t *ptSrcMask,
3465 const arm_2d_tile_t *ptTarget,
3466 const arm_2d_region_t *ptRegion);
3467
3468
3469/*----------------------------------------------------------------------------*
3470 * Fill tile to destination with a specified source mask and x-mirroring *
3471 *----------------------------------------------------------------------------*/
3472/*!
3473 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3474 * \param[in] ptOP the control block, NULL means using the default control block
3475 * \param[in] ptSource the source tile
3476 * \param[in] ptSrcMask the mask on the source side
3477 * \param[in] ptTarget the target tile
3478 * \param[in] ptRegion the target region
3479 * \return arm_fsm_rt_t the operation result
3480 */
3481extern
3482ARM_NONNULL(2,3,4)
3484 arm_2d_op_cp_msk_t *ptOP,
3485 const arm_2d_tile_t *ptSource,
3486 const arm_2d_tile_t *ptSrcMask,
3487 const arm_2d_tile_t *ptTarget,
3488 const arm_2d_region_t *ptRegion);
3489
3490/*!
3491 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3492 * \param[in] ptOP the control block, NULL means using the default control block
3493 * \param[in] ptSource the source tile
3494 * \param[in] ptSrcMask the mask on the source side
3495 * \param[in] ptTarget the target tile
3496 * \param[in] ptRegion the target region
3497 * \return arm_fsm_rt_t the operation result
3498 */
3499extern
3500ARM_NONNULL(2,3,4)
3502 arm_2d_op_cp_msk_t *ptOP,
3503 const arm_2d_tile_t *ptSource,
3504 const arm_2d_tile_t *ptSrcMask,
3505 const arm_2d_tile_t *ptTarget,
3506 const arm_2d_region_t *ptRegion);
3507
3508/*!
3509 * \brief fill a source tile to a target tile with a source mask and x-mirroring
3510 * \param[in] ptOP the control block, NULL means using the default control block
3511 * \param[in] ptSource the source tile
3512 * \param[in] ptSrcMask the mask on the source side
3513 * \param[in] ptTarget the target tile
3514 * \param[in] ptRegion the target region
3515 * \param[in] wMode the fill mode
3516 * \return arm_fsm_rt_t the operation result
3517 */
3518extern
3519ARM_NONNULL(2,3,4)
3521 arm_2d_op_cp_msk_t *ptOP,
3522 const arm_2d_tile_t *ptSource,
3523 const arm_2d_tile_t *ptSrcMask,
3524 const arm_2d_tile_t *ptTarget,
3525 const arm_2d_region_t *ptRegion);
3526
3527/*----------------------------------------------------------------------------*
3528 * Fill tile to destination with a specified source mask and y-mirroring *
3529 *----------------------------------------------------------------------------*/
3530/*!
3531 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3532 * \param[in] ptOP the control block, NULL means using the default control block
3533 * \param[in] ptSource the source tile
3534 * \param[in] ptSrcMask the mask on the source side
3535 * \param[in] ptTarget the target tile
3536 * \param[in] ptRegion the target region
3537 * \return arm_fsm_rt_t the operation result
3538 */
3539extern
3540ARM_NONNULL(2,3,4)
3542 arm_2d_op_cp_msk_t *ptOP,
3543 const arm_2d_tile_t *ptSource,
3544 const arm_2d_tile_t *ptSrcMask,
3545 const arm_2d_tile_t *ptTarget,
3546 const arm_2d_region_t *ptRegion);
3547
3548/*!
3549 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3550 * \param[in] ptOP the control block, NULL means using the default control block
3551 * \param[in] ptSource the source tile
3552 * \param[in] ptSrcMask the mask on the source side
3553 * \param[in] ptTarget the target tile
3554 * \param[in] ptRegion the target region
3555 * \return arm_fsm_rt_t the operation result
3556 */
3557extern
3558ARM_NONNULL(2,3,4)
3560 arm_2d_op_cp_msk_t *ptOP,
3561 const arm_2d_tile_t *ptSource,
3562 const arm_2d_tile_t *ptSrcMask,
3563 const arm_2d_tile_t *ptTarget,
3564 const arm_2d_region_t *ptRegion);
3565
3566/*!
3567 * \brief fill a source tile to a target tile with a source mask and y-mirroring
3568 * \param[in] ptOP the control block, NULL means using the default control block
3569 * \param[in] ptSource the source tile
3570 * \param[in] ptSrcMask the mask on the source side
3571 * \param[in] ptTarget the target tile
3572 * \param[in] ptRegion the target region
3573 * \param[in] wMode the fill mode
3574 * \return arm_fsm_rt_t the operation result
3575 */
3576extern
3577ARM_NONNULL(2,3,4)
3579 arm_2d_op_cp_msk_t *ptOP,
3580 const arm_2d_tile_t *ptSource,
3581 const arm_2d_tile_t *ptSrcMask,
3582 const arm_2d_tile_t *ptTarget,
3583 const arm_2d_region_t *ptRegion);
3584
3585
3586/*----------------------------------------------------------------------------*
3587 * Fill tile to destination with a specified source mask and xy-mirroring *
3588 *----------------------------------------------------------------------------*/
3589/*!
3590 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3591 * \param[in] ptOP the control block, NULL means using the default control block
3592 * \param[in] ptSource the source tile
3593 * \param[in] ptSrcMask the mask on the source side
3594 * \param[in] ptTarget the target tile
3595 * \param[in] ptRegion the target region
3596 * \return arm_fsm_rt_t the operation result
3597 */
3598extern
3599ARM_NONNULL(2,3,4)
3601 arm_2d_op_cp_msk_t *ptOP,
3602 const arm_2d_tile_t *ptSource,
3603 const arm_2d_tile_t *ptSrcMask,
3604 const arm_2d_tile_t *ptTarget,
3605 const arm_2d_region_t *ptRegion);
3606
3607/*!
3608 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3609 * \param[in] ptOP the control block, NULL means using the default control block
3610 * \param[in] ptSource the source tile
3611 * \param[in] ptSrcMask the mask on the source side
3612 * \param[in] ptTarget the target tile
3613 * \param[in] ptRegion the target region
3614 * \return arm_fsm_rt_t the operation result
3615 */
3616extern
3617ARM_NONNULL(2,3,4)
3619 arm_2d_op_cp_msk_t *ptOP,
3620 const arm_2d_tile_t *ptSource,
3621 const arm_2d_tile_t *ptSrcMask,
3622 const arm_2d_tile_t *ptTarget,
3623 const arm_2d_region_t *ptRegion);
3624
3625/*!
3626 * \brief fill a source tile to a target tile with a source mask and xy-mirroring
3627 * \param[in] ptOP the control block, NULL means using the default control block
3628 * \param[in] ptSource the source tile
3629 * \param[in] ptSrcMask the mask on the source side
3630 * \param[in] ptTarget the target tile
3631 * \param[in] ptRegion the target region
3632 * \param[in] wMode the fill mode
3633 * \return arm_fsm_rt_t the operation result
3634 */
3635extern
3636ARM_NONNULL(2,3,4)
3638 arm_2d_op_cp_msk_t *ptOP,
3639 const arm_2d_tile_t *ptSource,
3640 const arm_2d_tile_t *ptSrcMask,
3641 const arm_2d_tile_t *ptTarget,
3642 const arm_2d_region_t *ptRegion);
3643
3644
3645/*----------------------------------------------------------------------------*
3646 * Copy tile to destination with a target mask and a specified mode *
3647 *----------------------------------------------------------------------------*/
3648
3649/*!
3650 * \brief copy a source tile to a target tile with a target mask in a given mode
3651 * \param[in] ptOP the control block, NULL means using the default control block
3652 * \param[in] ptSource the source tile
3653 * \param[in] ptTarget the target tile
3654 * \param[in] ptDesMask the mask on the target side
3655 * \param[in] ptRegion the target region
3656 * \param[in] wMode the copy mode
3657 * \return arm_fsm_rt_t the operation result
3658 */
3659extern
3660ARM_NONNULL(2,3,4)
3662 arm_2d_op_cp_msk_t *ptOP,
3663 const arm_2d_tile_t *ptSource,
3664 const arm_2d_tile_t *ptTarget,
3665 const arm_2d_tile_t *ptDesMask,
3666 const arm_2d_region_t *ptRegion,
3667 uint32_t wMode);
3668
3669/*!
3670 * \brief copy a source tile to a target tile with a target mask in a given mode
3671 * \param[in] ptOP the control block, NULL means using the default control block
3672 * \param[in] ptSource the source tile
3673 * \param[in] ptTarget the target tile
3674 * \param[in] ptDesMask the mask on the target side
3675 * \param[in] ptRegion the target region
3676 * \param[in] wMode the copy mode
3677 * \return arm_fsm_rt_t the operation result
3678 */
3679extern
3680ARM_NONNULL(2,3,4)
3682 arm_2d_op_cp_msk_t *ptOP,
3683 const arm_2d_tile_t *ptSource,
3684 const arm_2d_tile_t *ptTarget,
3685 const arm_2d_tile_t *ptDesMask,
3686 const arm_2d_region_t *ptRegion,
3687 uint32_t wMode);
3688
3689/*!
3690 * \brief copy a source tile to a target tile with a target mask in a given mode
3691 * \param[in] ptOP the control block, NULL means using the default control block
3692 * \param[in] ptSource the source tile
3693 * \param[in] ptTarget the target tile
3694 * \param[in] ptDesMask the mask on the target side
3695 * \param[in] ptRegion the target region
3696 * \param[in] wMode the copy mode
3697 * \return arm_fsm_rt_t the operation result
3698 */
3699extern
3700ARM_NONNULL(2,3,4)
3702 arm_2d_op_cp_msk_t *ptOP,
3703 const arm_2d_tile_t *ptSource,
3704 const arm_2d_tile_t *ptTarget,
3705 const arm_2d_tile_t *ptDesMask,
3706 const arm_2d_region_t *ptRegion,
3707 uint32_t wMode);
3708
3709/*----------------------------------------------------------------------------*
3710 * Copy tile to target tile with a source tile and a target mask *
3711 *----------------------------------------------------------------------------*/
3712
3713/*!
3714 * \brief copy a source tile to a target tile with a target mask
3715 * \param[in] ptOP the control block, NULL means using the default control block
3716 * \param[in] ptSource the source tile
3717 * \param[in] ptTarget the target tile
3718 * \param[in] ptDesMask the mask on the target side
3719 * \param[in] ptRegion the target region
3720 * \return arm_fsm_rt_t the operation result
3721 */
3722extern
3723ARM_NONNULL(2,3,4,5)
3725 arm_2d_op_cp_msk_t *ptOP,
3726 const arm_2d_tile_t *ptSource,
3727 const arm_2d_tile_t *ptTarget,
3728 const arm_2d_tile_t *ptDesMask,
3729 const arm_2d_region_t *ptRegion);
3730
3731/*!
3732 * \brief copy a source tile to a target tile with a target mask
3733 * \param[in] ptOP the control block, NULL means using the default control block
3734 * \param[in] ptSource the source tile
3735 * \param[in] ptTarget the target tile
3736 * \param[in] ptDesMask the mask on the target side
3737 * \param[in] ptRegion the target region
3738 * \return arm_fsm_rt_t the operation result
3739 */
3740extern
3741ARM_NONNULL(2,3,4,5)
3743 arm_2d_op_cp_msk_t *ptOP,
3744 const arm_2d_tile_t *ptSource,
3745 const arm_2d_tile_t *ptTarget,
3746 const arm_2d_tile_t *ptDesMask,
3747 const arm_2d_region_t *ptRegion);
3748
3749/*!
3750 * \brief copy a source tile to a target tile with a target mask
3751 * \param[in] ptOP the control block, NULL means using the default control block
3752 * \param[in] ptSource the source tile
3753 * \param[in] ptTarget the target tile
3754 * \param[in] ptDesMask the mask on the target side
3755 * \param[in] ptRegion the target region
3756 * \return arm_fsm_rt_t the operation result
3757 */
3758extern
3759ARM_NONNULL(2,3,4,5)
3761 arm_2d_op_cp_msk_t *ptOP,
3762 const arm_2d_tile_t *ptSource,
3763 const arm_2d_tile_t *ptTarget,
3764 const arm_2d_tile_t *ptDesMask,
3765 const arm_2d_region_t *ptRegion);
3766
3767
3768/*----------------------------------------------------------------------------*
3769 * Copy tile to target tile with a source mask, a target mask and x-mirroring *
3770 *----------------------------------------------------------------------------*/
3771
3772/*!
3773 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3774 * \param[in] ptOP the control block, NULL means using the default control block
3775 * \param[in] ptSource the source tile
3776 * \param[in] ptTarget the target tile
3777 * \param[in] ptDesMask the mask on the target side
3778 * \param[in] ptRegion the target region
3779 * \return arm_fsm_rt_t the operation result
3780 */
3781extern
3782ARM_NONNULL(2,3,4,5)
3784 arm_2d_op_cp_msk_t *ptOP,
3785 const arm_2d_tile_t *ptSource,
3786 const arm_2d_tile_t *ptTarget,
3787 const arm_2d_tile_t *ptDesMask,
3788 const arm_2d_region_t *ptRegion);
3789
3790/*!
3791 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3792 * \param[in] ptOP the control block, NULL means using the default control block
3793 * \param[in] ptSource the source tile
3794 * \param[in] ptTarget the target tile
3795 * \param[in] ptDesMask the mask on the target side
3796 * \param[in] ptRegion the target region
3797 * \return arm_fsm_rt_t the operation result
3798 */
3799extern
3800ARM_NONNULL(2,3,4,5)
3802 arm_2d_op_cp_msk_t *ptOP,
3803 const arm_2d_tile_t *ptSource,
3804 const arm_2d_tile_t *ptTarget,
3805 const arm_2d_tile_t *ptDesMask,
3806 const arm_2d_region_t *ptRegion);
3807
3808/*!
3809 * \brief copy a source tile to a target tile with a target mask and x-mirroring
3810 * \param[in] ptOP the control block, NULL means using the default control block
3811 * \param[in] ptSource the source tile
3812 * \param[in] ptTarget the target tile
3813 * \param[in] ptDesMask the mask on the target side
3814 * \param[in] ptRegion the target region
3815 * \return arm_fsm_rt_t the operation result
3816 */
3817extern
3818ARM_NONNULL(2,3,4,5)
3820 arm_2d_op_cp_msk_t *ptOP,
3821 const arm_2d_tile_t *ptSource,
3822 const arm_2d_tile_t *ptTarget,
3823 const arm_2d_tile_t *ptDesMask,
3824 const arm_2d_region_t *ptRegion);
3825
3826
3827/*----------------------------------------------------------------------------*
3828 * Copy tile to target tile with a source tile, a target mask and y-mirroring *
3829 *----------------------------------------------------------------------------*/
3830
3831/*!
3832 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3833 * \param[in] ptOP the control block, NULL means using the default control block
3834 * \param[in] ptSource the source tile
3835 * \param[in] ptTarget the target tile
3836 * \param[in] ptDesMask the mask on the target side
3837 * \param[in] ptRegion the target region
3838 * \return arm_fsm_rt_t the operation result
3839 */
3840extern
3841ARM_NONNULL(2,3,4,5)
3843 arm_2d_op_cp_msk_t *ptOP,
3844 const arm_2d_tile_t *ptSource,
3845 const arm_2d_tile_t *ptTarget,
3846 const arm_2d_tile_t *ptDesMask,
3847 const arm_2d_region_t *ptRegion);
3848
3849/*!
3850 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3851 * \param[in] ptOP the control block, NULL means using the default control block
3852 * \param[in] ptSource the source tile
3853 * \param[in] ptTarget the target tile
3854 * \param[in] ptDesMask the mask on the target side
3855 * \param[in] ptRegion the target region
3856 * \return arm_fsm_rt_t the operation result
3857 */
3858extern
3859ARM_NONNULL(2,3,4,5)
3861 arm_2d_op_cp_msk_t *ptOP,
3862 const arm_2d_tile_t *ptSource,
3863 const arm_2d_tile_t *ptTarget,
3864 const arm_2d_tile_t *ptDesMask,
3865 const arm_2d_region_t *ptRegion);
3866
3867/*!
3868 * \brief copy a source tile to a target tile with a target mask and y-mirroring
3869 * \param[in] ptOP the control block, NULL means using the default control block
3870 * \param[in] ptSource the source tile
3871 * \param[in] ptTarget the target tile
3872 * \param[in] ptDesMask the mask on the target side
3873 * \param[in] ptRegion the target region
3874 * \return arm_fsm_rt_t the operation result
3875 */
3876extern
3877ARM_NONNULL(2,3,4,5)
3879 arm_2d_op_cp_msk_t *ptOP,
3880 const arm_2d_tile_t *ptSource,
3881 const arm_2d_tile_t *ptTarget,
3882 const arm_2d_tile_t *ptDesMask,
3883 const arm_2d_region_t *ptRegion);
3884
3885
3886/*----------------------------------------------------------------------------*
3887 * Copy tile to target tile with a source tile, a target mask and xy-mirroring*
3888 *----------------------------------------------------------------------------*/
3889
3890/*!
3891 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3892 * \param[in] ptOP the control block, NULL means using the default control block
3893 * \param[in] ptSource the source tile
3894 * \param[in] ptTarget the target tile
3895 * \param[in] ptDesMask the mask on the target side
3896 * \param[in] ptRegion the target region
3897 * \return arm_fsm_rt_t the operation result
3898 */
3899extern
3900ARM_NONNULL(2,3,4,5)
3902 arm_2d_op_cp_msk_t *ptOP,
3903 const arm_2d_tile_t *ptSource,
3904 const arm_2d_tile_t *ptTarget,
3905 const arm_2d_tile_t *ptDesMask,
3906 const arm_2d_region_t *ptRegion);
3907
3908/*!
3909 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3910 * \param[in] ptOP the control block, NULL means using the default control block
3911 * \param[in] ptSource the source tile
3912 * \param[in] ptTarget the target tile
3913 * \param[in] ptDesMask the mask on the target side
3914 * \param[in] ptRegion the target region
3915 * \return arm_fsm_rt_t the operation result
3916 */
3917extern
3918ARM_NONNULL(2,3,4,5)
3920 arm_2d_op_cp_msk_t *ptOP,
3921 const arm_2d_tile_t *ptSource,
3922 const arm_2d_tile_t *ptTarget,
3923 const arm_2d_tile_t *ptDesMask,
3924 const arm_2d_region_t *ptRegion);
3925
3926/*!
3927 * \brief copy a source tile to a target tile with a target mask and xy-mirroring
3928 * \param[in] ptOP the control block, NULL means using the default control block
3929 * \param[in] ptSource the source tile
3930 * \param[in] ptTarget the target tile
3931 * \param[in] ptDesMask the mask on the target side
3932 * \param[in] ptRegion the target region
3933 * \return arm_fsm_rt_t the operation result
3934 */
3935extern
3936ARM_NONNULL(2,3,4,5)
3938 arm_2d_op_cp_msk_t *ptOP,
3939 const arm_2d_tile_t *ptSource,
3940 const arm_2d_tile_t *ptTarget,
3941 const arm_2d_tile_t *ptDesMask,
3942 const arm_2d_region_t *ptRegion);
3943
3944/*----------------------------------------------------------------------------*
3945 * Fill tile to target tile with a source tile and a target mask *
3946 *----------------------------------------------------------------------------*/
3947
3948/*!
3949 * \brief fill a source tile to a target tile with a target mask
3950 * \param[in] ptOP the control block, NULL means using the default control block
3951 * \param[in] ptSource the source tile
3952 * \param[in] ptTarget the target tile
3953 * \param[in] ptDesMask the mask on the target side
3954 * \param[in] ptRegion the target region
3955 * \return arm_fsm_rt_t the operation result
3956 */
3957extern
3958ARM_NONNULL(2,3,4,5)
3960 arm_2d_op_cp_msk_t *ptOP,
3961 const arm_2d_tile_t *ptSource,
3962 const arm_2d_tile_t *ptTarget,
3963 const arm_2d_tile_t *ptDesMask,
3964 const arm_2d_region_t *ptRegion);
3965
3966/*!
3967 * \brief fill a source tile to a target tile with a target mask
3968 * \param[in] ptOP the control block, NULL means using the default control block
3969 * \param[in] ptSource the source tile
3970 * \param[in] ptTarget the target tile
3971 * \param[in] ptDesMask the mask on the target side
3972 * \param[in] ptRegion the target region
3973 * \return arm_fsm_rt_t the operation result
3974 */
3975extern
3976ARM_NONNULL(2,3,4,5)
3978 arm_2d_op_cp_msk_t *ptOP,
3979 const arm_2d_tile_t *ptSource,
3980 const arm_2d_tile_t *ptTarget,
3981 const arm_2d_tile_t *ptDesMask,
3982 const arm_2d_region_t *ptRegion);
3983
3984/*!
3985 * \brief fill a source tile to a target tile with a target mask
3986 * \param[in] ptOP the control block, NULL means using the default control block
3987 * \param[in] ptSource the source tile
3988 * \param[in] ptTarget the target tile
3989 * \param[in] ptDesMask the mask on the target side
3990 * \param[in] ptRegion the target region
3991 * \return arm_fsm_rt_t the operation result
3992 */
3993extern
3994ARM_NONNULL(2,3,4,5)
3996 arm_2d_op_cp_msk_t *ptOP,
3997 const arm_2d_tile_t *ptSource,
3998 const arm_2d_tile_t *ptTarget,
3999 const arm_2d_tile_t *ptDesMask,
4000 const arm_2d_region_t *ptRegion);
4001
4002
4003/*----------------------------------------------------------------------------*
4004 * Fill tile to target tile with a source tile, a target mask and x-mirroring *
4005 *----------------------------------------------------------------------------*/
4006
4007/*!
4008 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4009 * \param[in] ptOP the control block, NULL means using the default control block
4010 * \param[in] ptSource the source tile
4011 * \param[in] ptTarget the target tile
4012 * \param[in] ptDesMask the mask on the target side
4013 * \param[in] ptRegion the target region
4014 * \return arm_fsm_rt_t the operation result
4015 */
4016extern
4017ARM_NONNULL(2,3,4,5)
4019 arm_2d_op_cp_msk_t *ptOP,
4020 const arm_2d_tile_t *ptSource,
4021 const arm_2d_tile_t *ptTarget,
4022 const arm_2d_tile_t *ptDesMask,
4023 const arm_2d_region_t *ptRegion);
4024
4025/*!
4026 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4027 * \param[in] ptOP the control block, NULL means using the default control block
4028 * \param[in] ptSource the source tile
4029 * \param[in] ptTarget the target tile
4030 * \param[in] ptDesMask the mask on the target side
4031 * \param[in] ptRegion the target region
4032 * \return arm_fsm_rt_t the operation result
4033 */
4034extern
4035ARM_NONNULL(2,3,4,5)
4037 arm_2d_op_cp_msk_t *ptOP,
4038 const arm_2d_tile_t *ptSource,
4039 const arm_2d_tile_t *ptTarget,
4040 const arm_2d_tile_t *ptDesMask,
4041 const arm_2d_region_t *ptRegion);
4042
4043/*!
4044 * \brief fill a source tile to a target tile with a target mask and x-mirroring
4045 * \param[in] ptOP the control block, NULL means using the default control block
4046 * \param[in] ptSource the source tile
4047 * \param[in] ptTarget the target tile
4048 * \param[in] ptDesMask the mask on the target side
4049 * \param[in] ptRegion the target region
4050 * \return arm_fsm_rt_t the operation result
4051 */
4052extern
4053ARM_NONNULL(2,3,4,5)
4055 arm_2d_op_cp_msk_t *ptOP,
4056 const arm_2d_tile_t *ptSource,
4057 const arm_2d_tile_t *ptTarget,
4058 const arm_2d_tile_t *ptDesMask,
4059 const arm_2d_region_t *ptRegion);
4060
4061
4062/*----------------------------------------------------------------------------*
4063 * Fill tile to target tile with a source tile, a target mask and y-mirroring *
4064 *----------------------------------------------------------------------------*/
4065
4066/*!
4067 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4068 * \param[in] ptOP the control block, NULL means using the default control block
4069 * \param[in] ptSource the source tile
4070 * \param[in] ptTarget the target tile
4071 * \param[in] ptDesMask the mask on the target side
4072 * \param[in] ptRegion the target region
4073 * \return arm_fsm_rt_t the operation result
4074 */
4075extern
4076ARM_NONNULL(2,3,4,5)
4078 arm_2d_op_cp_msk_t *ptOP,
4079 const arm_2d_tile_t *ptSource,
4080 const arm_2d_tile_t *ptTarget,
4081 const arm_2d_tile_t *ptDesMask,
4082 const arm_2d_region_t *ptRegion);
4083
4084/*!
4085 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4086 * \param[in] ptOP the control block, NULL means using the default control block
4087 * \param[in] ptSource the source tile
4088 * \param[in] ptTarget the target tile
4089 * \param[in] ptDesMask the mask on the target side
4090 * \param[in] ptRegion the target region
4091 * \return arm_fsm_rt_t the operation result
4092 */
4093extern
4094ARM_NONNULL(2,3,4,5)
4096 arm_2d_op_cp_msk_t *ptOP,
4097 const arm_2d_tile_t *ptSource,
4098 const arm_2d_tile_t *ptTarget,
4099 const arm_2d_tile_t *ptDesMask,
4100 const arm_2d_region_t *ptRegion);
4101
4102/*!
4103 * \brief fill a source tile to a target tile with a target mask and y-mirroring
4104 * \param[in] ptOP the control block, NULL means using the default control block
4105 * \param[in] ptSource the source tile
4106 * \param[in] ptTarget the target tile
4107 * \param[in] ptDesMask the mask on the target side
4108 * \param[in] ptRegion the target region
4109 * \return arm_fsm_rt_t the operation result
4110 */
4111extern
4112ARM_NONNULL(2,3,4,5)
4114 arm_2d_op_cp_msk_t *ptOP,
4115 const arm_2d_tile_t *ptSource,
4116 const arm_2d_tile_t *ptTarget,
4117 const arm_2d_tile_t *ptDesMask,
4118 const arm_2d_region_t *ptRegion);
4119
4120
4121/*----------------------------------------------------------------------------*
4122 * Fill tile to target tile with a source tile, a target mask and xy-mirroring*
4123 *----------------------------------------------------------------------------*/
4124
4125/*!
4126 * \brief fill a source tile to a target tile with a target mask and xy-mirroring
4127 * \param[in] ptOP the control block, NULL means using the default control block
4128 * \param[in] ptSource the source tile
4129 * \param[in] ptTarget the target tile
4130 * \param[in] ptDesMask the mask on the target side
4131 * \param[in] ptRegion the target region
4132 * \return arm_fsm_rt_t the operation result
4133 */
4134extern
4135ARM_NONNULL(2,3,4,5)
4137 arm_2d_op_cp_msk_t *ptOP,
4138 const arm_2d_tile_t *ptSource,
4139 const arm_2d_tile_t *ptTarget,
4140 const arm_2d_tile_t *ptDesMask,
4141 const arm_2d_region_t *ptRegion);
4142
4143/*!
4144 * \brief fill a source tile to a target tile with target mask and xy-mirroring
4145 * \param[in] ptOP the control block, NULL means using the default control block
4146 * \param[in] ptSource the source tile
4147 * \param[in] ptTarget the target tile
4148 * \param[in] ptDesMask the mask on the target side
4149 * \param[in] ptRegion the target region
4150 * \return arm_fsm_rt_t the operation result
4151 */
4152extern
4153ARM_NONNULL(2,3,4,5)
4155 arm_2d_op_cp_msk_t *ptOP,
4156 const arm_2d_tile_t *ptSource,
4157 const arm_2d_tile_t *ptTarget,
4158 const arm_2d_tile_t *ptDesMask,
4159 const arm_2d_region_t *ptRegion);
4160
4161/*!
4162 * \brief fill a source tile to a target tile with a target mask and xy-mirroring
4163 * \param[in] ptOP the control block, NULL means using the default control block
4164 * \param[in] ptSource the source tile
4165 * \param[in] ptTarget the target tile
4166 * \param[in] ptDesMask the mask on the target side
4167 * \param[in] ptRegion the target region
4168 * \return arm_fsm_rt_t the operation result
4169 */
4170extern
4171ARM_NONNULL(2,3,4,5)
4173 arm_2d_op_cp_msk_t *ptOP,
4174 const arm_2d_tile_t *ptSource,
4175 const arm_2d_tile_t *ptTarget,
4176 const arm_2d_tile_t *ptDesMask,
4177 const arm_2d_region_t *ptRegion);
4178
4179/*! @} */
4180
4181/*========================= POST INCLUDES ====================================*/
4182#include "__arm_2d_fill_colour_with_mask_and_mirroring.h"
4183#include "__arm_2d_fill_colour_with_horizontal_line_mask.h"
4184#include "__arm_2d_fill_colour_with_vertical_line_mask.h"
4185#include "__arm_2d_tile_copy_with_source_mask_and_opacity.h"
4186
4187#if defined(__clang__)
4188#pragma clang diagnostic pop
4189#endif
4190
4191#ifdef __cplusplus
4192}
4193#endif
4194
4195#endif