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