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