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: 02 Dec 2025
25
* $Revision: V.1.15.0
26
*
27
* Target Processor: Cortex-M cores
28
* -------------------------------------------------------------------- */
29
30
#ifndef __ARM_2D_ALPHA_BLENDING_H__
31
#define __ARM_2D_ALPHA_BLENDING_H__
32
33
/*============================ INCLUDES ======================================*/
34
35
#include "arm_2d_types.h"
36
37
#ifdef __cplusplus
38
extern
"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
...)
/* 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
##__VA_ARGS__)
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
...)
/* 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
##__VA_ARGS__)
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
...)
/* 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
##__VA_ARGS__)
763
764
#define arm_2dp_gray8_tile_fill_with_masks( \
765
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
766
__SRC_ADDR,
/* source tile address */
\
767
__SRC_MSK_ADDR,
/* source mask address */
\
768
__DES_ADDR,
/* target tile address*/
\
769
__DES_MSK_ADDR,
/* target mask address */
\
770
__REGION,
/* target region address*/
\
771
...)
/* mode */
\
772
({ \
773
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
774
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
775
& ARM_2D_CP_MODE_XY_MIRROR) { \
776
case ARM_2D_CP_MODE_NO_MIRROR: \
777
tResult = arm_2dp_gray8_tile_fill_with_masks_only( \
778
(__OPCODE_PTR), \
779
(__SRC_ADDR), \
780
(__SRC_MSK_ADDR), \
781
(__DES_ADDR), \
782
(__DES_MSK_ADDR), \
783
(__REGION)); \
784
break; \
785
case ARM_2D_CP_MODE_X_MIRROR: \
786
tResult = arm_2dp_gray8_tile_fill_with_masks_and_x_mirror( \
787
(__OPCODE_PTR), \
788
(__SRC_ADDR), \
789
(__SRC_MSK_ADDR), \
790
(__DES_ADDR), \
791
(__DES_MSK_ADDR), \
792
(__REGION)); \
793
break; \
794
case ARM_2D_CP_MODE_Y_MIRROR: \
795
tResult = arm_2dp_gray8_tile_fill_with_masks_and_y_mirror( \
796
(__OPCODE_PTR), \
797
(__SRC_ADDR), \
798
(__SRC_MSK_ADDR), \
799
(__DES_ADDR), \
800
(__DES_MSK_ADDR), \
801
(__REGION)); \
802
break; \
803
case ARM_2D_CP_MODE_XY_MIRROR: \
804
tResult = arm_2dp_gray8_tile_fill_with_masks_and_xy_mirror( \
805
(__OPCODE_PTR), \
806
(__SRC_ADDR), \
807
(__SRC_MSK_ADDR), \
808
(__DES_ADDR), \
809
(__DES_MSK_ADDR), \
810
(__REGION)); \
811
break; \
812
} \
813
tResult; \
814
})
815
816
#define arm_2d_gray8_tile_fill_with_masks( \
817
__SRC_ADDR,
/* source tile address */
\
818
__SRC_MSK_ADDR,
/* source mask address */
\
819
__DES_ADDR,
/* target tile address*/
\
820
__DES_MSK_ADDR,
/* target mask address */
\
821
__REGION,
/* target region address*/
\
822
...)
/* mode */
\
823
arm_2dp_gray8_tile_fill_with_masks( \
824
NULL, \
825
(__SRC_ADDR), \
826
(__SRC_MSK_ADDR), \
827
(__DES_ADDR), \
828
(__DES_MSK_ADDR), \
829
(__REGION), \
830
##__VA_ARGS__)
831
832
#define arm_2dp_rgb565_tile_fill_with_masks( \
833
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
834
__SRC_ADDR,
/* source tile address */
\
835
__SRC_MSK_ADDR,
/* source mask address */
\
836
__DES_ADDR,
/* target tile address*/
\
837
__DES_MSK_ADDR,
/* target mask address */
\
838
__REGION,
/* target region address*/
\
839
...)
/* mode */
\
840
({ \
841
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
842
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
843
& ARM_2D_CP_MODE_XY_MIRROR) { \
844
case ARM_2D_CP_MODE_NO_MIRROR: \
845
tResult = arm_2dp_rgb565_tile_fill_with_masks_only( \
846
(__OPCODE_PTR), \
847
(__SRC_ADDR), \
848
(__SRC_MSK_ADDR), \
849
(__DES_ADDR), \
850
(__DES_MSK_ADDR), \
851
(__REGION)); \
852
break; \
853
case ARM_2D_CP_MODE_X_MIRROR: \
854
tResult = arm_2dp_rgb565_tile_fill_with_masks_and_x_mirror( \
855
(__OPCODE_PTR), \
856
(__SRC_ADDR), \
857
(__SRC_MSK_ADDR), \
858
(__DES_ADDR), \
859
(__DES_MSK_ADDR), \
860
(__REGION)); \
861
break; \
862
case ARM_2D_CP_MODE_Y_MIRROR: \
863
tResult = arm_2dp_rgb565_tile_fill_with_masks_and_y_mirror( \
864
(__OPCODE_PTR), \
865
(__SRC_ADDR), \
866
(__SRC_MSK_ADDR), \
867
(__DES_ADDR), \
868
(__DES_MSK_ADDR), \
869
(__REGION)); \
870
break; \
871
case ARM_2D_CP_MODE_XY_MIRROR: \
872
tResult = arm_2dp_rgb565_tile_fill_with_masks_and_xy_mirror( \
873
(__OPCODE_PTR), \
874
(__SRC_ADDR), \
875
(__SRC_MSK_ADDR), \
876
(__DES_ADDR), \
877
(__DES_MSK_ADDR), \
878
(__REGION)); \
879
break; \
880
} \
881
tResult; \
882
})
883
884
#define arm_2d_rgb565_tile_fill_with_masks( \
885
__SRC_ADDR,
/* source tile address */
\
886
__SRC_MSK_ADDR,
/* source mask address */
\
887
__DES_ADDR,
/* target tile address*/
\
888
__DES_MSK_ADDR,
/* target mask address */
\
889
__REGION,
/* target region address*/
\
890
...)
/* mode */
\
891
arm_2dp_rgb565_tile_fill_with_masks( \
892
NULL, \
893
(__SRC_ADDR), \
894
(__SRC_MSK_ADDR), \
895
(__DES_ADDR), \
896
(__DES_MSK_ADDR), \
897
(__REGION), \
898
##__VA_ARGS__)
899
900
#define arm_2dp_cccn888_tile_fill_with_masks( \
901
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
902
__SRC_ADDR,
/* source tile address */
\
903
__SRC_MSK_ADDR,
/* source mask address */
\
904
__DES_ADDR,
/* target tile address*/
\
905
__DES_MSK_ADDR,
/* target mask address */
\
906
__REGION,
/* target region address*/
\
907
...)
/* mode */
\
908
({ \
909
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
910
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
911
& ARM_2D_CP_MODE_XY_MIRROR) { \
912
case ARM_2D_CP_MODE_NO_MIRROR: \
913
tResult = arm_2dp_cccn888_tile_fill_with_masks_only( \
914
(__OPCODE_PTR), \
915
(__SRC_ADDR), \
916
(__SRC_MSK_ADDR), \
917
(__DES_ADDR), \
918
(__DES_MSK_ADDR), \
919
(__REGION)); \
920
break; \
921
case ARM_2D_CP_MODE_X_MIRROR: \
922
tResult = arm_2dp_cccn888_tile_fill_with_masks_and_x_mirror( \
923
(__OPCODE_PTR), \
924
(__SRC_ADDR), \
925
(__SRC_MSK_ADDR), \
926
(__DES_ADDR), \
927
(__DES_MSK_ADDR), \
928
(__REGION)); \
929
break; \
930
case ARM_2D_CP_MODE_Y_MIRROR: \
931
tResult = arm_2dp_cccn888_tile_fill_with_masks_and_y_mirror( \
932
(__OPCODE_PTR), \
933
(__SRC_ADDR), \
934
(__SRC_MSK_ADDR), \
935
(__DES_ADDR), \
936
(__DES_MSK_ADDR), \
937
(__REGION)); \
938
break; \
939
case ARM_2D_CP_MODE_XY_MIRROR: \
940
tResult = arm_2dp_cccn888_tile_fill_with_masks_and_xy_mirror( \
941
(__OPCODE_PTR), \
942
(__SRC_ADDR), \
943
(__SRC_MSK_ADDR), \
944
(__DES_ADDR), \
945
(__DES_MSK_ADDR), \
946
(__REGION)); \
947
break; \
948
} \
949
tResult; \
950
})
951
952
#define arm_2d_cccn888_tile_fill_with_masks( \
953
__SRC_ADDR,
/* source tile address */
\
954
__SRC_MSK_ADDR,
/* source mask address */
\
955
__DES_ADDR,
/* target tile address*/
\
956
__DES_MSK_ADDR,
/* target mask address */
\
957
__REGION,
/* target region address*/
\
958
...)
/* mode */
\
959
arm_2dp_cccn888_tile_fill_with_masks( \
960
NULL, \
961
(__SRC_ADDR), \
962
(__SRC_MSK_ADDR), \
963
(__DES_ADDR), \
964
(__DES_MSK_ADDR), \
965
(__REGION), \
966
##__VA_ARGS__)
967
968
/*!
969
* \brief copy a source tile to a target tile with masks and an optional mode
970
* \param[in] __OPCODE_PTR the control block, NULL means using the default
971
* control block
972
* \param[in] __SRC_ADDR the source tile
973
* \param[in] __SRC_MSK_ADDR the mask on the source side
974
* \param[in] __DES_ADDR the target tile
975
* \param[in] __DES_MSK_ADDR the mask on the target side
976
* \param[in] __REGION the target region
977
* \param[in] ... the optional copy mode
978
* \return arm_fsm_rt_t the operation result
979
*/
980
#define arm_2dp_gray8_tile_copy_with_masks( \
981
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
982
__SRC_ADDR,
/* source tile address */
\
983
__SRC_MSK_ADDR,
/* source mask address */
\
984
__DES_ADDR,
/* target tile address*/
\
985
__DES_MSK_ADDR,
/* target mask address */
\
986
__REGION,
/* target region address*/
\
987
...)
/* mode */
\
988
({ \
989
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
990
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
991
tResult = arm_2dp_gray8_tile_fill_with_masks( \
992
(__OPCODE_PTR), \
993
(__SRC_ADDR), \
994
(__SRC_MSK_ADDR), \
995
(__DES_ADDR), \
996
(__DES_MSK_ADDR), \
997
(__REGION), \
998
##__VA_ARGS__); \
999
} else { \
1000
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1001
& ARM_2D_CP_MODE_XY_MIRROR) { \
1002
case ARM_2D_CP_MODE_NO_MIRROR: \
1003
tResult = arm_2dp_gray8_tile_copy_with_masks_only( \
1004
(__OPCODE_PTR), \
1005
(__SRC_ADDR), \
1006
(__SRC_MSK_ADDR), \
1007
(__DES_ADDR), \
1008
(__DES_MSK_ADDR), \
1009
(__REGION)); \
1010
break; \
1011
case ARM_2D_CP_MODE_X_MIRROR: \
1012
tResult = arm_2dp_gray8_tile_copy_with_masks_and_x_mirror( \
1013
(__OPCODE_PTR), \
1014
(__SRC_ADDR), \
1015
(__SRC_MSK_ADDR), \
1016
(__DES_ADDR), \
1017
(__DES_MSK_ADDR), \
1018
(__REGION)); \
1019
break; \
1020
case ARM_2D_CP_MODE_Y_MIRROR: \
1021
tResult = arm_2dp_gray8_tile_copy_with_masks_and_y_mirror( \
1022
(__OPCODE_PTR), \
1023
(__SRC_ADDR), \
1024
(__SRC_MSK_ADDR), \
1025
(__DES_ADDR), \
1026
(__DES_MSK_ADDR), \
1027
(__REGION)); \
1028
break; \
1029
case ARM_2D_CP_MODE_XY_MIRROR: \
1030
tResult = arm_2dp_gray8_tile_copy_with_masks_and_xy_mirror( \
1031
(__OPCODE_PTR), \
1032
(__SRC_ADDR), \
1033
(__SRC_MSK_ADDR), \
1034
(__DES_ADDR), \
1035
(__DES_MSK_ADDR), \
1036
(__REGION)); \
1037
break; \
1038
} \
1039
}; \
1040
tResult; \
1041
})
1042
1043
/*!
1044
* \brief copy a source tile to a target tile with masks and an optional mode
1045
* \param[in] __OPCODE_PTR the control block, NULL means using the default
1046
* control block
1047
* \param[in] __SRC_ADDR the source tile
1048
* \param[in] __SRC_MSK_ADDR the mask on the source side
1049
* \param[in] __DES_ADDR the target tile
1050
* \param[in] __DES_MSK_ADDR the mask on the target side
1051
* \param[in] __REGION the target region
1052
* \param[in] ... the optional copy mode
1053
* \return arm_fsm_rt_t the operation result
1054
*/
1055
#define arm_2dp_rgb565_tile_copy_with_masks( \
1056
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
1057
__SRC_ADDR,
/* source tile address */
\
1058
__SRC_MSK_ADDR,
/* source mask address */
\
1059
__DES_ADDR,
/* target tile address*/
\
1060
__DES_MSK_ADDR,
/* target mask address */
\
1061
__REGION,
/* target region address*/
\
1062
...)
/* mode */
\
1063
({ \
1064
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1065
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
1066
tResult = arm_2dp_rgb565_tile_fill_with_masks( \
1067
(__OPCODE_PTR), \
1068
(__SRC_ADDR), \
1069
(__SRC_MSK_ADDR), \
1070
(__DES_ADDR), \
1071
(__DES_MSK_ADDR), \
1072
(__REGION), \
1073
##__VA_ARGS__); \
1074
} else { \
1075
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1076
& ARM_2D_CP_MODE_XY_MIRROR) { \
1077
case ARM_2D_CP_MODE_NO_MIRROR: \
1078
tResult = arm_2dp_rgb565_tile_copy_with_masks_only( \
1079
(__OPCODE_PTR), \
1080
(__SRC_ADDR), \
1081
(__SRC_MSK_ADDR), \
1082
(__DES_ADDR), \
1083
(__DES_MSK_ADDR), \
1084
(__REGION)); \
1085
break; \
1086
case ARM_2D_CP_MODE_X_MIRROR: \
1087
tResult = arm_2dp_rgb565_tile_copy_with_masks_and_x_mirror( \
1088
(__OPCODE_PTR), \
1089
(__SRC_ADDR), \
1090
(__SRC_MSK_ADDR), \
1091
(__DES_ADDR), \
1092
(__DES_MSK_ADDR), \
1093
(__REGION)); \
1094
break; \
1095
case ARM_2D_CP_MODE_Y_MIRROR: \
1096
tResult = arm_2dp_rgb565_tile_copy_with_masks_and_y_mirror( \
1097
(__OPCODE_PTR), \
1098
(__SRC_ADDR), \
1099
(__SRC_MSK_ADDR), \
1100
(__DES_ADDR), \
1101
(__DES_MSK_ADDR), \
1102
(__REGION)); \
1103
break; \
1104
case ARM_2D_CP_MODE_XY_MIRROR: \
1105
tResult = arm_2dp_rgb565_tile_copy_with_masks_and_xy_mirror( \
1106
(__OPCODE_PTR), \
1107
(__SRC_ADDR), \
1108
(__SRC_MSK_ADDR), \
1109
(__DES_ADDR), \
1110
(__DES_MSK_ADDR), \
1111
(__REGION)); \
1112
break; \
1113
} \
1114
}; \
1115
tResult; \
1116
})
1117
1118
/*!
1119
* \brief copy a source tile to a target tile with masks and an optional mode
1120
* \param[in] __OPCODE_PTR the control block, NULL means using the default
1121
* control block
1122
* \param[in] __SRC_ADDR the source tile
1123
* \param[in] __SRC_MSK_ADDR the mask on the source side
1124
* \param[in] __DES_ADDR the target tile
1125
* \param[in] __DES_MSK_ADDR the mask on the target side
1126
* \param[in] __REGION the target region
1127
* \param[in] ... the optional copy mode
1128
* \return arm_fsm_rt_t the operation result
1129
*/
1130
#define arm_2dp_cccn888_tile_copy_with_masks( \
1131
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
1132
__SRC_ADDR,
/* source tile address */
\
1133
__SRC_MSK_ADDR,
/* source mask address */
\
1134
__DES_ADDR,
/* target tile address*/
\
1135
__DES_MSK_ADDR,
/* target mask address */
\
1136
__REGION,
/* target region address*/
\
1137
...)
/* mode */
\
1138
({ \
1139
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1140
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
1141
tResult = arm_2dp_cccn888_tile_fill_with_masks( \
1142
(__OPCODE_PTR), \
1143
(__SRC_ADDR), \
1144
(__SRC_MSK_ADDR), \
1145
(__DES_ADDR), \
1146
(__DES_MSK_ADDR), \
1147
(__REGION), \
1148
##__VA_ARGS__); \
1149
} else { \
1150
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1151
& ARM_2D_CP_MODE_XY_MIRROR) { \
1152
case ARM_2D_CP_MODE_NO_MIRROR: \
1153
tResult = arm_2dp_cccn888_tile_copy_with_masks_only( \
1154
(__OPCODE_PTR), \
1155
(__SRC_ADDR), \
1156
(__SRC_MSK_ADDR), \
1157
(__DES_ADDR), \
1158
(__DES_MSK_ADDR), \
1159
(__REGION)); \
1160
break; \
1161
case ARM_2D_CP_MODE_X_MIRROR: \
1162
tResult = arm_2dp_cccn888_tile_copy_with_masks_and_x_mirror( \
1163
(__OPCODE_PTR), \
1164
(__SRC_ADDR), \
1165
(__SRC_MSK_ADDR), \
1166
(__DES_ADDR), \
1167
(__DES_MSK_ADDR), \
1168
(__REGION)); \
1169
break; \
1170
case ARM_2D_CP_MODE_Y_MIRROR: \
1171
tResult = arm_2dp_cccn888_tile_copy_with_masks_and_y_mirror( \
1172
(__OPCODE_PTR), \
1173
(__SRC_ADDR), \
1174
(__SRC_MSK_ADDR), \
1175
(__DES_ADDR), \
1176
(__DES_MSK_ADDR), \
1177
(__REGION)); \
1178
break; \
1179
case ARM_2D_CP_MODE_XY_MIRROR: \
1180
tResult = arm_2dp_cccn888_tile_copy_with_masks_and_xy_mirror( \
1181
(__OPCODE_PTR), \
1182
(__SRC_ADDR), \
1183
(__SRC_MSK_ADDR), \
1184
(__DES_ADDR), \
1185
(__DES_MSK_ADDR), \
1186
(__REGION)); \
1187
break; \
1188
} \
1189
}; \
1190
tResult; \
1191
})
1192
1193
/*!
1194
* \brief copy a source tile to a target tile with a source mask and an optional
1195
* mode
1196
* \param[in] __OPCODE_PTR the control block, NULL means using the default
1197
* control block
1198
* \param[in] __SRC_ADDR the source tile
1199
* \param[in] __SRC_MSK_ADDR the mask on the source side
1200
* \param[in] __DES_ADDR the target tile
1201
* \param[in] __REGION the target region
1202
* \param[in] ... the optional copy mode
1203
* \return arm_fsm_rt_t the operation result
1204
*/
1205
#define arm_2dp_gray8_tile_copy_with_src_mask( \
1206
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
1207
__SRC_ADDR,
/* source tile address */
\
1208
__SRC_MSK_ADDR,
/* source mask address */
\
1209
__DES_ADDR,
/* target tile address*/
\
1210
__REGION,
/* target region address*/
\
1211
...)
/* mode */
\
1212
({ \
1213
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1214
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
1215
tResult = arm_2dp_gray8_tile_fill_with_src_mask( \
1216
(__OPCODE_PTR), \
1217
(__SRC_ADDR), \
1218
(__SRC_MSK_ADDR), \
1219
(__DES_ADDR), \
1220
(__REGION), \
1221
##__VA_ARGS__); \
1222
} else { \
1223
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1224
& ARM_2D_CP_MODE_XY_MIRROR) { \
1225
case ARM_2D_CP_MODE_NO_MIRROR: \
1226
tResult = arm_2dp_gray8_tile_copy_with_src_mask_only( \
1227
(__OPCODE_PTR), \
1228
(__SRC_ADDR), \
1229
(__SRC_MSK_ADDR), \
1230
(__DES_ADDR), \
1231
(__REGION)); \
1232
break; \
1233
case ARM_2D_CP_MODE_X_MIRROR: \
1234
tResult = arm_2dp_gray8_tile_copy_with_src_mask_and_x_mirror( \
1235
(__OPCODE_PTR), \
1236
(__SRC_ADDR), \
1237
(__SRC_MSK_ADDR), \
1238
(__DES_ADDR), \
1239
(__REGION)); \
1240
break; \
1241
case ARM_2D_CP_MODE_Y_MIRROR: \
1242
tResult = arm_2dp_gray8_tile_copy_with_src_mask_and_y_mirror( \
1243
(__OPCODE_PTR), \
1244
(__SRC_ADDR), \
1245
(__SRC_MSK_ADDR), \
1246
(__DES_ADDR), \
1247
(__REGION)); \
1248
break; \
1249
case ARM_2D_CP_MODE_XY_MIRROR: \
1250
tResult = arm_2dp_gray8_tile_copy_with_src_mask_and_xy_mirror( \
1251
(__OPCODE_PTR), \
1252
(__SRC_ADDR), \
1253
(__SRC_MSK_ADDR), \
1254
(__DES_ADDR), \
1255
(__REGION)); \
1256
break; \
1257
} \
1258
}; \
1259
tResult; \
1260
})
1261
1262
#define arm_2d_gray8_tile_copy_with_src_mask( \
1263
__SRC_ADDR,
/* source tile address */
\
1264
__SRC_MSK_ADDR,
/* source mask address */
\
1265
__DES_ADDR,
/* target tile address*/
\
1266
__REGION,
/* target region address*/
\
1267
...)
/* mode */
\
1268
arm_2dp_gray8_tile_copy_with_src_mask(NULL, \
1269
__SRC_ADDR,
/* source tile address */
\
1270
__SRC_MSK_ADDR,
/* source mask address */
\
1271
__DES_ADDR,
/* target tile address*/
\
1272
__REGION,
/* target region address*/
\
1273
##__VA_ARGS__)
1274
1275
/*!
1276
* \brief copy a source tile to a target tile with a source mask and an optional
1277
* mode
1278
* \param[in] __OPCODE_PTR the control block, NULL means using the default
1279
* control block
1280
* \param[in] __SRC_ADDR the source tile
1281
* \param[in] __SRC_MSK_ADDR the mask on the source side
1282
* \param[in] __DES_ADDR the target tile
1283
* \param[in] __REGION the target region
1284
* \param[in] ... the optional copy mode
1285
* \return arm_fsm_rt_t the operation result
1286
*/
1287
#define arm_2dp_rgb565_tile_copy_with_src_mask( \
1288
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
1289
__SRC_ADDR,
/* source tile address */
\
1290
__SRC_MSK_ADDR,
/* source mask address */
\
1291
__DES_ADDR,
/* target tile address*/
\
1292
__REGION,
/* target region address*/
\
1293
...)
/* mode */
\
1294
({ \
1295
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1296
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
1297
tResult = arm_2dp_rgb565_tile_fill_with_src_mask( \
1298
(__OPCODE_PTR), \
1299
(__SRC_ADDR), \
1300
(__SRC_MSK_ADDR), \
1301
(__DES_ADDR), \
1302
(__REGION), \
1303
##__VA_ARGS__); \
1304
} else { \
1305
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1306
& ARM_2D_CP_MODE_XY_MIRROR) { \
1307
case ARM_2D_CP_MODE_NO_MIRROR: \
1308
tResult = arm_2dp_rgb565_tile_copy_with_src_mask_only( \
1309
(__OPCODE_PTR), \
1310
(__SRC_ADDR), \
1311
(__SRC_MSK_ADDR), \
1312
(__DES_ADDR), \
1313
(__REGION)); \
1314
break; \
1315
case ARM_2D_CP_MODE_X_MIRROR: \
1316
tResult = arm_2dp_rgb565_tile_copy_with_src_mask_and_x_mirror( \
1317
(__OPCODE_PTR), \
1318
(__SRC_ADDR), \
1319
(__SRC_MSK_ADDR), \
1320
(__DES_ADDR), \
1321
(__REGION)); \
1322
break; \
1323
case ARM_2D_CP_MODE_Y_MIRROR: \
1324
tResult = arm_2dp_rgb565_tile_copy_with_src_mask_and_y_mirror( \
1325
(__OPCODE_PTR), \
1326
(__SRC_ADDR), \
1327
(__SRC_MSK_ADDR), \
1328
(__DES_ADDR), \
1329
(__REGION)); \
1330
break; \
1331
case ARM_2D_CP_MODE_XY_MIRROR: \
1332
tResult = arm_2dp_rgb565_tile_copy_with_src_mask_and_xy_mirror( \
1333
(__OPCODE_PTR), \
1334
(__SRC_ADDR), \
1335
(__SRC_MSK_ADDR), \
1336
(__DES_ADDR), \
1337
(__REGION)); \
1338
break; \
1339
} \
1340
}; \
1341
tResult; \
1342
})
1343
1344
#define arm_2d_rgb565_tile_copy_with_src_mask( \
1345
__SRC_ADDR,
/* source tile address */
\
1346
__SRC_MSK_ADDR,
/* source mask address */
\
1347
__DES_ADDR,
/* target tile address*/
\
1348
__REGION,
/* target region address*/
\
1349
...)
/* mode */
\
1350
arm_2dp_rgb565_tile_copy_with_src_mask(NULL, \
1351
__SRC_ADDR,
/* source tile address */
\
1352
__SRC_MSK_ADDR,
/* source mask address */
\
1353
__DES_ADDR,
/* target tile address*/
\
1354
__REGION,
/* target region address*/
\
1355
##__VA_ARGS__)
1356
1357
/*!
1358
* \brief copy a source tile to a target tile with a source mask and an optional
1359
* mode
1360
* \param[in] __OPCODE_PTR the control block, NULL means using the default
1361
* control block
1362
* \param[in] __SRC_ADDR the source tile
1363
* \param[in] __SRC_MSK_ADDR the mask on the source side
1364
* \param[in] __DES_ADDR the target tile
1365
* \param[in] __REGION the target region
1366
* \param[in] ... the optional copy mode
1367
* \return arm_fsm_rt_t the operation result
1368
*/
1369
#define arm_2dp_cccn888_tile_copy_with_src_mask( \
1370
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
1371
__SRC_ADDR,
/* source tile address */
\
1372
__SRC_MSK_ADDR,
/* source mask address */
\
1373
__DES_ADDR,
/* target tile address*/
\
1374
__REGION,
/* target region address*/
\
1375
...)
/* mode */
\
1376
({ \
1377
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1378
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
1379
tResult = arm_2dp_cccn888_tile_fill_with_src_mask( \
1380
(__OPCODE_PTR), \
1381
(__SRC_ADDR), \
1382
(__SRC_MSK_ADDR), \
1383
(__DES_ADDR), \
1384
(__REGION), \
1385
##__VA_ARGS__); \
1386
} else { \
1387
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1388
& ARM_2D_CP_MODE_XY_MIRROR) { \
1389
case ARM_2D_CP_MODE_NO_MIRROR: \
1390
tResult = arm_2dp_cccn888_tile_copy_with_src_mask_only( \
1391
(__OPCODE_PTR), \
1392
(__SRC_ADDR), \
1393
(__SRC_MSK_ADDR), \
1394
(__DES_ADDR), \
1395
(__REGION)); \
1396
break; \
1397
case ARM_2D_CP_MODE_X_MIRROR: \
1398
tResult = arm_2dp_cccn888_tile_copy_with_src_mask_and_x_mirror( \
1399
(__OPCODE_PTR), \
1400
(__SRC_ADDR), \
1401
(__SRC_MSK_ADDR), \
1402
(__DES_ADDR), \
1403
(__REGION)); \
1404
break; \
1405
case ARM_2D_CP_MODE_Y_MIRROR: \
1406
tResult = arm_2dp_cccn888_tile_copy_with_src_mask_and_y_mirror( \
1407
(__OPCODE_PTR), \
1408
(__SRC_ADDR), \
1409
(__SRC_MSK_ADDR), \
1410
(__DES_ADDR), \
1411
(__REGION)); \
1412
break; \
1413
case ARM_2D_CP_MODE_XY_MIRROR: \
1414
tResult = arm_2dp_cccn888_tile_copy_with_src_mask_and_xy_mirror(\
1415
(__OPCODE_PTR), \
1416
(__SRC_ADDR), \
1417
(__SRC_MSK_ADDR), \
1418
(__DES_ADDR), \
1419
(__REGION)); \
1420
break; \
1421
} \
1422
}; \
1423
tResult; \
1424
})
1425
1426
#define arm_2d_cccn888_tile_copy_with_src_mask( \
1427
__SRC_ADDR,
/* source tile address */
\
1428
__SRC_MSK_ADDR,
/* source mask address */
\
1429
__DES_ADDR,
/* target tile address*/
\
1430
__REGION,
/* target region address*/
\
1431
...)
/* mode */
\
1432
arm_2dp_cccn888_tile_copy_with_src_mask(NULL, \
1433
__SRC_ADDR,
/* source tile address */
\
1434
__SRC_MSK_ADDR,
/* source mask address */
\
1435
__DES_ADDR,
/* target tile address*/
\
1436
__REGION,
/* target region address*/
\
1437
##__VA_ARGS__)
1438
1439
#define arm_2d_rgb888_tile_copy_with_src_mask \
1440
arm_2d_cccn888_tile_copy_with_src_mask
1441
1442
#define arm_2dp_gray8_tile_fill_with_src_mask( \
1443
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
1444
__SRC_ADDR,
/* source tile address */
\
1445
__SRC_MSK_ADDR,
/* source mask address */
\
1446
__DES_ADDR,
/* target tile address*/
\
1447
__REGION,
/* target region address*/
\
1448
...)
/* mode */
\
1449
({ \
1450
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1451
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1452
& ARM_2D_CP_MODE_XY_MIRROR) { \
1453
case ARM_2D_CP_MODE_NO_MIRROR: \
1454
tResult = arm_2dp_gray8_tile_fill_with_src_mask_only( \
1455
(__OPCODE_PTR), \
1456
(__SRC_ADDR), \
1457
(__SRC_MSK_ADDR), \
1458
(__DES_ADDR), \
1459
(__REGION)); \
1460
break; \
1461
case ARM_2D_CP_MODE_X_MIRROR: \
1462
tResult = arm_2dp_gray8_tile_fill_with_src_mask_and_x_mirror( \
1463
(__OPCODE_PTR), \
1464
(__SRC_ADDR), \
1465
(__SRC_MSK_ADDR), \
1466
(__DES_ADDR), \
1467
(__REGION)); \
1468
break; \
1469
case ARM_2D_CP_MODE_Y_MIRROR: \
1470
tResult = arm_2dp_gray8_tile_fill_with_src_mask_and_y_mirror( \
1471
(__OPCODE_PTR), \
1472
(__SRC_ADDR), \
1473
(__SRC_MSK_ADDR), \
1474
(__DES_ADDR), \
1475
(__REGION)); \
1476
break; \
1477
case ARM_2D_CP_MODE_XY_MIRROR: \
1478
tResult = arm_2dp_gray8_tile_fill_with_src_mask_and_xy_mirror( \
1479
(__OPCODE_PTR), \
1480
(__SRC_ADDR), \
1481
(__SRC_MSK_ADDR), \
1482
(__DES_ADDR), \
1483
(__REGION)); \
1484
break; \
1485
} \
1486
tResult; \
1487
})
1488
1489
#define arm_2d_gray8_tile_fill_with_src_mask( \
1490
__SRC_ADDR,
/* source tile address */
\
1491
__SRC_MSK_ADDR,
/* source mask address */
\
1492
__DES_ADDR,
/* target tile address*/
\
1493
__REGION,
/* target region address*/
\
1494
...)
/* mode */
\
1495
arm_2dp_gray8_tile_fill_with_src_mask(NULL, \
1496
__SRC_ADDR,
/* source tile address */
\
1497
__SRC_MSK_ADDR,
/* source mask address */
\
1498
__DES_ADDR,
/* target tile address*/
\
1499
__REGION,
/* target region address*/
\
1500
##__VA_ARGS__)
1501
1502
#define arm_2dp_rgb565_tile_fill_with_src_mask( \
1503
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
1504
__SRC_ADDR,
/* source tile address */
\
1505
__SRC_MSK_ADDR,
/* source mask address */
\
1506
__DES_ADDR,
/* target tile address*/
\
1507
__REGION,
/* target region address*/
\
1508
...)
/* mode */
\
1509
({ \
1510
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1511
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1512
& ARM_2D_CP_MODE_XY_MIRROR) { \
1513
case ARM_2D_CP_MODE_NO_MIRROR: \
1514
tResult = arm_2dp_rgb565_tile_fill_with_src_mask_only( \
1515
(__OPCODE_PTR), \
1516
(__SRC_ADDR), \
1517
(__SRC_MSK_ADDR), \
1518
(__DES_ADDR), \
1519
(__REGION)); \
1520
break; \
1521
case ARM_2D_CP_MODE_X_MIRROR: \
1522
tResult = arm_2dp_rgb565_tile_fill_with_src_mask_and_x_mirror( \
1523
(__OPCODE_PTR), \
1524
(__SRC_ADDR), \
1525
(__SRC_MSK_ADDR), \
1526
(__DES_ADDR), \
1527
(__REGION)); \
1528
break; \
1529
case ARM_2D_CP_MODE_Y_MIRROR: \
1530
tResult = arm_2dp_rgb565_tile_fill_with_src_mask_and_y_mirror( \
1531
(__OPCODE_PTR), \
1532
(__SRC_ADDR), \
1533
(__SRC_MSK_ADDR), \
1534
(__DES_ADDR), \
1535
(__REGION)); \
1536
break; \
1537
case ARM_2D_CP_MODE_XY_MIRROR: \
1538
tResult = arm_2dp_rgb565_tile_fill_with_src_mask_and_xy_mirror( \
1539
(__OPCODE_PTR), \
1540
(__SRC_ADDR), \
1541
(__SRC_MSK_ADDR), \
1542
(__DES_ADDR), \
1543
(__REGION)); \
1544
break; \
1545
} \
1546
tResult; \
1547
})
1548
1549
#define arm_2d_rgb565_tile_fill_with_src_mask( \
1550
__SRC_ADDR,
/* source tile address */
\
1551
__SRC_MSK_ADDR,
/* source mask address */
\
1552
__DES_ADDR,
/* target tile address*/
\
1553
__REGION,
/* target region address*/
\
1554
...)
/* mode */
\
1555
arm_2dp_rgb565_tile_fill_with_src_mask(NULL, \
1556
__SRC_ADDR,
/* source tile address */
\
1557
__SRC_MSK_ADDR,
/* source mask address */
\
1558
__DES_ADDR,
/* target tile address*/
\
1559
__REGION,
/* target region address*/
\
1560
##__VA_ARGS__)
1561
1562
#define arm_2dp_cccn888_tile_fill_with_src_mask( \
1563
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
1564
__SRC_ADDR,
/* source tile address */
\
1565
__SRC_MSK_ADDR,
/* source mask address */
\
1566
__DES_ADDR,
/* target tile address*/
\
1567
__REGION,
/* target region address*/
\
1568
...)
/* mode */
\
1569
({ \
1570
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
1571
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
1572
& ARM_2D_CP_MODE_XY_MIRROR) { \
1573
case ARM_2D_CP_MODE_NO_MIRROR: \
1574
tResult = arm_2dp_cccn888_tile_fill_with_src_mask_only( \
1575
(__OPCODE_PTR), \
1576
(__SRC_ADDR), \
1577
(__SRC_MSK_ADDR), \
1578
(__DES_ADDR), \
1579
(__REGION)); \
1580
break; \
1581
case ARM_2D_CP_MODE_X_MIRROR: \
1582
tResult = arm_2dp_cccn888_tile_fill_with_src_mask_and_x_mirror( \
1583
(__OPCODE_PTR), \
1584
(__SRC_ADDR), \
1585
(__SRC_MSK_ADDR), \
1586
(__DES_ADDR), \
1587
(__REGION)); \
1588
break; \
1589
case ARM_2D_CP_MODE_Y_MIRROR: \
1590
tResult = arm_2dp_cccn888_tile_fill_with_src_mask_and_y_mirror( \
1591
(__OPCODE_PTR), \
1592
(__SRC_ADDR), \
1593
(__SRC_MSK_ADDR), \
1594
(__DES_ADDR), \
1595
(__REGION)); \
1596
break; \
1597
case ARM_2D_CP_MODE_XY_MIRROR: \
1598
tResult = arm_2dp_cccn888_tile_fill_with_src_mask_and_xy_mirror( \
1599
(__OPCODE_PTR), \
1600
(__SRC_ADDR), \
1601
(__SRC_MSK_ADDR), \
1602
(__DES_ADDR), \
1603
(__REGION)); \
1604
break; \
1605
} \
1606
tResult; \
1607
})
1608
1609
#define arm_2d_cccn888_tile_fill_with_src_mask( \
1610
__SRC_ADDR,
/* source tile address */
\
1611
__SRC_MSK_ADDR,
/* source mask address */
\
1612
__DES_ADDR,
/* target tile address*/
\
1613
__REGION,
/* target region address*/
\
1614
...)
/* mode */
\
1615
arm_2dp_cccn888_tile_fill_with_src_mask(NULL, \
1616
__SRC_ADDR,
/* source tile address */
\
1617
__SRC_MSK_ADDR,
/* source mask address */
\
1618
__DES_ADDR,
/* target tile address*/
\
1619
__REGION,
/* target region address*/
\
1620
##__VA_ARGS__)
1621
1622
#define arm_2d_gray8_tile_copy_with_src_mask_only( \
1623
__SRC_ADDR,
/* source tile address */
\
1624
__SRC_MSK_ADDR,
/* source mask address */
\
1625
__DES_ADDR,
/* target tile address */
\
1626
__REGION)
/* region address */
\
1627
arm_2dp_gray8_tile_copy_with_src_mask_only( \
1628
NULL, \
1629
(__SRC_ADDR), \
1630
(__SRC_MSK_ADDR), \
1631
(__DES_ADDR), \
1632
(__REGION))
1633
1634
#define arm_2d_rgb565_tile_copy_with_src_mask_only( \
1635
__SRC_ADDR,
/* source tile address */
\
1636
__SRC_MSK_ADDR,
/* source mask address */
\
1637
__DES_ADDR,
/* target tile address */
\
1638
__REGION)
/* region address */
\
1639
arm_2dp_rgb565_tile_copy_with_src_mask_only( \
1640
NULL, \
1641
(__SRC_ADDR), \
1642
(__SRC_MSK_ADDR), \
1643
(__DES_ADDR), \
1644
(__REGION))
1645
1646
1647
#define arm_2d_rgb888_tile_copy_with_src_mask_only \
1648
arm_2d_cccn888_tile_copy_with_src_mask_only
1649
1650
#define arm_2d_cccn888_tile_copy_with_src_mask_only( \
1651
__SRC_ADDR,
/* source tile address */
\
1652
__SRC_MSK_ADDR,
/* source mask address */
\
1653
__DES_ADDR,
/* target tile address */
\
1654
__REGION)
/* region address */
\
1655
arm_2dp_cccn888_tile_copy_with_src_mask_only( \
1656
NULL, \
1657
(__SRC_ADDR), \
1658
(__SRC_MSK_ADDR), \
1659
(__DES_ADDR), \
1660
(__REGION))
1661
1662
#define arm_2d_gray8_tile_copy_with_src_mask_and_x_mirror( \
1663
__SRC_ADDR,
/* source tile address */
\
1664
__SRC_MSK_ADDR,
/* source mask address */
\
1665
__DES_ADDR,
/* target tile address */
\
1666
__REGION)
/* region address */
\
1667
arm_2dp_gray8_tile_copy_with_src_mask_and_x_mirror( \
1668
NULL, \
1669
(__SRC_ADDR), \
1670
(__SRC_MSK_ADDR), \
1671
(__DES_ADDR), \
1672
(__REGION))
1673
1674
1675
#define arm_2d_rgb565_tile_copy_with_src_mask_and_x_mirror( \
1676
__SRC_ADDR,
/* source tile address */
\
1677
__SRC_MSK_ADDR,
/* source mask address */
\
1678
__DES_ADDR,
/* target tile address */
\
1679
__REGION)
/* region address */
\
1680
arm_2dp_rgb565_tile_copy_with_src_mask_and_x_mirror( \
1681
NULL, \
1682
(__SRC_ADDR), \
1683
(__SRC_MSK_ADDR), \
1684
(__DES_ADDR), \
1685
(__REGION))
1686
1687
1688
#define arm_2d_rgb888_tile_copy_with_src_mask_and_x_mirror \
1689
arm_2d_cccn888_tile_copy_with_src_mask_and_x_mirror
1690
1691
#define arm_2d_cccn888_tile_copy_with_src_mask_and_x_mirror( \
1692
__SRC_ADDR,
/* source tile address */
\
1693
__SRC_MSK_ADDR,
/* source mask address */
\
1694
__DES_ADDR,
/* target tile address */
\
1695
__REGION)
/* region address */
\
1696
arm_2dp_cccn888_tile_copy_with_src_mask_and_x_mirror( \
1697
NULL, \
1698
(__SRC_ADDR), \
1699
(__SRC_MSK_ADDR), \
1700
(__DES_ADDR), \
1701
(__REGION))
1702
1703
#define arm_2d_gray8_tile_copy_with_src_mask_and_y_mirror( \
1704
__SRC_ADDR,
/* source tile address */
\
1705
__SRC_MSK_ADDR,
/* source mask address */
\
1706
__DES_ADDR,
/* target tile address */
\
1707
__REGION)
/* region address */
\
1708
arm_2dp_gray8_tile_copy_with_src_mask_and_y_mirror( \
1709
NULL, \
1710
(__SRC_ADDR), \
1711
(__SRC_MSK_ADDR), \
1712
(__DES_ADDR), \
1713
(__REGION))
1714
1715
1716
#define arm_2d_rgb565_tile_copy_with_src_mask_and_y_mirror( \
1717
__SRC_ADDR,
/* source tile address */
\
1718
__SRC_MSK_ADDR,
/* source mask address */
\
1719
__DES_ADDR,
/* target tile address */
\
1720
__REGION)
/* region address */
\
1721
arm_2dp_rgb565_tile_copy_with_src_mask_and_y_mirror( \
1722
NULL, \
1723
(__SRC_ADDR), \
1724
(__SRC_MSK_ADDR), \
1725
(__DES_ADDR), \
1726
(__REGION))
1727
1728
1729
#define arm_2d_rgb888_tile_copy_with_src_mask_and_y_mirror \
1730
arm_2d_cccn888_tile_copy_with_src_mask_and_y_mirror
1731
1732
#define arm_2d_cccn888_tile_copy_with_src_mask_and_y_mirror( \
1733
__SRC_ADDR,
/* source tile address */
\
1734
__SRC_MSK_ADDR,
/* source mask address */
\
1735
__DES_ADDR,
/* target tile address */
\
1736
__REGION)
/* region address */
\
1737
arm_2dp_cccn888_tile_copy_with_src_mask_and_y_mirror( \
1738
NULL, \
1739
(__SRC_ADDR), \
1740
(__SRC_MSK_ADDR), \
1741
(__DES_ADDR), \
1742
(__REGION))
1743
1744
#define arm_2d_gray8_tile_copy_with_src_mask_and_xy_mirror( \
1745
__SRC_ADDR,
/* source tile address */
\
1746
__SRC_MSK_ADDR,
/* source mask address */
\
1747
__DES_ADDR,
/* target tile address */
\
1748
__REGION)
/* region address */
\
1749
arm_2dp_gray8_tile_copy_with_src_mask_and_xy_mirror( \
1750
NULL, \
1751
(__SRC_ADDR), \
1752
(__SRC_MSK_ADDR), \
1753
(__DES_ADDR), \
1754
(__REGION))
1755
1756
1757
#define arm_2d_rgb565_tile_copy_with_src_mask_and_xy_mirror( \
1758
__SRC_ADDR,
/* source tile address */
\
1759
__SRC_MSK_ADDR,
/* source mask address */
\
1760
__DES_ADDR,
/* target tile address */
\
1761
__REGION)
/* region address */
\
1762
arm_2dp_rgb565_tile_copy_with_src_mask_and_xy_mirror( \
1763
NULL, \
1764
(__SRC_ADDR), \
1765
(__SRC_MSK_ADDR), \
1766
(__DES_ADDR), \
1767
(__REGION))
1768
1769
1770
#define arm_2d_rgb888_tile_copy_with_src_mask_and_xy_mirror \
1771
arm_2d_cccn888_tile_copy_with_src_mask_and_xy_mirror
1772
1773
#define arm_2d_cccn888_tile_copy_with_src_mask_and_xy_mirror( \
1774
__SRC_ADDR,
/* source tile address */
\
1775
__SRC_MSK_ADDR,
/* source mask address */
\
1776
__DES_ADDR,
/* target tile address */
\
1777
__REGION)
/* region address */
\
1778
arm_2dp_cccn888_tile_copy_with_src_mask_and_xy_mirror( \
1779
NULL, \
1780
(__SRC_ADDR), \
1781
(__SRC_MSK_ADDR), \
1782
(__DES_ADDR), \
1783
(__REGION))
1784
1785
#define arm_2d_gray8_tile_fill_with_src_mask_only( \
1786
__SRC_ADDR,
/* source tile address */
\
1787
__SRC_MSK_ADDR,
/* source mask address */
\
1788
__DES_ADDR,
/* target tile address */
\
1789
__REGION)
/* region address */
\
1790
arm_2dp_gray8_tile_fill_with_src_mask_only( \
1791
NULL, \
1792
(__SRC_ADDR), \
1793
(__SRC_MSK_ADDR), \
1794
(__DES_ADDR), \
1795
(__REGION))
1796
1797
1798
#define arm_2d_rgb565_tile_fill_with_src_mask_only( \
1799
__SRC_ADDR,
/* source tile address */
\
1800
__SRC_MSK_ADDR,
/* source mask address */
\
1801
__DES_ADDR,
/* target tile address */
\
1802
__REGION)
/* region address */
\
1803
arm_2dp_rgb565_tile_fill_with_src_mask_only( \
1804
NULL, \
1805
(__SRC_ADDR), \
1806
(__SRC_MSK_ADDR), \
1807
(__DES_ADDR), \
1808
(__REGION))
1809
1810
1811
#define arm_2d_rgb888_tile_fill_with_src_mask_only \
1812
arm_2d_cccn888_tile_fill_with_src_mask_only
1813
1814
#define arm_2d_cccn888_tile_fill_with_src_mask_only( \
1815
__SRC_ADDR,
/* source tile address */
\
1816
__SRC_MSK_ADDR,
/* source mask address */
\
1817
__DES_ADDR,
/* target tile address */
\
1818
__REGION)
/* region address */
\
1819
arm_2dp_cccn888_tile_fill_with_src_mask_only( \
1820
NULL, \
1821
(__SRC_ADDR), \
1822
(__SRC_MSK_ADDR), \
1823
(__DES_ADDR), \
1824
(__REGION))
1825
1826
#define arm_2d_gray8_tile_fill_with_src_mask_and_x_mirror( \
1827
__SRC_ADDR,
/* source tile address */
\
1828
__SRC_MSK_ADDR,
/* source mask address */
\
1829
__DES_ADDR,
/* target tile address */
\
1830
__REGION)
/* region address */
\
1831
arm_2dp_gray8_tile_fill_with_src_mask_and_x_mirror( \
1832
NULL, \
1833
(__SRC_ADDR), \
1834
(__SRC_MSK_ADDR), \
1835
(__DES_ADDR), \
1836
(__REGION))
1837
1838
1839
#define arm_2d_rgb565_tile_fill_with_src_mask_and_x_mirror( \
1840
__SRC_ADDR,
/* source tile address */
\
1841
__SRC_MSK_ADDR,
/* source mask address */
\
1842
__DES_ADDR,
/* target tile address */
\
1843
__REGION)
/* region address */
\
1844
arm_2dp_rgb565_tile_fill_with_src_mask_and_x_mirror( \
1845
NULL, \
1846
(__SRC_ADDR), \
1847
(__SRC_MSK_ADDR), \
1848
(__DES_ADDR), \
1849
(__REGION))
1850
1851
1852
#define arm_2d_rgb888_tile_fill_with_src_mask_and_x_mirror \
1853
arm_2d_cccn888_tile_fill_with_src_mask_and_x_mirror
1854
1855
#define arm_2d_cccn888_tile_fill_with_src_mask_and_x_mirror( \
1856
__SRC_ADDR,
/* source tile address */
\
1857
__SRC_MSK_ADDR,
/* source mask address */
\
1858
__DES_ADDR,
/* target tile address */
\
1859
__REGION)
/* region address */
\
1860
arm_2dp_cccn888_tile_fill_with_src_mask_and_x_mirror( \
1861
NULL, \
1862
(__SRC_ADDR), \
1863
(__SRC_MSK_ADDR), \
1864
(__DES_ADDR), \
1865
(__REGION))
1866
1867
#define arm_2d_gray8_tile_fill_with_src_mask_and_y_mirror( \
1868
__SRC_ADDR,
/* source tile address */
\
1869
__SRC_MSK_ADDR,
/* source mask address */
\
1870
__DES_ADDR,
/* target tile address */
\
1871
__REGION)
/* region address */
\
1872
arm_2dp_gray8_tile_fill_with_src_mask_and_y_mirror( \
1873
NULL, \
1874
(__SRC_ADDR), \
1875
(__SRC_MSK_ADDR), \
1876
(__DES_ADDR), \
1877
(__REGION))
1878
1879
1880
#define arm_2d_rgb565_tile_fill_with_src_mask_and_y_mirror( \
1881
__SRC_ADDR,
/* source tile address */
\
1882
__SRC_MSK_ADDR,
/* source mask address */
\
1883
__DES_ADDR,
/* target tile address */
\
1884
__REGION)
/* region address */
\
1885
arm_2dp_rgb565_tile_fill_with_src_mask_and_y_mirror( \
1886
NULL, \
1887
(__SRC_ADDR), \
1888
(__SRC_MSK_ADDR), \
1889
(__DES_ADDR), \
1890
(__REGION))
1891
1892
1893
#define arm_2d_rgb888_tile_fill_with_src_mask_and_y_mirror \
1894
arm_2d_cccn888_tile_fill_with_src_mask_and_y_mirror
1895
1896
#define arm_2d_cccn888_tile_fill_with_src_mask_and_y_mirror( \
1897
__SRC_ADDR,
/* source tile address */
\
1898
__SRC_MSK_ADDR,
/* source mask address */
\
1899
__DES_ADDR,
/* target tile address */
\
1900
__REGION)
/* region address */
\
1901
arm_2dp_cccn888_tile_fill_with_src_mask_and_y_mirror( \
1902
NULL, \
1903
(__SRC_ADDR), \
1904
(__SRC_MSK_ADDR), \
1905
(__DES_ADDR), \
1906
(__REGION))
1907
1908
#define arm_2d_gray8_tile_fill_with_src_mask_and_xy_mirror( \
1909
__SRC_ADDR,
/* source tile address */
\
1910
__SRC_MSK_ADDR,
/* source mask address */
\
1911
__DES_ADDR,
/* target tile address */
\
1912
__REGION)
/* region address */
\
1913
arm_2dp_gray8_tile_fill_with_src_mask_and_xy_mirror( \
1914
NULL, \
1915
(__SRC_ADDR), \
1916
(__SRC_MSK_ADDR), \
1917
(__DES_ADDR), \
1918
(__REGION))
1919
1920
1921
#define arm_2d_rgb565_tile_fill_with_src_mask_and_xy_mirror( \
1922
__SRC_ADDR,
/* source tile address */
\
1923
__SRC_MSK_ADDR,
/* source mask address */
\
1924
__DES_ADDR,
/* target tile address */
\
1925
__REGION)
/* region address */
\
1926
arm_2dp_rgb565_tile_fill_with_src_mask_and_xy_mirror( \
1927
NULL, \
1928
(__SRC_ADDR), \
1929
(__SRC_MSK_ADDR), \
1930
(__DES_ADDR), \
1931
(__REGION))
1932
1933
1934
#define arm_2d_rgb888_tile_fill_with_src_mask_and_xy_mirror \
1935
arm_2d_cccn888_tile_fill_with_src_mask_and_xy_mirror
1936
1937
#define arm_2d_cccn888_tile_fill_with_src_mask_and_xy_mirror( \
1938
__SRC_ADDR,
/* source tile address */
\
1939
__SRC_MSK_ADDR,
/* source mask address */
\
1940
__DES_ADDR,
/* target tile address */
\
1941
__REGION)
/* region address */
\
1942
arm_2dp_cccn888_tile_fill_with_src_mask_and_xy_mirror( \
1943
NULL, \
1944
(__SRC_ADDR), \
1945
(__SRC_MSK_ADDR), \
1946
(__DES_ADDR), \
1947
(__REGION))
1948
1949
#define arm_2d_gray8_tile_copy_with_masks_only( \
1950
__SRC_ADDR,
/* source tile address */
\
1951
__SRC_MSK_ADDR,
/* source mask address */
\
1952
__DES_ADDR,
/* target tile address */
\
1953
__DES_MSK_ADDR,
/* target mask address */
\
1954
__REGION)
/* region address */
\
1955
arm_2dp_gray8_tile_copy_with_masks_only( \
1956
NULL, \
1957
(__SRC_ADDR), \
1958
(__SRC_MSK_ADDR), \
1959
(__DES_ADDR), \
1960
(__DES_MSK_ADDR), \
1961
(__REGION))
1962
1963
1964
#define arm_2d_rgb565_tile_copy_with_masks_only( \
1965
__SRC_ADDR,
/* source tile address */
\
1966
__SRC_MSK_ADDR,
/* source mask address */
\
1967
__DES_ADDR,
/* target tile address */
\
1968
__DES_MSK_ADDR,
/* target mask address */
\
1969
__REGION)
/* region address */
\
1970
arm_2dp_rgb565_tile_copy_with_masks_only( \
1971
NULL, \
1972
(__SRC_ADDR), \
1973
(__SRC_MSK_ADDR), \
1974
(__DES_ADDR), \
1975
(__DES_MSK_ADDR), \
1976
(__REGION))
1977
1978
1979
#define arm_2d_rgb888_tile_copy_with_masks_only \
1980
arm_2d_cccn888_tile_copy_with_masks_only
1981
1982
#define arm_2d_cccn888_tile_copy_with_masks_only( \
1983
__SRC_ADDR,
/* source tile address */
\
1984
__SRC_MSK_ADDR,
/* source mask address */
\
1985
__DES_ADDR,
/* target tile address */
\
1986
__DES_MSK_ADDR,
/* target mask address */
\
1987
__REGION)
/* region address */
\
1988
arm_2dp_cccn888_tile_copy_with_masks_only( \
1989
NULL, \
1990
(__SRC_ADDR), \
1991
(__SRC_MSK_ADDR), \
1992
(__DES_ADDR), \
1993
(__DES_MSK_ADDR), \
1994
(__REGION))
1995
1996
#define arm_2d_gray8_tile_copy_with_masks_and_x_mirror( \
1997
__SRC_ADDR,
/* source tile address */
\
1998
__SRC_MSK_ADDR,
/* source mask address */
\
1999
__DES_ADDR,
/* target tile address */
\
2000
__DES_MSK_ADDR,
/* target mask address */
\
2001
__REGION)
/* region address */
\
2002
arm_2dp_gray8_tile_copy_with_masks_and_x_mirror( \
2003
NULL, \
2004
(__SRC_ADDR), \
2005
(__SRC_MSK_ADDR), \
2006
(__DES_ADDR), \
2007
(__DES_MSK_ADDR), \
2008
(__REGION))
2009
2010
2011
#define arm_2d_rgb565_tile_copy_with_masks_and_x_mirror( \
2012
__SRC_ADDR,
/* source tile address */
\
2013
__SRC_MSK_ADDR,
/* source mask address */
\
2014
__DES_ADDR,
/* target tile address */
\
2015
__DES_MSK_ADDR,
/* target mask address */
\
2016
__REGION)
/* region address */
\
2017
arm_2dp_rgb565_tile_copy_with_masks_and_x_mirror( \
2018
NULL, \
2019
(__SRC_ADDR), \
2020
(__SRC_MSK_ADDR), \
2021
(__DES_ADDR), \
2022
(__DES_MSK_ADDR), \
2023
(__REGION))
2024
2025
2026
#define arm_2d_rgb888_tile_copy_with_masks_and_x_mirror \
2027
arm_2d_cccn888_tile_copy_with_masks_and_x_mirror
2028
2029
#define arm_2d_cccn888_tile_copy_with_masks_and_x_mirror( \
2030
__SRC_ADDR,
/* source tile address */
\
2031
__SRC_MSK_ADDR,
/* source mask address */
\
2032
__DES_ADDR,
/* target tile address */
\
2033
__DES_MSK_ADDR,
/* target mask address */
\
2034
__REGION)
/* region address */
\
2035
arm_2dp_cccn888_tile_copy_with_masks_and_x_mirror( \
2036
NULL, \
2037
(__SRC_ADDR), \
2038
(__SRC_MSK_ADDR), \
2039
(__DES_ADDR), \
2040
(__DES_MSK_ADDR), \
2041
(__REGION))
2042
2043
#define arm_2d_gray8_tile_copy_with_masks_and_y_mirror( \
2044
__SRC_ADDR,
/* source tile address */
\
2045
__SRC_MSK_ADDR,
/* source mask address */
\
2046
__DES_ADDR,
/* target tile address */
\
2047
__DES_MSK_ADDR,
/* target mask address */
\
2048
__REGION)
/* region address */
\
2049
arm_2dp_gray8_tile_copy_with_masks_and_y_mirror( \
2050
NULL, \
2051
(__SRC_ADDR), \
2052
(__SRC_MSK_ADDR), \
2053
(__DES_ADDR), \
2054
(__DES_MSK_ADDR), \
2055
(__REGION))
2056
2057
2058
#define arm_2d_rgb565_tile_copy_with_masks_and_y_mirror( \
2059
__SRC_ADDR,
/* source tile address */
\
2060
__SRC_MSK_ADDR,
/* source mask address */
\
2061
__DES_ADDR,
/* target tile address */
\
2062
__DES_MSK_ADDR,
/* target mask address */
\
2063
__REGION)
/* region address */
\
2064
arm_2dp_rgb565_tile_copy_with_masks_and_y_mirror( \
2065
NULL, \
2066
(__SRC_ADDR), \
2067
(__SRC_MSK_ADDR), \
2068
(__DES_ADDR), \
2069
(__DES_MSK_ADDR), \
2070
(__REGION))
2071
2072
2073
#define arm_2d_rgb888_tile_copy_with_masks_and_y_mirror \
2074
arm_2d_cccn888_tile_copy_with_masks_and_y_mirror
2075
2076
#define arm_2d_cccn888_tile_copy_with_masks_and_y_mirror( \
2077
__SRC_ADDR,
/* source tile address */
\
2078
__SRC_MSK_ADDR,
/* source mask address */
\
2079
__DES_ADDR,
/* target tile address */
\
2080
__DES_MSK_ADDR,
/* target mask address */
\
2081
__REGION)
/* region address */
\
2082
arm_2dp_cccn888_tile_copy_with_masks_and_y_mirror( \
2083
NULL, \
2084
(__SRC_ADDR), \
2085
(__SRC_MSK_ADDR), \
2086
(__DES_ADDR), \
2087
(__DES_MSK_ADDR), \
2088
(__REGION))
2089
2090
#define arm_2d_gray8_tile_copy_with_masks_and_xy_mirror( \
2091
__SRC_ADDR,
/* source tile address */
\
2092
__SRC_MSK_ADDR,
/* source mask address */
\
2093
__DES_ADDR,
/* target tile address */
\
2094
__DES_MSK_ADDR,
/* target mask address */
\
2095
__REGION)
/* region address */
\
2096
arm_2dp_gray8_tile_copy_with_masks_and_xy_mirror( \
2097
NULL, \
2098
(__SRC_ADDR), \
2099
(__SRC_MSK_ADDR), \
2100
(__DES_ADDR), \
2101
(__DES_MSK_ADDR), \
2102
(__REGION))
2103
2104
2105
#define arm_2d_rgb565_tile_copy_with_masks_and_xy_mirror( \
2106
__SRC_ADDR,
/* source tile address */
\
2107
__SRC_MSK_ADDR,
/* source mask address */
\
2108
__DES_ADDR,
/* target tile address */
\
2109
__DES_MSK_ADDR,
/* target mask address */
\
2110
__REGION)
/* region address */
\
2111
arm_2dp_rgb565_tile_copy_with_masks_and_xy_mirror( \
2112
NULL, \
2113
(__SRC_ADDR), \
2114
(__SRC_MSK_ADDR), \
2115
(__DES_ADDR), \
2116
(__DES_MSK_ADDR), \
2117
(__REGION))
2118
2119
2120
#define arm_2d_rgb888_tile_copy_with_masks_and_xy_mirror \
2121
arm_2d_cccn888_tile_copy_with_masks_and_xy_mirror
2122
2123
#define arm_2d_cccn888_tile_copy_with_masks_and_xy_mirror( \
2124
__SRC_ADDR,
/* source tile address */
\
2125
__SRC_MSK_ADDR,
/* source mask address */
\
2126
__DES_ADDR,
/* target tile address */
\
2127
__DES_MSK_ADDR,
/* target mask address */
\
2128
__REGION)
/* region address */
\
2129
arm_2dp_cccn888_tile_copy_with_masks_and_xy_mirror( \
2130
NULL, \
2131
(__SRC_ADDR), \
2132
(__SRC_MSK_ADDR), \
2133
(__DES_ADDR), \
2134
(__DES_MSK_ADDR), \
2135
(__REGION))
2136
2137
#define arm_2d_gray8_tile_fill_with_masks_only( \
2138
__SRC_ADDR,
/* source tile address */
\
2139
__SRC_MSK_ADDR,
/* source mask address */
\
2140
__DES_ADDR,
/* target tile address */
\
2141
__DES_MSK_ADDR,
/* target mask address */
\
2142
__REGION)
/* region address */
\
2143
arm_2dp_gray8_tile_fill_with_masks_only( \
2144
NULL, \
2145
(__SRC_ADDR), \
2146
(__SRC_MSK_ADDR), \
2147
(__DES_ADDR), \
2148
(__DES_MSK_ADDR), \
2149
(__REGION))
2150
2151
2152
#define arm_2d_rgb565_tile_fill_with_masks_only( \
2153
__SRC_ADDR,
/* source tile address */
\
2154
__SRC_MSK_ADDR,
/* source mask address */
\
2155
__DES_ADDR,
/* target tile address */
\
2156
__DES_MSK_ADDR,
/* target mask address */
\
2157
__REGION)
/* region address */
\
2158
arm_2dp_rgb565_tile_fill_with_masks_only( \
2159
NULL, \
2160
(__SRC_ADDR), \
2161
(__SRC_MSK_ADDR), \
2162
(__DES_ADDR), \
2163
(__DES_MSK_ADDR), \
2164
(__REGION))
2165
2166
2167
#define arm_2d_rgb888_tile_fill_with_masks_only \
2168
arm_2d_cccn888_tile_fill_with_masks_only
2169
2170
#define arm_2d_cccn888_tile_fill_with_masks_only( \
2171
__SRC_ADDR,
/* source tile address */
\
2172
__SRC_MSK_ADDR,
/* source mask address */
\
2173
__DES_ADDR,
/* target tile address */
\
2174
__DES_MSK_ADDR,
/* target mask address */
\
2175
__REGION)
/* region address */
\
2176
arm_2dp_cccn888_tile_fill_with_masks_only( \
2177
NULL, \
2178
(__SRC_ADDR), \
2179
(__SRC_MSK_ADDR), \
2180
(__DES_ADDR), \
2181
(__DES_MSK_ADDR), \
2182
(__REGION))
2183
2184
#define arm_2d_gray8_tile_fill_with_masks_and_x_mirror( \
2185
__SRC_ADDR,
/* source tile address */
\
2186
__SRC_MSK_ADDR,
/* source mask address */
\
2187
__DES_ADDR,
/* target tile address */
\
2188
__DES_MSK_ADDR,
/* target mask address */
\
2189
__REGION)
/* region address */
\
2190
arm_2dp_gray8_tile_fill_with_masks_and_x_mirror( \
2191
NULL, \
2192
(__SRC_ADDR), \
2193
(__SRC_MSK_ADDR), \
2194
(__DES_ADDR), \
2195
(__DES_MSK_ADDR), \
2196
(__REGION))
2197
2198
2199
#define arm_2d_rgb565_tile_fill_with_masks_and_x_mirror( \
2200
__SRC_ADDR,
/* source tile address */
\
2201
__SRC_MSK_ADDR,
/* source mask address */
\
2202
__DES_ADDR,
/* target tile address */
\
2203
__DES_MSK_ADDR,
/* target mask address */
\
2204
__REGION)
/* region address */
\
2205
arm_2dp_rgb565_tile_fill_with_masks_and_x_mirror( \
2206
NULL, \
2207
(__SRC_ADDR), \
2208
(__SRC_MSK_ADDR), \
2209
(__DES_ADDR), \
2210
(__DES_MSK_ADDR), \
2211
(__REGION))
2212
2213
2214
#define arm_2d_rgb888_tile_fill_with_masks_and_x_mirror \
2215
arm_2d_cccn888_tile_fill_with_masks_and_x_mirror
2216
2217
#define arm_2d_cccn888_tile_fill_with_masks_and_x_mirror( \
2218
__SRC_ADDR,
/* source tile address */
\
2219
__SRC_MSK_ADDR,
/* source mask address */
\
2220
__DES_ADDR,
/* target tile address */
\
2221
__DES_MSK_ADDR,
/* target mask address */
\
2222
__REGION)
/* region address */
\
2223
arm_2dp_cccn888_tile_fill_with_masks_and_x_mirror( \
2224
NULL, \
2225
(__SRC_ADDR), \
2226
(__SRC_MSK_ADDR), \
2227
(__DES_ADDR), \
2228
(__DES_MSK_ADDR), \
2229
(__REGION))
2230
2231
#define arm_2d_gray8_tile_fill_with_masks_and_y_mirror( \
2232
__SRC_ADDR,
/* source tile address */
\
2233
__SRC_MSK_ADDR,
/* source mask address */
\
2234
__DES_ADDR,
/* target tile address */
\
2235
__DES_MSK_ADDR,
/* target mask address */
\
2236
__REGION)
/* region address */
\
2237
arm_2dp_gray8_tile_fill_with_masks_and_y_mirror( \
2238
NULL, \
2239
(__SRC_ADDR), \
2240
(__SRC_MSK_ADDR), \
2241
(__DES_ADDR), \
2242
(__DES_MSK_ADDR), \
2243
(__REGION))
2244
2245
2246
#define arm_2d_rgb565_tile_fill_with_masks_and_y_mirror( \
2247
__SRC_ADDR,
/* source tile address */
\
2248
__SRC_MSK_ADDR,
/* source mask address */
\
2249
__DES_ADDR,
/* target tile address */
\
2250
__DES_MSK_ADDR,
/* target mask address */
\
2251
__REGION)
/* region address */
\
2252
arm_2dp_rgb565_tile_fill_with_masks_and_y_mirror( \
2253
NULL, \
2254
(__SRC_ADDR), \
2255
(__SRC_MSK_ADDR), \
2256
(__DES_ADDR), \
2257
(__DES_MSK_ADDR), \
2258
(__REGION))
2259
2260
2261
#define arm_2d_rgb888_tile_fill_with_masks_and_y_mirror \
2262
arm_2d_cccn888_tile_fill_with_masks_and_y_mirror
2263
2264
#define arm_2d_cccn888_tile_fill_with_masks_and_y_mirror( \
2265
__SRC_ADDR,
/* source tile address */
\
2266
__SRC_MSK_ADDR,
/* source mask address */
\
2267
__DES_ADDR,
/* target tile address */
\
2268
__DES_MSK_ADDR,
/* target mask address */
\
2269
__REGION)
/* region address */
\
2270
arm_2dp_cccn888_tile_fill_with_masks_and_y_mirror( \
2271
NULL, \
2272
(__SRC_ADDR), \
2273
(__SRC_MSK_ADDR), \
2274
(__DES_ADDR), \
2275
(__DES_MSK_ADDR), \
2276
(__REGION))
2277
2278
#define arm_2d_gray8_tile_fill_with_masks_and_xy_mirror( \
2279
__SRC_ADDR,
/* source tile address */
\
2280
__SRC_MSK_ADDR,
/* source mask address */
\
2281
__DES_ADDR,
/* target tile address */
\
2282
__DES_MSK_ADDR,
/* target mask address */
\
2283
__REGION)
/* region address */
\
2284
arm_2dp_gray8_tile_fill_with_masks_and_xy_mirror( \
2285
NULL, \
2286
(__SRC_ADDR), \
2287
(__SRC_MSK_ADDR), \
2288
(__DES_ADDR), \
2289
(__DES_MSK_ADDR), \
2290
(__REGION))
2291
2292
2293
#define arm_2d_rgb565_tile_fill_with_masks_and_xy_mirror( \
2294
__SRC_ADDR,
/* source tile address */
\
2295
__SRC_MSK_ADDR,
/* source mask address */
\
2296
__DES_ADDR,
/* target tile address */
\
2297
__DES_MSK_ADDR,
/* target mask address */
\
2298
__REGION)
/* region address */
\
2299
arm_2dp_rgb565_tile_fill_with_masks_and_xy_mirror( \
2300
NULL, \
2301
(__SRC_ADDR), \
2302
(__SRC_MSK_ADDR), \
2303
(__DES_ADDR), \
2304
(__DES_MSK_ADDR), \
2305
(__REGION))
2306
2307
2308
#define arm_2d_rgb888_tile_fill_with_masks_and_xy_mirror \
2309
arm_2d_cccn888_tile_fill_with_masks_and_xy_mirror
2310
2311
#define arm_2d_cccn888_tile_fill_with_masks_and_xy_mirror( \
2312
__SRC_ADDR,
/* source tile address */
\
2313
__SRC_MSK_ADDR,
/* source mask address */
\
2314
__DES_ADDR,
/* target tile address */
\
2315
__DES_MSK_ADDR,
/* target mask address */
\
2316
__REGION)
/* region address */
\
2317
arm_2dp_cccn888_tile_fill_with_masks_and_xy_mirror( \
2318
NULL, \
2319
(__SRC_ADDR), \
2320
(__SRC_MSK_ADDR), \
2321
(__DES_ADDR), \
2322
(__DES_MSK_ADDR), \
2323
(__REGION))
2324
2325
2326
#define arm_2d_gray8_tile_copy_with_des_mask( \
2327
__SRC_ADDR,
/* source tile address */
\
2328
__DES_ADDR,
/* target tile address */
\
2329
__DES_MSK_ADDR,
/* target mask address */
\
2330
__REGION,
/* region address */
\
2331
...)
/* copy mode */
\
2332
arm_2dp_gray8_tile_copy_with_des_mask( \
2333
NULL, \
2334
(__SRC_ADDR), \
2335
(__DES_ADDR), \
2336
(__DES_MSK_ADDR), \
2337
(__REGION), \
2338
##__VA_ARGS__)
2339
2340
#define arm_2d_rgb565_tile_copy_with_des_mask( \
2341
__SRC_ADDR,
/* source tile address */
\
2342
__DES_ADDR,
/* target tile address */
\
2343
__DES_MSK_ADDR,
/* target mask address */
\
2344
__REGION,
/* region address */
\
2345
...)
/* copy mode */
\
2346
arm_2dp_rgb565_tile_copy_with_des_mask( \
2347
NULL, \
2348
(__SRC_ADDR), \
2349
(__DES_ADDR), \
2350
(__DES_MSK_ADDR), \
2351
(__REGION), \
2352
##__VA_ARGS__)
2353
2354
#define arm_2d_rgb888_tile_copy_with_des_mask \
2355
arm_2d_cccn888_tile_copy_with_des_mask
2356
2357
#define arm_2d_cccn888_tile_copy_with_des_mask( \
2358
__SRC_ADDR,
/* source tile address */
\
2359
__DES_ADDR,
/* target tile address */
\
2360
__DES_MSK_ADDR,
/* target mask address */
\
2361
__REGION,
/* region address */
\
2362
...)
/* copy mode */
\
2363
arm_2dp_cccn888_tile_copy_with_des_mask( \
2364
NULL, \
2365
(__SRC_ADDR), \
2366
(__DES_ADDR), \
2367
(__DES_MSK_ADDR), \
2368
(__REGION), \
2369
##__VA_ARGS__)
2370
2371
2372
#define arm_2d_gray8_tile_copy_with_des_mask_only( \
2373
__SRC_ADDR,
/* source tile address */
\
2374
__DES_ADDR,
/* target tile address */
\
2375
__DES_MSK_ADDR,
/* target mask address */
\
2376
__REGION)
/* region address */
\
2377
arm_2dp_gray8_tile_copy_with_des_mask_only( \
2378
NULL, \
2379
(__SRC_ADDR), \
2380
(__DES_ADDR), \
2381
(__DES_MSK_ADDR), \
2382
(__REGION))
2383
2384
2385
#define arm_2d_rgb565_tile_copy_with_des_mask_only( \
2386
__SRC_ADDR,
/* source tile address */
\
2387
__DES_ADDR,
/* target tile address */
\
2388
__DES_MSK_ADDR,
/* target mask address */
\
2389
__REGION)
/* region address */
\
2390
arm_2dp_rgb565_tile_copy_with_des_mask_only( \
2391
NULL, \
2392
(__SRC_ADDR), \
2393
(__DES_ADDR), \
2394
(__DES_MSK_ADDR), \
2395
(__REGION))
2396
2397
2398
#define arm_2d_rgb888_tile_copy_with_des_mask_only \
2399
arm_2d_cccn888_tile_copy_with_des_mask_only
2400
2401
#define arm_2d_cccn888_tile_copy_with_des_mask_only( \
2402
__SRC_ADDR,
/* source tile address */
\
2403
__DES_ADDR,
/* target tile address */
\
2404
__DES_MSK_ADDR,
/* target mask address */
\
2405
__REGION)
/* region address */
\
2406
arm_2dp_cccn888_tile_copy_with_des_mask_only( \
2407
NULL, \
2408
(__SRC_ADDR), \
2409
(__DES_ADDR), \
2410
(__DES_MSK_ADDR), \
2411
(__REGION))
2412
2413
#define arm_2d_gray8_tile_copy_with_des_mask_and_x_mirror( \
2414
__SRC_ADDR,
/* source tile address */
\
2415
__DES_ADDR,
/* target tile address */
\
2416
__DES_MSK_ADDR,
/* target mask address */
\
2417
__REGION)
/* region address */
\
2418
arm_2dp_gray8_tile_copy_with_des_mask_and_x_mirror( \
2419
NULL, \
2420
(__SRC_ADDR), \
2421
(__DES_ADDR), \
2422
(__DES_MSK_ADDR), \
2423
(__REGION))
2424
2425
2426
#define arm_2d_rgb565_tile_copy_with_des_mask_and_x_mirror( \
2427
__SRC_ADDR,
/* source tile address */
\
2428
__DES_ADDR,
/* target tile address */
\
2429
__DES_MSK_ADDR,
/* target mask address */
\
2430
__REGION)
/* region address */
\
2431
arm_2dp_rgb565_tile_copy_with_des_mask_and_x_mirror( \
2432
NULL, \
2433
(__SRC_ADDR), \
2434
(__DES_ADDR), \
2435
(__DES_MSK_ADDR), \
2436
(__REGION))
2437
2438
2439
#define arm_2d_rgb888_tile_copy_with_des_mask_and_x_mirror \
2440
arm_2d_cccn888_tile_copy_with_des_mask_and_x_mirror
2441
2442
#define arm_2d_cccn888_tile_copy_with_des_mask_and_x_mirror( \
2443
__SRC_ADDR,
/* source tile address */
\
2444
__DES_ADDR,
/* target tile address */
\
2445
__DES_MSK_ADDR,
/* target mask address */
\
2446
__REGION)
/* region address */
\
2447
arm_2dp_cccn888_tile_copy_with_des_mask_and_x_mirror( \
2448
NULL, \
2449
(__SRC_ADDR), \
2450
(__DES_ADDR), \
2451
(__DES_MSK_ADDR), \
2452
(__REGION))
2453
2454
#define arm_2d_gray8_tile_copy_with_des_mask_and_y_mirror( \
2455
__SRC_ADDR,
/* source tile address */
\
2456
__DES_ADDR,
/* target tile address */
\
2457
__DES_MSK_ADDR,
/* target mask address */
\
2458
__REGION)
/* region address */
\
2459
arm_2dp_gray8_tile_copy_with_des_mask_and_y_mirror( \
2460
NULL, \
2461
(__SRC_ADDR), \
2462
(__DES_ADDR), \
2463
(__DES_MSK_ADDR), \
2464
(__REGION))
2465
2466
2467
#define arm_2d_rgb565_tile_copy_with_des_mask_and_y_mirror( \
2468
__SRC_ADDR,
/* source tile address */
\
2469
__DES_ADDR,
/* target tile address */
\
2470
__DES_MSK_ADDR,
/* target mask address */
\
2471
__REGION)
/* region address */
\
2472
arm_2dp_rgb565_tile_copy_with_des_mask_and_y_mirror( \
2473
NULL, \
2474
(__SRC_ADDR), \
2475
(__DES_ADDR), \
2476
(__DES_MSK_ADDR), \
2477
(__REGION))
2478
2479
2480
#define arm_2d_rgb888_tile_copy_with_des_mask_and_y_mirror \
2481
arm_2d_cccn888_tile_copy_with_des_mask_and_y_mirror
2482
2483
#define arm_2d_cccn888_tile_copy_with_des_mask_and_y_mirror( \
2484
__SRC_ADDR,
/* source tile address */
\
2485
__DES_ADDR,
/* target tile address */
\
2486
__DES_MSK_ADDR,
/* target mask address */
\
2487
__REGION)
/* region address */
\
2488
arm_2dp_cccn888_tile_copy_with_des_mask_and_y_mirror( \
2489
NULL, \
2490
(__SRC_ADDR), \
2491
(__DES_ADDR), \
2492
(__DES_MSK_ADDR), \
2493
(__REGION))
2494
2495
#define arm_2d_gray8_tile_copy_with_des_mask_and_xy_mirror( \
2496
__SRC_ADDR,
/* source tile address */
\
2497
__DES_ADDR,
/* target tile address */
\
2498
__DES_MSK_ADDR,
/* target mask address */
\
2499
__REGION)
/* region address */
\
2500
arm_2dp_gray8_tile_copy_with_des_mask_and_xy_mirror( \
2501
NULL, \
2502
(__SRC_ADDR), \
2503
(__DES_ADDR), \
2504
(__DES_MSK_ADDR), \
2505
(__REGION))
2506
2507
2508
#define arm_2d_rgb565_tile_copy_with_des_mask_and_xy_mirror( \
2509
__SRC_ADDR,
/* source tile address */
\
2510
__DES_ADDR,
/* target tile address */
\
2511
__DES_MSK_ADDR,
/* target mask address */
\
2512
__REGION)
/* region address */
\
2513
arm_2dp_rgb565_tile_copy_with_des_mask_and_xy_mirror( \
2514
NULL, \
2515
(__SRC_ADDR), \
2516
(__DES_ADDR), \
2517
(__DES_MSK_ADDR), \
2518
(__REGION))
2519
2520
2521
#define arm_2d_rgb888_tile_copy_with_des_mask_and_xy_mirror \
2522
arm_2d_cccn888_tile_copy_with_des_mask_and_xy_mirror
2523
2524
#define arm_2d_cccn888_tile_copy_with_des_mask_and_xy_mirror( \
2525
__SRC_ADDR,
/* source tile address */
\
2526
__DES_ADDR,
/* target tile address */
\
2527
__DES_MSK_ADDR,
/* target mask address */
\
2528
__REGION)
/* region address */
\
2529
arm_2dp_cccn888_tile_copy_with_des_mask_and_xy_mirror( \
2530
NULL, \
2531
(__SRC_ADDR), \
2532
(__DES_ADDR), \
2533
(__DES_MSK_ADDR), \
2534
(__REGION))
2535
2536
#define arm_2d_gray8_tile_fill_with_des_mask_only( \
2537
__SRC_ADDR,
/* source tile address */
\
2538
__DES_ADDR,
/* target tile address */
\
2539
__DES_MSK_ADDR,
/* target mask address */
\
2540
__REGION)
/* region address */
\
2541
arm_2dp_gray8_tile_fill_with_des_mask_only( \
2542
NULL, \
2543
(__SRC_ADDR), \
2544
(__DES_ADDR), \
2545
(__DES_MSK_ADDR), \
2546
(__REGION))
2547
2548
2549
#define arm_2d_rgb565_tile_fill_with_des_mask_only( \
2550
__SRC_ADDR,
/* source tile address */
\
2551
__DES_ADDR,
/* target tile address */
\
2552
__DES_MSK_ADDR,
/* target mask address */
\
2553
__REGION)
/* region address */
\
2554
arm_2dp_rgb565_tile_fill_with_des_mask_only( \
2555
NULL, \
2556
(__SRC_ADDR), \
2557
(__DES_ADDR), \
2558
(__DES_MSK_ADDR), \
2559
(__REGION))
2560
2561
2562
#define arm_2d_rgb888_tile_fill_with_des_mask_only \
2563
arm_2d_cccn888_tile_fill_with_des_mask_only
2564
2565
#define arm_2d_cccn888_tile_fill_with_des_mask_only( \
2566
__SRC_ADDR,
/* source tile address */
\
2567
__DES_ADDR,
/* target tile address */
\
2568
__DES_MSK_ADDR,
/* target mask address */
\
2569
__REGION)
/* region address */
\
2570
arm_2dp_cccn888_tile_fill_with_des_mask_only( \
2571
NULL, \
2572
(__SRC_ADDR), \
2573
(__DES_ADDR), \
2574
(__DES_MSK_ADDR), \
2575
(__REGION))
2576
2577
#define arm_2d_gray8_tile_fill_with_des_mask_and_x_mirror( \
2578
__SRC_ADDR,
/* source tile address */
\
2579
__DES_ADDR,
/* target tile address */
\
2580
__DES_MSK_ADDR,
/* target mask address */
\
2581
__REGION)
/* region address */
\
2582
arm_2dp_gray8_tile_fill_with_des_mask_and_x_mirror( \
2583
NULL, \
2584
(__SRC_ADDR), \
2585
(__DES_ADDR), \
2586
(__DES_MSK_ADDR), \
2587
(__REGION))
2588
2589
2590
#define arm_2d_rgb565_tile_fill_with_des_mask_and_x_mirror( \
2591
__SRC_ADDR,
/* source tile address */
\
2592
__DES_ADDR,
/* target tile address */
\
2593
__DES_MSK_ADDR,
/* target mask address */
\
2594
__REGION)
/* region address */
\
2595
arm_2dp_rgb565_tile_fill_with_des_mask_and_x_mirror( \
2596
NULL, \
2597
(__SRC_ADDR), \
2598
(__DES_ADDR), \
2599
(__DES_MSK_ADDR), \
2600
(__REGION))
2601
2602
2603
#define arm_2d_rgb888_tile_fill_with_des_mask_and_x_mirror \
2604
arm_2d_cccn888_tile_fill_with_des_mask_and_x_mirror
2605
2606
#define arm_2d_cccn888_tile_fill_with_des_mask_and_x_mirror( \
2607
__SRC_ADDR,
/* source tile address */
\
2608
__DES_ADDR,
/* target tile address */
\
2609
__DES_MSK_ADDR,
/* target mask address */
\
2610
__REGION)
/* region address */
\
2611
arm_2dp_cccn888_tile_fill_with_des_mask_and_x_mirror( \
2612
NULL, \
2613
(__SRC_ADDR), \
2614
(__DES_ADDR), \
2615
(__DES_MSK_ADDR), \
2616
(__REGION))
2617
2618
#define arm_2d_gray8_tile_fill_with_des_mask_and_y_mirror( \
2619
__SRC_ADDR,
/* source tile address */
\
2620
__DES_ADDR,
/* target tile address */
\
2621
__DES_MSK_ADDR,
/* target mask address */
\
2622
__REGION)
/* region address */
\
2623
arm_2dp_gray8_tile_fill_with_des_mask_and_y_mirror( \
2624
NULL, \
2625
(__SRC_ADDR), \
2626
(__DES_ADDR), \
2627
(__DES_MSK_ADDR), \
2628
(__REGION))
2629
2630
2631
#define arm_2d_rgb565_tile_fill_with_des_mask_and_y_mirror( \
2632
__SRC_ADDR,
/* source tile address */
\
2633
__DES_ADDR,
/* target tile address */
\
2634
__DES_MSK_ADDR,
/* target mask address */
\
2635
__REGION)
/* region address */
\
2636
arm_2dp_rgb565_tile_fill_with_des_mask_and_y_mirror( \
2637
NULL, \
2638
(__SRC_ADDR), \
2639
(__DES_ADDR), \
2640
(__DES_MSK_ADDR), \
2641
(__REGION))
2642
2643
2644
#define arm_2d_rgb888_tile_fill_with_des_mask_and_y_mirror \
2645
arm_2d_cccn888_tile_fill_with_des_mask_and_y_mirror
2646
2647
#define arm_2d_cccn888_tile_fill_with_des_mask_and_y_mirror( \
2648
__SRC_ADDR,
/* source tile address */
\
2649
__DES_ADDR,
/* target tile address */
\
2650
__DES_MSK_ADDR,
/* target mask address */
\
2651
__REGION)
/* region address */
\
2652
arm_2dp_cccn888_tile_fill_with_des_mask_and_y_mirror( \
2653
NULL, \
2654
(__SRC_ADDR), \
2655
(__DES_ADDR), \
2656
(__DES_MSK_ADDR), \
2657
(__REGION))
2658
2659
#define arm_2d_gray8_tile_fill_with_des_mask_and_xy_mirror( \
2660
__SRC_ADDR,
/* source tile address */
\
2661
__DES_ADDR,
/* target tile address */
\
2662
__DES_MSK_ADDR,
/* target mask address */
\
2663
__REGION)
/* region address */
\
2664
arm_2dp_gray8_tile_fill_with_des_mask_and_xy_mirror( \
2665
NULL, \
2666
(__SRC_ADDR), \
2667
(__DES_ADDR), \
2668
(__DES_MSK_ADDR), \
2669
(__REGION))
2670
2671
2672
#define arm_2d_rgb565_tile_fill_with_des_mask_and_xy_mirror( \
2673
__SRC_ADDR,
/* source tile address */
\
2674
__DES_ADDR,
/* target tile address */
\
2675
__DES_MSK_ADDR,
/* target mask address */
\
2676
__REGION)
/* region address */
\
2677
arm_2dp_rgb565_tile_fill_with_des_mask_and_xy_mirror( \
2678
NULL, \
2679
(__SRC_ADDR), \
2680
(__DES_ADDR), \
2681
(__DES_MSK_ADDR), \
2682
(__REGION))
2683
2684
2685
#define arm_2d_rgb888_tile_fill_with_des_mask_and_xy_mirror \
2686
arm_2d_cccn888_tile_fill_with_des_mask_and_xy_mirror
2687
2688
#define arm_2d_cccn888_tile_fill_with_des_mask_and_xy_mirror( \
2689
__SRC_ADDR,
/* source tile address */
\
2690
__DES_ADDR,
/* target tile address */
\
2691
__DES_MSK_ADDR,
/* target mask address */
\
2692
__REGION)
/* region address */
\
2693
arm_2dp_cccn888_tile_fill_with_des_mask_and_xy_mirror( \
2694
NULL, \
2695
(__SRC_ADDR), \
2696
(__DES_ADDR), \
2697
(__DES_MSK_ADDR), \
2698
(__REGION))
2699
2700
/*!
2701
* \brief fill a target tile with a source tile and a target mask in an optional
2702
* copy mode
2703
* \param[in] __OPCODE_PTR the control block, NULL means using the default
2704
* control block
2705
* \param[in] __SRC_ADDR the source tile
2706
* \param[in] __DES_ADDR the target tile
2707
* \param[in] __DES_MSK_ADDR the mask on the target side
2708
* \param[in] __REGION the target region
2709
* \param[in] ... the optional copy mode
2710
* \return arm_fsm_rt_t the operation result
2711
*/
2712
#define arm_2dp_gray8_tile_fill_with_des_mask( \
2713
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
2714
__SRC_ADDR,
/* source tile address */
\
2715
__DES_ADDR,
/* target tile address*/
\
2716
__DES_MSK_ADDR,
/* target mask address */
\
2717
__REGION,
/* target region address*/
\
2718
...)
/* mode */
\
2719
({ \
2720
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
2721
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
2722
& ARM_2D_CP_MODE_XY_MIRROR) { \
2723
case ARM_2D_CP_MODE_NO_MIRROR: \
2724
tResult = arm_2dp_gray8_tile_fill_with_des_mask_only( \
2725
(__OPCODE_PTR), \
2726
(__SRC_ADDR), \
2727
(__DES_ADDR), \
2728
(__DES_MSK_ADDR), \
2729
(__REGION)); \
2730
break; \
2731
case ARM_2D_CP_MODE_X_MIRROR: \
2732
tResult = arm_2dp_gray8_tile_fill_with_des_mask_and_x_mirror( \
2733
(__OPCODE_PTR), \
2734
(__SRC_ADDR), \
2735
(__DES_ADDR), \
2736
(__DES_MSK_ADDR), \
2737
(__REGION)); \
2738
break; \
2739
case ARM_2D_CP_MODE_Y_MIRROR: \
2740
tResult = arm_2dp_gray8_tile_fill_with_des_mask_and_y_mirror( \
2741
(__OPCODE_PTR), \
2742
(__SRC_ADDR), \
2743
(__DES_ADDR), \
2744
(__DES_MSK_ADDR), \
2745
(__REGION)); \
2746
break; \
2747
case ARM_2D_CP_MODE_XY_MIRROR: \
2748
tResult = arm_2dp_gray8_tile_fill_with_des_mask_and_xy_mirror( \
2749
(__OPCODE_PTR), \
2750
(__SRC_ADDR), \
2751
(__DES_ADDR), \
2752
(__DES_MSK_ADDR), \
2753
(__REGION)); \
2754
break; \
2755
} \
2756
tResult; \
2757
})
2758
2759
#define arm_2d_gray8_tile_fill_with_des_mask( \
2760
__SRC_ADDR,
/* source tile address */
\
2761
__DES_ADDR,
/* target tile address*/
\
2762
__DES_MSK_ADDR,
/* target mask address */
\
2763
__REGION,
/* target region address*/
\
2764
...)
/* mode */
\
2765
arm_2dp_gray8_tile_fill_with_des_mask(NULL, \
2766
__SRC_ADDR,
/* source tile address */
\
2767
__DES_ADDR,
/* target tile address*/
\
2768
__SRC_MSK_ADDR,
/* target mask address */
\
2769
__REGION,
/* target region address*/
\
2770
##__VA_ARGS__)
2771
2772
2773
/*!
2774
* \brief fill a target tile with a source tile and a target mask in an optional
2775
* copy mode
2776
* \param[in] __OPCODE_PTR the control block, NULL means using the default
2777
* control block
2778
* \param[in] __SRC_ADDR the source tile
2779
* \param[in] __DES_ADDR the target tile
2780
* \param[in] __DES_MSK_ADDR the mask on the target side
2781
* \param[in] __REGION the target region
2782
* \param[in] ... the optional copy mode
2783
* \return arm_fsm_rt_t the operation result
2784
*/
2785
#define arm_2dp_rgb565_tile_fill_with_des_mask( \
2786
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
2787
__SRC_ADDR,
/* source tile address */
\
2788
__DES_ADDR,
/* target tile address*/
\
2789
__DES_MSK_ADDR,
/* target mask address */
\
2790
__REGION,
/* target region address*/
\
2791
...)
/* mode */
\
2792
({ \
2793
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
2794
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
2795
& ARM_2D_CP_MODE_XY_MIRROR) { \
2796
case ARM_2D_CP_MODE_NO_MIRROR: \
2797
tResult = arm_2dp_rgb565_tile_fill_with_des_mask_only( \
2798
(__OPCODE_PTR), \
2799
(__SRC_ADDR), \
2800
(__DES_ADDR), \
2801
(__DES_MSK_ADDR), \
2802
(__REGION)); \
2803
break; \
2804
case ARM_2D_CP_MODE_X_MIRROR: \
2805
tResult = arm_2dp_rgb565_tile_fill_with_des_mask_and_x_mirror( \
2806
(__OPCODE_PTR), \
2807
(__SRC_ADDR), \
2808
(__DES_ADDR), \
2809
(__DES_MSK_ADDR), \
2810
(__REGION)); \
2811
break; \
2812
case ARM_2D_CP_MODE_Y_MIRROR: \
2813
tResult = arm_2dp_rgb565_tile_fill_with_des_mask_and_y_mirror( \
2814
(__OPCODE_PTR), \
2815
(__SRC_ADDR), \
2816
(__DES_ADDR), \
2817
(__DES_MSK_ADDR), \
2818
(__REGION)); \
2819
break; \
2820
case ARM_2D_CP_MODE_XY_MIRROR: \
2821
tResult = arm_2dp_rgb565_tile_fill_with_des_mask_and_xy_mirror( \
2822
(__OPCODE_PTR), \
2823
(__SRC_ADDR), \
2824
(__DES_ADDR), \
2825
(__DES_MSK_ADDR), \
2826
(__REGION)); \
2827
break; \
2828
} \
2829
tResult; \
2830
})
2831
2832
#define arm_2d_rgb565_tile_fill_with_des_mask( \
2833
__SRC_ADDR,
/* source tile address */
\
2834
__DES_ADDR,
/* target tile address*/
\
2835
__DES_MSK_ADDR,
/* target mask address */
\
2836
__REGION,
/* target region address*/
\
2837
...)
/* mode */
\
2838
arm_2dp_rgb565_tile_fill_with_des_mask(NULL, \
2839
__SRC_ADDR,
/* source tile address */
\
2840
__DES_ADDR,
/* target tile address*/
\
2841
__SRC_MSK_ADDR,
/* target mask address */
\
2842
__REGION,
/* target region address*/
\
2843
##__VA_ARGS__)
2844
2845
/*!
2846
* \brief fill a target tile with a source tile and a target mask in an optional
2847
* copy mode
2848
* \param[in] __OPCODE_PTR the control block, NULL means using the default
2849
* control block
2850
* \param[in] __SRC_ADDR the source tile
2851
* \param[in] __DES_ADDR the target tile
2852
* \param[in] __DES_MSK_ADDR the mask on the target side
2853
* \param[in] __REGION the target region
2854
* \param[in] ... the optional copy mode
2855
* \return arm_fsm_rt_t the operation result
2856
*/
2857
#define arm_2dp_cccn888_tile_fill_with_des_mask( \
2858
__OPCODE_PTR,
/* arm_2d_op_cp_t * */
\
2859
__SRC_ADDR,
/* source tile address */
\
2860
__DES_ADDR,
/* target tile address*/
\
2861
__DES_MSK_ADDR,
/* target mask address */
\
2862
__REGION,
/* target region address*/
\
2863
...)
/* mode */
\
2864
({ \
2865
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
2866
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
2867
& ARM_2D_CP_MODE_XY_MIRROR) { \
2868
case ARM_2D_CP_MODE_NO_MIRROR: \
2869
tResult = arm_2dp_cccn888_tile_fill_with_des_mask_only( \
2870
(__OPCODE_PTR), \
2871
(__SRC_ADDR), \
2872
(__DES_ADDR), \
2873
(__DES_MSK_ADDR), \
2874
(__REGION)); \
2875
break; \
2876
case ARM_2D_CP_MODE_X_MIRROR: \
2877
tResult = arm_2dp_cccn888_tile_fill_with_des_mask_and_x_mirror( \
2878
(__OPCODE_PTR), \
2879
(__SRC_ADDR), \
2880
(__DES_ADDR), \
2881
(__DES_MSK_ADDR), \
2882
(__REGION)); \
2883
break; \
2884
case ARM_2D_CP_MODE_Y_MIRROR: \
2885
tResult = arm_2dp_cccn888_tile_fill_with_des_mask_and_y_mirror( \
2886
(__OPCODE_PTR), \
2887
(__SRC_ADDR), \
2888
(__DES_ADDR), \
2889
(__DES_MSK_ADDR), \
2890
(__REGION)); \
2891
break; \
2892
case ARM_2D_CP_MODE_XY_MIRROR: \
2893
tResult = arm_2dp_cccn888_tile_fill_with_des_mask_and_xy_mirror( \
2894
(__OPCODE_PTR), \
2895
(__SRC_ADDR), \
2896
(__DES_ADDR), \
2897
(__DES_MSK_ADDR), \
2898
(__REGION)); \
2899
break; \
2900
} \
2901
tResult; \
2902
})
2903
2904
#define arm_2d_cccn888_tile_fill_with_des_mask( \
2905
__SRC_ADDR,
/* source tile address */
\
2906
__DES_ADDR,
/* target tile address*/
\
2907
__DES_MSK_ADDR,
/* target mask address */
\
2908
__REGION,
/* target region address*/
\
2909
...)
/* mode */
\
2910
arm_2dp_cccn888_tile_fill_with_des_mask(NULL, \
2911
__SRC_ADDR,
/* source tile address */
\
2912
__DES_ADDR,
/* target tile address*/
\
2913
__SRC_MSK_ADDR,
/* target mask address */
\
2914
__REGION,
/* target region address*/
\
2915
##__VA_ARGS__)
2916
2917
/*!
2918
* \brief copy a source tile to a target tile with a target mask and an optional
2919
* copy mode
2920
* \param[in] __OPCODE_PTR the control block, NULL means using the default
2921
* control block
2922
* \param[in] __SRC_ADDR the source tile
2923
* \param[in] __DES_ADDR the target tile
2924
* \param[in] __DES_MSK_ADDR the mask on the target side
2925
* \param[in] __REGION the target region
2926
* \param[in] ... the optional copy mode
2927
* \return arm_fsm_rt_t the operation result
2928
*/
2929
#define arm_2dp_gray8_tile_copy_with_des_mask( \
2930
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
2931
__SRC_ADDR,
/* source tile address */
\
2932
__DES_ADDR,
/* target tile address*/
\
2933
__DES_MSK_ADDR,
/* target mask address */
\
2934
__REGION,
/* target region address*/
\
2935
...)
/* mode */
\
2936
({ \
2937
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
2938
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
2939
tResult = arm_2dp_gray8_tile_fill_with_des_mask( \
2940
(__OPCODE_PTR), \
2941
(__SRC_ADDR), \
2942
(__DES_ADDR), \
2943
(__DES_MSK_ADDR), \
2944
(__REGION), \
2945
##__VA_ARGS__); \
2946
} else { \
2947
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
2948
& ARM_2D_CP_MODE_XY_MIRROR) { \
2949
case ARM_2D_CP_MODE_NO_MIRROR: \
2950
tResult = arm_2dp_gray8_tile_copy_with_des_mask_only( \
2951
(__OPCODE_PTR), \
2952
(__SRC_ADDR), \
2953
(__DES_ADDR), \
2954
(__DES_MSK_ADDR), \
2955
(__REGION)); \
2956
break; \
2957
case ARM_2D_CP_MODE_X_MIRROR: \
2958
tResult = arm_2dp_gray8_tile_copy_with_des_mask_and_x_mirror( \
2959
(__OPCODE_PTR), \
2960
(__SRC_ADDR), \
2961
(__DES_ADDR), \
2962
(__DES_MSK_ADDR), \
2963
(__REGION)); \
2964
break; \
2965
case ARM_2D_CP_MODE_Y_MIRROR: \
2966
tResult = arm_2dp_gray8_tile_copy_with_des_mask_and_y_mirror( \
2967
(__OPCODE_PTR), \
2968
(__SRC_ADDR), \
2969
(__DES_ADDR), \
2970
(__DES_MSK_ADDR), \
2971
(__REGION)); \
2972
break; \
2973
case ARM_2D_CP_MODE_XY_MIRROR: \
2974
tResult = arm_2dp_gray8_tile_copy_with_des_mask_and_xy_mirror( \
2975
(__OPCODE_PTR), \
2976
(__SRC_ADDR), \
2977
(__DES_ADDR), \
2978
(__DES_MSK_ADDR), \
2979
(__REGION)); \
2980
break; \
2981
} \
2982
}; \
2983
tResult; \
2984
})
2985
2986
/*!
2987
* \brief copy a source tile to a target tile with a target mask and an optional
2988
* copy mode
2989
* \param[in] __OPCODE_PTR the control block, NULL means using the default
2990
* control block
2991
* \param[in] __SRC_ADDR the source tile
2992
* \param[in] __DES_ADDR the target tile
2993
* \param[in] __DES_MSK_ADDR the mask on the target side
2994
* \param[in] __REGION the target region
2995
* \param[in] ... the optional copy mode
2996
* \return arm_fsm_rt_t the operation result
2997
*/
2998
#define arm_2dp_rgb565_tile_copy_with_des_mask( \
2999
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
3000
__SRC_ADDR,
/* source tile address */
\
3001
__DES_ADDR,
/* target tile address*/
\
3002
__DES_MSK_ADDR,
/* target mask address */
\
3003
__REGION,
/* target region address*/
\
3004
...)
/* mode */
\
3005
({ \
3006
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
3007
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
3008
tResult = arm_2dp_rgb565_tile_fill_with_des_mask( \
3009
(__OPCODE_PTR), \
3010
(__SRC_ADDR), \
3011
(__DES_ADDR), \
3012
(__DES_MSK_ADDR), \
3013
(__REGION), \
3014
##__VA_ARGS__); \
3015
} else { \
3016
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
3017
& ARM_2D_CP_MODE_XY_MIRROR) { \
3018
case ARM_2D_CP_MODE_NO_MIRROR: \
3019
tResult = arm_2dp_rgb565_tile_copy_with_des_mask_only( \
3020
(__OPCODE_PTR), \
3021
(__SRC_ADDR), \
3022
(__DES_ADDR), \
3023
(__DES_MSK_ADDR), \
3024
(__REGION)); \
3025
break; \
3026
case ARM_2D_CP_MODE_X_MIRROR: \
3027
tResult = arm_2dp_rgb565_tile_copy_with_des_mask_and_x_mirror( \
3028
(__OPCODE_PTR), \
3029
(__SRC_ADDR), \
3030
(__DES_ADDR), \
3031
(__DES_MSK_ADDR), \
3032
(__REGION)); \
3033
break; \
3034
case ARM_2D_CP_MODE_Y_MIRROR: \
3035
tResult = arm_2dp_rgb565_tile_copy_with_des_mask_and_y_mirror( \
3036
(__OPCODE_PTR), \
3037
(__SRC_ADDR), \
3038
(__DES_ADDR), \
3039
(__DES_MSK_ADDR), \
3040
(__REGION)); \
3041
break; \
3042
case ARM_2D_CP_MODE_XY_MIRROR: \
3043
tResult = arm_2dp_rgb565_tile_copy_with_des_mask_and_xy_mirror( \
3044
(__OPCODE_PTR), \
3045
(__SRC_ADDR), \
3046
(__DES_ADDR), \
3047
(__DES_MSK_ADDR), \
3048
(__REGION)); \
3049
break; \
3050
} \
3051
}; \
3052
tResult; \
3053
})
3054
3055
/*!
3056
* \brief copy a source tile to a target tile with a target mask and an optional
3057
* copy mode
3058
* \param[in] __OPCODE_PTR the control block, NULL means using the default
3059
* control block
3060
* \param[in] __SRC_ADDR the source tile
3061
* \param[in] __DES_ADDR the target tile
3062
* \param[in] __DES_MSK_ADDR the mask on the target side
3063
* \param[in] __REGION the target region
3064
* \param[in] ... the optional copy mode
3065
* \return arm_fsm_rt_t the operation result
3066
*/
3067
#define arm_2dp_cccn888_tile_copy_with_des_mask( \
3068
__OPCODE_PTR,
/* arm_2d_op_cp_msk_t * */
\
3069
__SRC_ADDR,
/* source tile address */
\
3070
__DES_ADDR,
/* target tile address*/
\
3071
__DES_MSK_ADDR,
/* target mask address */
\
3072
__REGION,
/* target region address*/
\
3073
...)
/* mode */
\
3074
({ \
3075
arm_fsm_rt_t tResult = (arm_fsm_rt_t)ARM_2D_ERR_UNKNOWN; \
3076
if ((ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) & ARM_2D_CP_MODE_FILL) { \
3077
tResult = arm_2dp_cccn888_tile_fill_with_des_mask( \
3078
(__OPCODE_PTR), \
3079
(__SRC_ADDR), \
3080
(__DES_ADDR), \
3081
(__DES_MSK_ADDR), \
3082
(__REGION), \
3083
##__VA_ARGS__); \
3084
} else { \
3085
switch ( (ARM_2D_CP_MODE_NO_MIRROR, ##__VA_ARGS__) \
3086
& ARM_2D_CP_MODE_XY_MIRROR) { \
3087
case ARM_2D_CP_MODE_NO_MIRROR: \
3088
tResult = arm_2dp_cccn888_tile_copy_with_des_mask_only( \
3089
(__OPCODE_PTR), \
3090
(__SRC_ADDR), \
3091
(__DES_ADDR), \
3092
(__DES_MSK_ADDR), \
3093
(__REGION)); \
3094
break; \
3095
case ARM_2D_CP_MODE_X_MIRROR: \
3096
tResult = arm_2dp_cccn888_tile_copy_with_des_mask_and_x_mirror( \
3097
(__OPCODE_PTR), \
3098
(__SRC_ADDR), \
3099
(__DES_ADDR), \
3100
(__DES_MSK_ADDR), \
3101
(__REGION)); \
3102
break; \
3103
case ARM_2D_CP_MODE_Y_MIRROR: \
3104
tResult = arm_2dp_cccn888_tile_copy_with_des_mask_and_y_mirror( \
3105
(__OPCODE_PTR), \
3106
(__SRC_ADDR), \
3107
(__DES_ADDR), \
3108
(__DES_MSK_ADDR), \
3109
(__REGION)); \
3110
break; \
3111
case ARM_2D_CP_MODE_XY_MIRROR: \
3112
tResult = arm_2dp_cccn888_tile_copy_with_des_mask_and_xy_mirror(\
3113
(__OPCODE_PTR), \
3114
(__SRC_ADDR), \
3115
(__DES_ADDR), \
3116
(__DES_MSK_ADDR), \
3117
(__REGION)); \
3118
break; \
3119
} \
3120
}; \
3121
tResult; \
3122
})
3123
3124
/*============================ TYPES =========================================*/
3125
3126
/*!
3127
* \brief control block for alpha-blending operations
3128
* \note arm_2d_op_alpha_t inherits from arm_2d_op_src_t explicitly
3129
*/
3130
typedef
struct
arm_2d_op_alpha_t
{
3131
inherit
(
arm_2d_op_core_t
);
//!< base
3132
struct
{
3133
const
arm_2d_tile_t
*ptTile;
//!< target tile
3134
const
arm_2d_region_t
*ptRegion;
//!< target region
3135
}
Target
;
//!< target
3136
struct
{
3137
const
arm_2d_tile_t
*ptTile;
//!< source tile
3138
}
Source
;
//!< source
3139
uint32_t
wMode
;
//!< copy mode
3140
uint8_t
chRatio
;
//!< opacity
3141
}
arm_2d_op_alpha_t
;
3142
3143
3144
/*!
3145
* \brief control block for alpha-blending-with-colour-keying operations
3146
* \note arm_2d_op_alpha_cl_key_t inherits from arm_2d_op_src_t explicitly
3147
*/
3148
typedef
struct
arm_2d_op_alpha_cl_key_t
{
3149
inherit
(
arm_2d_op_core_t
);
//!< base
3150
struct
{
3151
const
arm_2d_tile_t
*ptTile;
//!< target tile
3152
const
arm_2d_region_t
*ptRegion;
//!< target region
3153
}
Target
;
//!< target
3154
struct
{
3155
const
arm_2d_tile_t
*ptTile;
//!< source tile
3156
}
Source
;
//!< source
3157
uint32_t
wMode
;
//!< copy mode
3158
uint8_t
chRatio
;
//!< opacity
3159
3160
union
{
3161
uint8_t chColour;
//!< 8bit key colour
3162
uint16_t hwColour;
//!< 16bit key colour
3163
uint32_t wColour;
//!< 32bit key colour
3164
};
3165
}
arm_2d_op_alpha_cl_key_t
;
3166
3167
3168
/*!
3169
* \brief control block for colour-filling-with-mask operations
3170
* \note arm_2d_op_fill_cl_msk_t inherits from arm_2d_op_src_t explicitly
3171
*/
3172
typedef
struct
arm_2d_op_fill_cl_msk_t
{
3173
inherit
(
arm_2d_op_core_t
);
//!< base
3174
struct
{
3175
const
arm_2d_tile_t
*ptTile;
//!< target tile
3176
const
arm_2d_region_t
*ptRegion;
//!< target region
3177
}
Target
;
//!< target
3178
struct
{
3179
const
arm_2d_tile_t
*ptTile;
//!< Alpha Mask tile
3180
}
Mask
;
//!< mask
3181
uint32_t
wMode
;
//!< copy mode
3182
3183
union
{
3184
uint8_t chColour;
//!< 8bit key colour
3185
uint16_t hwColour;
//!< 16bit key colour
3186
uint32_t wColour;
//!< 32bit key colour
3187
};
3188
}
arm_2d_op_fill_cl_msk_t
;
3189
3190
3191
/*!
3192
* \brief control block for colour-filling-with-mask-and-opacity operations
3193
* \note arm_2d_op_fill_cl_msk_t inherits from arm_2d_op_src_t explicitly
3194
*/
3195
typedef
struct
arm_2d_op_fill_cl_msk_opc_t
{
3196
inherit
(
arm_2d_op_core_t
);
//!< core
3197
struct
{
3198
const
arm_2d_tile_t
*ptTile;
//!< target tile
3199
const
arm_2d_region_t
*ptRegion;
//!< target region
3200
}
Target
;
//!< target
3201
struct
{
3202
const
arm_2d_tile_t
*ptTile;
//!< Alpha Mask tile
3203
}
Mask
;
//!< mask
3204
uint32_t
wMode
;
//!< copy mode
3205
union
{
3206
uint8_t chColour;
//!< 8bit key colour
3207
uint16_t hwColour;
//!< 16bit key colour
3208
uint32_t wColour;
//!< 32bit key colour
3209
};
3210
union
{
3211
uint8_t chRatio;
//!< opacity
3212
uint8_t chOpacity;
3213
};
3214
}
arm_2d_op_fill_cl_msk_opc_t
;
3215
3216
/*!
3217
* \brief control block for colour-filling-with-opacity operations
3218
* \note arm_2d_op_fill_cl_t inherits from arm_2d_op_t explicitly
3219
*/
3220
typedef
struct
arm_2d_op_fill_cl_opc_t
{
3221
inherit
(
arm_2d_op_core_t
);
//!< base
3222
struct
{
3223
const
arm_2d_tile_t
*ptTile;
//!< target tile
3224
const
arm_2d_region_t
*ptRegion;
//!< target region
3225
}
Target
;
//!< target
3226
union
{
3227
uint8_t chColour;
//!< 8bit key colour
3228
uint16_t hwColour;
//!< 16bit key colour
3229
uint32_t wColour;
//!< 32bit key colour
3230
};
3231
uint8_t
chRatio
;
//!< opacity
3232
}
arm_2d_op_fill_cl_opc_t
;
3233
3234
/*!
3235
* \brief control block for copy with masks operations
3236
*
3237
*/
3238
typedef
arm_2d_op_src_msk_t
arm_2d_op_cp_msk_t
;
3239
3240
/*============================ GLOBAL VARIABLES ==============================*/
3241
/*============================ PROTOTYPES ====================================*/
3242
3243
/*----------------------------------------------------------------------------*
3244
* Copy tile to destination with specified transparency ratio (0~255) *
3245
*----------------------------------------------------------------------------*/
3246
3247
/*!
3248
* \brief blend a source tile to a target tile with a specified opacity
3249
* \param[in] ptOP the control block, NULL means using the default control block
3250
* \param[in] ptSource the source tile
3251
* \param[in] ptTarget the target tile
3252
* \param[in] ptRegion the target region
3253
* \param[in] chRatio the opacity
3254
* \return arm_fsm_rt_t the operation result
3255
*/
3256
extern
3257
ARM_NONNULL(2,3)
3258
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_opacity_only
(
arm_2d_op_alpha_t
*ptOP,
3259
const
arm_2d_tile_t
*ptSource,
3260
const
arm_2d_tile_t
*ptTarget,
3261
const
arm_2d_region_t
*ptRegion,
3262
uint_fast8_t chRatio);
3263
3264
/*!
3265
* \brief blend a source tile to a target tile with a specified opacity
3266
* \param[in] ptOP the control block, NULL means using the default control block
3267
* \param[in] ptSource the source tile
3268
* \param[in] ptTarget the target tile
3269
* \param[in] ptRegion the target region
3270
* \param[in] chRatio the opacity
3271
* \return arm_fsm_rt_t the operation result
3272
*/
3273
extern
3274
ARM_NONNULL(2,3)
3275
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_opacity_only
(
arm_2d_op_alpha_t
*ptOP,
3276
const
arm_2d_tile_t
*ptSource,
3277
const
arm_2d_tile_t
*ptTarget,
3278
const
arm_2d_region_t
*ptRegion,
3279
uint_fast8_t chRatio);
3280
3281
/*!
3282
* \brief blend a source tile to a target tile with a specified opacity
3283
* \param[in] ptOP the control block, NULL means using the default control block
3284
* \param[in] ptSource the source tile
3285
* \param[in] ptTarget the target tile
3286
* \param[in] ptRegion the target region
3287
* \param[in] chRatio the opacity
3288
* \return arm_fsm_rt_t the operation result
3289
*/
3290
extern
3291
ARM_NONNULL(2,3)
3292
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_opacity_only
(
arm_2d_op_alpha_t
*ptOP,
3293
const
arm_2d_tile_t
*ptSource,
3294
const
arm_2d_tile_t
*ptTarget,
3295
const
arm_2d_region_t
*ptRegion,
3296
uint_fast8_t chRatio);
3297
3298
3299
/*----------------------------------------------------------------------------*
3300
* Fill a specified region with a given colour and transparency ratio (0~255) *
3301
*----------------------------------------------------------------------------*/
3302
3303
/*!
3304
* \brief fill a target tile with a given gray8 colour and a specified opacity
3305
* \param[in] ptOP the control block, NULL means using the default control block
3306
* \param[in] ptTarget the target tile
3307
* \param[in] ptRegion the target region
3308
* \param[in] tColour a gray8 colour
3309
* \param[in] chRatio the opacity
3310
* \return arm_fsm_rt_t the operation result
3311
*/
3312
extern
3313
ARM_NONNULL(2)
3314
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_opacity
(
3315
arm_2d_op_fill_cl_opc_t
*ptOP,
3316
const
arm_2d_tile_t
*ptTarget,
3317
const
arm_2d_region_t
*ptRegion,
3318
arm_2d_color_gray8_t
tColour,
3319
uint_fast8_t chRatio);
3320
3321
/*!
3322
* \brief fill a target tile with a given rgb565 colour and a specified opacity
3323
* \param[in] ptOP the control block, NULL means using the default control block
3324
* \param[in] ptTarget the target tile
3325
* \param[in] ptRegion the target region
3326
* \param[in] tColour a rgb565 colour
3327
* \param[in] chRatio the opacity
3328
* \return arm_fsm_rt_t the operation result
3329
*/
3330
extern
3331
ARM_NONNULL(2)
3332
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_opacity
(
3333
arm_2d_op_fill_cl_opc_t
*ptOP,
3334
const
arm_2d_tile_t
*ptTarget,
3335
const
arm_2d_region_t
*ptRegion,
3336
arm_2d_color_rgb565_t
tColour,
3337
uint_fast8_t chRatio);
3338
3339
/*!
3340
* \brief fill a target tile with a given cccn888 colour and a specified opacity
3341
* \param[in] ptOP the control block, NULL means using the default control block
3342
* \param[in] ptTarget the target tile
3343
* \param[in] ptRegion the target region
3344
* \param[in] tColour a cccn888 colour
3345
* \param[in] chRatio the opacity
3346
* \return arm_fsm_rt_t the operation result
3347
*/
3348
extern
3349
ARM_NONNULL(2)
3350
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_opacity
(
3351
arm_2d_op_fill_cl_opc_t
*ptOP,
3352
const
arm_2d_tile_t
*ptTarget,
3353
const
arm_2d_region_t
*ptRegion,
3354
arm_2d_color_cccn888_t
tColour,
3355
uint_fast8_t chRatio);
3356
3357
/*----------------------------------------------------------------------------*
3358
* Fill tile with a specified colour and an a1 mask *
3359
*----------------------------------------------------------------------------*/
3360
3361
/*!
3362
* \brief fill a target tile with a given gray8 colour and an a1 mask on target side
3363
* \param[in] ptOP the control block, NULL means using the default control block
3364
* \param[in] ptTarget the target tile
3365
* \param[in] ptRegion the target region
3366
* \param[in] ptAlpha the mask on the target side
3367
* \param[in] tColour a gray8 colour
3368
* \return arm_fsm_rt_t the operation result
3369
*/
3370
extern
3371
ARM_NONNULL(2,4)
3372
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a1_mask
(
3373
arm_2d_op_fill_cl_msk_t
*ptOP,
3374
const
arm_2d_tile_t
*ptTarget,
3375
const
arm_2d_region_t
*ptRegion,
3376
const
arm_2d_tile_t
*ptAlpha,
3377
arm_2d_color_gray8_t
tColour);
3378
3379
/*!
3380
* \brief fill a target tile with a given rgb565 colour and an a1 mask on target side
3381
* \param[in] ptOP the control block, NULL means using the default control block
3382
* \param[in] ptTarget the target tile
3383
* \param[in] ptRegion the target region
3384
* \param[in] ptAlpha the mask on the target side
3385
* \param[in] tColour a rgb565 colour
3386
* \return arm_fsm_rt_t the operation result
3387
*/
3388
extern
3389
ARM_NONNULL(2,4)
3390
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a1_mask
(
3391
arm_2d_op_fill_cl_msk_t
*ptOP,
3392
const
arm_2d_tile_t
*ptTarget,
3393
const
arm_2d_region_t
*ptRegion,
3394
const
arm_2d_tile_t
*ptAlpha,
3395
arm_2d_color_rgb565_t
tColour);
3396
3397
/*!
3398
* \brief fill a target tile with a given cccn888 colour and an a1 mask on target side
3399
* \param[in] ptOP the control block, NULL means using the default control block
3400
* \param[in] ptTarget the target tile
3401
* \param[in] ptRegion the target region
3402
* \param[in] ptAlpha the mask on the target side
3403
* \param[in] tColour a cccn888 colour
3404
* \return arm_fsm_rt_t the operation result
3405
*/
3406
extern
3407
ARM_NONNULL(2,4)
3408
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a1_mask
(
3409
arm_2d_op_fill_cl_msk_t
*ptOP,
3410
const
arm_2d_tile_t
*ptTarget,
3411
const
arm_2d_region_t
*ptRegion,
3412
const
arm_2d_tile_t
*ptAlpha,
3413
arm_2d_color_cccn888_t
tColour);
3414
3415
/*----------------------------------------------------------------------------*
3416
* Fill tile with a specified colour and an a2 mask *
3417
*----------------------------------------------------------------------------*/
3418
3419
/*!
3420
* \brief fill a target tile with a given gray8 colour and an a2 mask on target side
3421
* \param[in] ptOP the control block, NULL means using the default control block
3422
* \param[in] ptTarget the target tile
3423
* \param[in] ptRegion the target region
3424
* \param[in] ptAlpha the mask on the target side
3425
* \param[in] tColour a gray8 colour
3426
* \return arm_fsm_rt_t the operation result
3427
*/
3428
extern
3429
ARM_NONNULL(2,4)
3430
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a2_mask
(
3431
arm_2d_op_fill_cl_msk_t
*ptOP,
3432
const
arm_2d_tile_t
*ptTarget,
3433
const
arm_2d_region_t
*ptRegion,
3434
const
arm_2d_tile_t
*ptAlpha,
3435
arm_2d_color_gray8_t
tColour);
3436
3437
/*!
3438
* \brief fill a target tile with a given rgb565 colour and an a2 mask on target side
3439
* \param[in] ptOP the control block, NULL means using the default control block
3440
* \param[in] ptTarget the target tile
3441
* \param[in] ptRegion the target region
3442
* \param[in] ptAlpha the mask on the target side
3443
* \param[in] tColour a rgb565 colour
3444
* \return arm_fsm_rt_t the operation result
3445
*/
3446
extern
3447
ARM_NONNULL(2,4)
3448
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a2_mask
(
3449
arm_2d_op_fill_cl_msk_t
*ptOP,
3450
const
arm_2d_tile_t
*ptTarget,
3451
const
arm_2d_region_t
*ptRegion,
3452
const
arm_2d_tile_t
*ptAlpha,
3453
arm_2d_color_rgb565_t
tColour);
3454
3455
/*!
3456
* \brief fill a target tile with a given cccn888 colour and an a2 mask on target side
3457
* \param[in] ptOP the control block, NULL means using the default control block
3458
* \param[in] ptTarget the target tile
3459
* \param[in] ptRegion the target region
3460
* \param[in] ptAlpha the mask on the target side
3461
* \param[in] tColour a cccn888 colour
3462
* \return arm_fsm_rt_t the operation result
3463
*/
3464
extern
3465
ARM_NONNULL(2,4)
3466
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a2_mask
(
3467
arm_2d_op_fill_cl_msk_t
*ptOP,
3468
const
arm_2d_tile_t
*ptTarget,
3469
const
arm_2d_region_t
*ptRegion,
3470
const
arm_2d_tile_t
*ptAlpha,
3471
arm_2d_color_cccn888_t
tColour);
3472
3473
3474
/*----------------------------------------------------------------------------*
3475
* Fill tile with a specified colour and an a4 mask *
3476
*----------------------------------------------------------------------------*/
3477
3478
/*!
3479
* \brief fill a target tile with a given gray8 colour and an a4 mask on target side
3480
* \param[in] ptOP the control block, NULL means using the default control block
3481
* \param[in] ptTarget the target tile
3482
* \param[in] ptRegion the target region
3483
* \param[in] ptAlpha the mask on the target side
3484
* \param[in] tColour a gray8 colour
3485
* \return arm_fsm_rt_t the operation result
3486
*/
3487
extern
3488
ARM_NONNULL(2,4)
3489
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a4_mask
(
3490
arm_2d_op_fill_cl_msk_t
*ptOP,
3491
const
arm_2d_tile_t
*ptTarget,
3492
const
arm_2d_region_t
*ptRegion,
3493
const
arm_2d_tile_t
*ptAlpha,
3494
arm_2d_color_gray8_t
tColour);
3495
3496
/*!
3497
* \brief fill a target tile with a given rgb565 colour and an a4 mask on target side
3498
* \param[in] ptOP the control block, NULL means using the default control block
3499
* \param[in] ptTarget the target tile
3500
* \param[in] ptRegion the target region
3501
* \param[in] ptAlpha the mask on the target side
3502
* \param[in] tColour a rgb565 colour
3503
* \return arm_fsm_rt_t the operation result
3504
*/
3505
extern
3506
ARM_NONNULL(2,4)
3507
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a4_mask
(
3508
arm_2d_op_fill_cl_msk_t
*ptOP,
3509
const
arm_2d_tile_t
*ptTarget,
3510
const
arm_2d_region_t
*ptRegion,
3511
const
arm_2d_tile_t
*ptAlpha,
3512
arm_2d_color_rgb565_t
tColour);
3513
3514
/*!
3515
* \brief fill a target tile with a given cccn888 colour and an a4 mask on target side
3516
* \param[in] ptOP the control block, NULL means using the default control block
3517
* \param[in] ptTarget the target tile
3518
* \param[in] ptRegion the target region
3519
* \param[in] ptAlpha the mask on the target side
3520
* \param[in] tColour a cccn888 colour
3521
* \return arm_fsm_rt_t the operation result
3522
*/
3523
extern
3524
ARM_NONNULL(2,4)
3525
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a4_mask
(
3526
arm_2d_op_fill_cl_msk_t
*ptOP,
3527
const
arm_2d_tile_t
*ptTarget,
3528
const
arm_2d_region_t
*ptRegion,
3529
const
arm_2d_tile_t
*ptAlpha,
3530
arm_2d_color_cccn888_t
tColour);
3531
3532
/*----------------------------------------------------------------------------*
3533
* Fill tile with a specified colour and an a8 mask *
3534
*----------------------------------------------------------------------------*/
3535
3536
/*!
3537
* \brief fill a target tile with a given gray8 colour and a mask on target side
3538
* \param[in] ptOP the control block, NULL means using the default control block
3539
* \param[in] ptTarget the target tile
3540
* \param[in] ptRegion the target region
3541
* \param[in] ptAlpha the mask on the target side
3542
* \param[in] tColour a gray8 colour
3543
* \return arm_fsm_rt_t the operation result
3544
*/
3545
extern
3546
ARM_NONNULL(2,4)
3547
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_mask_only
(
3548
arm_2d_op_fill_cl_msk_t
*ptOP,
3549
const
arm_2d_tile_t
*ptTarget,
3550
const
arm_2d_region_t
*ptRegion,
3551
const
arm_2d_tile_t
*ptAlpha,
3552
arm_2d_color_gray8_t
tColour);
3553
3554
/*!
3555
* \brief fill a target tile with a given rgb565 colour and a mask on target side
3556
* \param[in] ptOP the control block, NULL means using the default control block
3557
* \param[in] ptTarget the target tile
3558
* \param[in] ptRegion the target region
3559
* \param[in] ptAlpha the mask on the target side
3560
* \param[in] tColour a rgb565 colour
3561
* \return arm_fsm_rt_t the operation result
3562
*/
3563
extern
3564
ARM_NONNULL(2,4)
3565
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_mask_only
(
3566
arm_2d_op_fill_cl_msk_t
*ptOP,
3567
const
arm_2d_tile_t
*ptTarget,
3568
const
arm_2d_region_t
*ptRegion,
3569
const
arm_2d_tile_t
*ptAlpha,
3570
arm_2d_color_rgb565_t
tColour);
3571
3572
/*!
3573
* \brief fill a target tile with a given cccn888 colour and a mask on target side
3574
* \param[in] ptOP the control block, NULL means using the default control block
3575
* \param[in] ptTarget the target tile
3576
* \param[in] ptRegion the target region
3577
* \param[in] ptAlpha the mask on the target side
3578
* \param[in] tColour a cccn888 colour
3579
* \return arm_fsm_rt_t the operation result
3580
*/
3581
extern
3582
ARM_NONNULL(2,4)
3583
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_mask_only
(
3584
arm_2d_op_fill_cl_msk_t
*ptOP,
3585
const
arm_2d_tile_t
*ptTarget,
3586
const
arm_2d_region_t
*ptRegion,
3587
const
arm_2d_tile_t
*ptAlpha,
3588
arm_2d_color_cccn888_t
tColour);
3589
3590
/*----------------------------------------------------------------------------*
3591
* Fill tile with a specified colour, an a1 mask and a specified opacity *
3592
*----------------------------------------------------------------------------*/
3593
3594
/*!
3595
* \brief fill a target tile with a given gray8 colour, an a1 mask on target side and an opacity
3596
* \param[in] ptOP the control block, NULL means using the default control block
3597
* \param[in] ptTarget the target tile
3598
* \param[in] ptRegion the target region
3599
* \param[in] ptAlpha the mask on the target side
3600
* \param[in] tColour a gray8 colour
3601
* \param[in] chOpacity the opacity
3602
* \return arm_fsm_rt_t the operation result
3603
*/
3604
extern
3605
ARM_NONNULL(2,4)
3606
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a1_mask_and_opacity
(
3607
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3608
const
arm_2d_tile_t
*ptTarget,
3609
const
arm_2d_region_t
*ptRegion,
3610
const
arm_2d_tile_t
*ptAlpha,
3611
arm_2d_color_gray8_t
tColour,
3612
uint8_t chOpacity);
3613
3614
/*!
3615
* \brief fill a target tile with a given rgb565 colour, an a1 mask on target side and an opacity
3616
* \param[in] ptOP the control block, NULL means using the default control block
3617
* \param[in] ptTarget the target tile
3618
* \param[in] ptRegion the target region
3619
* \param[in] ptAlpha the mask on the target side
3620
* \param[in] tColour a rgb565 colour
3621
* \param[in] chOpacity the opacity
3622
* \return arm_fsm_rt_t the operation result
3623
*/
3624
extern
3625
ARM_NONNULL(2,4)
3626
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a1_mask_and_opacity
(
3627
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3628
const
arm_2d_tile_t
*ptTarget,
3629
const
arm_2d_region_t
*ptRegion,
3630
const
arm_2d_tile_t
*ptAlpha,
3631
arm_2d_color_rgb565_t
tColour,
3632
uint8_t chOpacity);
3633
3634
/*!
3635
* \brief fill a target tile with a given cccn888 colour, an a1 mask on target side and an opacity
3636
* \param[in] ptOP the control block, NULL means using the default control block
3637
* \param[in] ptTarget the target tile
3638
* \param[in] ptRegion the target region
3639
* \param[in] ptAlpha the mask on the target side
3640
* \param[in] tColour a cccn888 colour
3641
* \param[in] chOpacity the opacity
3642
* \return arm_fsm_rt_t the operation result
3643
*/
3644
extern
3645
ARM_NONNULL(2,4)
3646
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a1_mask_and_opacity
(
3647
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3648
const
arm_2d_tile_t
*ptTarget,
3649
const
arm_2d_region_t
*ptRegion,
3650
const
arm_2d_tile_t
*ptAlpha,
3651
arm_2d_color_cccn888_t
tColour,
3652
uint8_t chOpacity);
3653
3654
/*----------------------------------------------------------------------------*
3655
* Fill tile with a specified colour, an a2 mask and a specified opacity *
3656
*----------------------------------------------------------------------------*/
3657
3658
/*!
3659
* \brief fill a target tile with a given gray8 colour, an a2 mask on target side and an opacity
3660
* \param[in] ptOP the control block, NULL means using the default control block
3661
* \param[in] ptTarget the target tile
3662
* \param[in] ptRegion the target region
3663
* \param[in] ptAlpha the mask on the target side
3664
* \param[in] tColour a gray8 colour
3665
* \param[in] chOpacity the opacity
3666
* \return arm_fsm_rt_t the operation result
3667
*/
3668
extern
3669
ARM_NONNULL(2,4)
3670
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a2_mask_and_opacity
(
3671
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3672
const
arm_2d_tile_t
*ptTarget,
3673
const
arm_2d_region_t
*ptRegion,
3674
const
arm_2d_tile_t
*ptAlpha,
3675
arm_2d_color_gray8_t
tColour,
3676
uint8_t chOpacity);
3677
3678
/*!
3679
* \brief fill a target tile with a given rgb565 colour, an a2 mask on target side and an opacity
3680
* \param[in] ptOP the control block, NULL means using the default control block
3681
* \param[in] ptTarget the target tile
3682
* \param[in] ptRegion the target region
3683
* \param[in] ptAlpha the mask on the target side
3684
* \param[in] tColour a rgb565 colour
3685
* \param[in] chOpacity the opacity
3686
* \return arm_fsm_rt_t the operation result
3687
*/
3688
extern
3689
ARM_NONNULL(2,4)
3690
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a2_mask_and_opacity
(
3691
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3692
const
arm_2d_tile_t
*ptTarget,
3693
const
arm_2d_region_t
*ptRegion,
3694
const
arm_2d_tile_t
*ptAlpha,
3695
arm_2d_color_rgb565_t
tColour,
3696
uint8_t chOpacity);
3697
3698
/*!
3699
* \brief fill a target tile with a given cccn888 colour, an a2 mask on target side and an opacity
3700
* \param[in] ptOP the control block, NULL means using the default control block
3701
* \param[in] ptTarget the target tile
3702
* \param[in] ptRegion the target region
3703
* \param[in] ptAlpha the mask on the target side
3704
* \param[in] tColour a cccn888 colour
3705
* \param[in] chOpacity the opacity
3706
* \return arm_fsm_rt_t the operation result
3707
*/
3708
extern
3709
ARM_NONNULL(2,4)
3710
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a2_mask_and_opacity
(
3711
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3712
const
arm_2d_tile_t
*ptTarget,
3713
const
arm_2d_region_t
*ptRegion,
3714
const
arm_2d_tile_t
*ptAlpha,
3715
arm_2d_color_cccn888_t
tColour,
3716
uint8_t chOpacity);
3717
3718
/*----------------------------------------------------------------------------*
3719
* Fill tile with a specified colour, an a4 mask and a specified opacity *
3720
*----------------------------------------------------------------------------*/
3721
3722
/*!
3723
* \brief fill a target tile with a given gray8 colour, an a4 mask on target side and an opacity
3724
* \param[in] ptOP the control block, NULL means using the default control block
3725
* \param[in] ptTarget the target tile
3726
* \param[in] ptRegion the target region
3727
* \param[in] ptAlpha the mask on the target side
3728
* \param[in] tColour a gray8 colour
3729
* \param[in] chOpacity the opacity
3730
* \return arm_fsm_rt_t the operation result
3731
*/
3732
extern
3733
ARM_NONNULL(2,4)
3734
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_a4_mask_and_opacity
(
3735
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3736
const
arm_2d_tile_t
*ptTarget,
3737
const
arm_2d_region_t
*ptRegion,
3738
const
arm_2d_tile_t
*ptAlpha,
3739
arm_2d_color_gray8_t
tColour,
3740
uint8_t chOpacity);
3741
3742
/*!
3743
* \brief fill a target tile with a given rgb565 colour, an a4 mask on target side and an opacity
3744
* \param[in] ptOP the control block, NULL means using the default control block
3745
* \param[in] ptTarget the target tile
3746
* \param[in] ptRegion the target region
3747
* \param[in] ptAlpha the mask on the target side
3748
* \param[in] tColour a rgb565 colour
3749
* \param[in] chOpacity the opacity
3750
* \return arm_fsm_rt_t the operation result
3751
*/
3752
extern
3753
ARM_NONNULL(2,4)
3754
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_a4_mask_and_opacity
(
3755
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3756
const
arm_2d_tile_t
*ptTarget,
3757
const
arm_2d_region_t
*ptRegion,
3758
const
arm_2d_tile_t
*ptAlpha,
3759
arm_2d_color_rgb565_t
tColour,
3760
uint8_t chOpacity);
3761
3762
/*!
3763
* \brief fill a target tile with a given cccn888 colour, an a4 mask on target side and an opacity
3764
* \param[in] ptOP the control block, NULL means using the default control block
3765
* \param[in] ptTarget the target tile
3766
* \param[in] ptRegion the target region
3767
* \param[in] ptAlpha the mask on the target side
3768
* \param[in] tColour a cccn888 colour
3769
* \param[in] chOpacity the opacity
3770
* \return arm_fsm_rt_t the operation result
3771
*/
3772
extern
3773
ARM_NONNULL(2,4)
3774
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_a4_mask_and_opacity
(
3775
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3776
const
arm_2d_tile_t
*ptTarget,
3777
const
arm_2d_region_t
*ptRegion,
3778
const
arm_2d_tile_t
*ptAlpha,
3779
arm_2d_color_cccn888_t
tColour,
3780
uint8_t chOpacity);
3781
3782
/*----------------------------------------------------------------------------*
3783
* Fill tile with a specified colour, an alpha mask and a specified opacity *
3784
*----------------------------------------------------------------------------*/
3785
3786
/*!
3787
* \brief fill a target tile with a given gray8 colour, a mask on target side and an opacity
3788
* \param[in] ptOP the control block, NULL means using the default control block
3789
* \param[in] ptTarget the target tile
3790
* \param[in] ptRegion the target region
3791
* \param[in] ptAlpha the mask on the target side
3792
* \param[in] tColour a gray8 colour
3793
* \param[in] chOpacity the opacity
3794
* \return arm_fsm_rt_t the operation result
3795
*/
3796
extern
3797
ARM_NONNULL(2,4)
3798
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_mask_and_opacity_only
(
3799
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3800
const
arm_2d_tile_t
*ptTarget,
3801
const
arm_2d_region_t
*ptRegion,
3802
const
arm_2d_tile_t
*ptAlpha,
3803
arm_2d_color_gray8_t
tColour,
3804
uint8_t chOpacity);
3805
3806
/*!
3807
* \brief fill a target tile with a given rgb565 colour, a mask on target side and an opacity
3808
* \param[in] ptOP the control block, NULL means using the default control block
3809
* \param[in] ptTarget the target tile
3810
* \param[in] ptRegion the target region
3811
* \param[in] ptAlpha the mask on the target side
3812
* \param[in] tColour a rgb565 colour
3813
* \param[in] chOpacity the opacity
3814
* \return arm_fsm_rt_t the operation result
3815
*/
3816
extern
3817
ARM_NONNULL(2,4)
3818
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_mask_and_opacity_only
(
3819
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3820
const
arm_2d_tile_t
*ptTarget,
3821
const
arm_2d_region_t
*ptRegion,
3822
const
arm_2d_tile_t
*ptAlpha,
3823
arm_2d_color_rgb565_t
tColour,
3824
uint8_t chOpacity);
3825
3826
/*!
3827
* \brief fill a target tile with a given cccn888 colour, a mask on target side and an opacity
3828
* \param[in] ptOP the control block, NULL means using the default control block
3829
* \param[in] ptTarget the target tile
3830
* \param[in] ptRegion the target region
3831
* \param[in] ptAlpha the mask on the target side
3832
* \param[in] tColour a cccn888 colour
3833
* \param[in] chOpacity the opacity
3834
* \return arm_fsm_rt_t the operation result
3835
*/
3836
extern
3837
ARM_NONNULL(2,4)
3838
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_mask_and_opacity_only
(
3839
arm_2d_op_fill_cl_msk_opc_t
*ptOP,
3840
const
arm_2d_tile_t
*ptTarget,
3841
const
arm_2d_region_t
*ptRegion,
3842
const
arm_2d_tile_t
*ptAlpha,
3843
arm_2d_color_cccn888_t
tColour,
3844
uint8_t chOpacity);
3845
3846
/*----------------------------------------------------------------------------*
3847
* Blend tile and background with a specified transparency ratio(0~255) and *
3848
* colour keying *
3849
*----------------------------------------------------------------------------*/
3850
3851
/*!
3852
* \brief blend a source tile to a target tile with a opacity and colour keying
3853
* \param[in] ptOP the control block, NULL means using the default control block
3854
* \param[in] ptSource the source tile
3855
* \param[in] ptTarget the target tile
3856
* \param[in] ptRegion the target region
3857
* \param[in] chRatio the opacity
3858
* \param[in] tColour the key colour
3859
* \return arm_fsm_rt_t the operation result
3860
*/
3861
extern
3862
ARM_NONNULL(2,3)
3863
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_colour_keying_and_opacity
(
3864
arm_2d_op_alpha_cl_key_t
*ptOP,
3865
const
arm_2d_tile_t
*ptSource,
3866
const
arm_2d_tile_t
*ptTarget,
3867
const
arm_2d_region_t
*ptRegion,
3868
uint_fast8_t chRatio,
3869
arm_2d_color_gray8_t
tColour);
3870
3871
/*!
3872
* \brief blend a source tile to a target tile with a opacity and colour keying
3873
* \param[in] ptOP the control block, NULL means using the default control block
3874
* \param[in] ptSource the source tile
3875
* \param[in] ptTarget the target tile
3876
* \param[in] ptRegion the target region
3877
* \param[in] chRatio the opacity
3878
* \param[in] tColour the key colour
3879
* \return arm_fsm_rt_t the operation result
3880
*/
3881
extern
3882
ARM_NONNULL(2,3)
3883
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_colour_keying_and_opacity
(
3884
arm_2d_op_alpha_cl_key_t
*ptOP,
3885
const
arm_2d_tile_t
*ptSource,
3886
const
arm_2d_tile_t
*ptTarget,
3887
const
arm_2d_region_t
*ptRegion,
3888
uint_fast8_t chRatio,
3889
arm_2d_color_rgb565_t
tColour);
3890
3891
/*!
3892
* \brief blend a source tile to a target tile with a opacity and colour keying
3893
* \param[in] ptOP the control block, NULL means using the default control block
3894
* \param[in] ptSource the source tile
3895
* \param[in] ptTarget the target tile
3896
* \param[in] ptRegion the target region
3897
* \param[in] chRatio the opacity
3898
* \param[in] tColour the key colour
3899
* \return arm_fsm_rt_t the operation result
3900
*/
3901
extern
3902
ARM_NONNULL(2,3)
3903
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_colour_keying_and_opacity
(
3904
arm_2d_op_alpha_cl_key_t
*ptOP,
3905
const
arm_2d_tile_t
*ptSource,
3906
const
arm_2d_tile_t
*ptTarget,
3907
const
arm_2d_region_t
*ptRegion,
3908
uint_fast8_t chRatio,
3909
arm_2d_color_cccn888_t
tColour);
3910
3911
/*----------------------------------------------------------------------------*
3912
* Copy tile to target tile with a source mask and a target mask *
3913
*----------------------------------------------------------------------------*/
3914
3915
/*!
3916
* \brief copy a source tile to a target tile with masks
3917
* \param[in] ptOP the control block, NULL means using the default control block
3918
* \param[in] ptSource the source tile
3919
* \param[in] ptSrcMask the mask on the source side
3920
* \param[in] ptTarget the target tile
3921
* \param[in] ptDesMask the mask on the target side
3922
* \param[in] ptRegion the target region
3923
* \return arm_fsm_rt_t the operation result
3924
*/
3925
extern
3926
ARM_NONNULL(2,3,4,5)
3927
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_masks_only
(
3928
arm_2d_op_cp_msk_t
*ptOP,
3929
const
arm_2d_tile_t
*ptSource,
3930
const
arm_2d_tile_t
*ptSrcMask,
3931
const
arm_2d_tile_t
*ptTarget,
3932
const
arm_2d_tile_t
*ptDesMask,
3933
const
arm_2d_region_t
*ptRegion);
3934
3935
/*!
3936
* \brief copy a source tile to a target tile with masks
3937
* \param[in] ptOP the control block, NULL means using the default control block
3938
* \param[in] ptSource the source tile
3939
* \param[in] ptSrcMask the mask on the source side
3940
* \param[in] ptTarget the target tile
3941
* \param[in] ptDesMask the mask on the target side
3942
* \param[in] ptRegion the target region
3943
* \return arm_fsm_rt_t the operation result
3944
*/
3945
extern
3946
ARM_NONNULL(2,3,4,5)
3947
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_masks_only
(
3948
arm_2d_op_cp_msk_t
*ptOP,
3949
const
arm_2d_tile_t
*ptSource,
3950
const
arm_2d_tile_t
*ptSrcMask,
3951
const
arm_2d_tile_t
*ptTarget,
3952
const
arm_2d_tile_t
*ptDesMask,
3953
const
arm_2d_region_t
*ptRegion);
3954
3955
/*!
3956
* \brief copy a source tile to a target tile with masks
3957
* \param[in] ptOP the control block, NULL means using the default control block
3958
* \param[in] ptSource the source tile
3959
* \param[in] ptSrcMask the mask on the source side
3960
* \param[in] ptTarget the target tile
3961
* \param[in] ptDesMask the mask on the target side
3962
* \param[in] ptRegion the target region
3963
* \return arm_fsm_rt_t the operation result
3964
*/
3965
extern
3966
ARM_NONNULL(2,3,4,5)
3967
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_masks_only
(
3968
arm_2d_op_cp_msk_t
*ptOP,
3969
const
arm_2d_tile_t
*ptSource,
3970
const
arm_2d_tile_t
*ptSrcMask,
3971
const
arm_2d_tile_t
*ptTarget,
3972
const
arm_2d_tile_t
*ptDesMask,
3973
const
arm_2d_region_t
*ptRegion);
3974
3975
3976
/*----------------------------------------------------------------------------*
3977
* Copy tile to target tile with a source mask, a target mask and x-mirroring *
3978
*----------------------------------------------------------------------------*/
3979
3980
/*!
3981
* \brief copy a source tile to a target tile with masks and x-mirroring
3982
* \param[in] ptOP the control block, NULL means using the default control block
3983
* \param[in] ptSource the source tile
3984
* \param[in] ptSrcMask the mask on the source side
3985
* \param[in] ptTarget the target tile
3986
* \param[in] ptDesMask the mask on the target side
3987
* \param[in] ptRegion the target region
3988
* \return arm_fsm_rt_t the operation result
3989
*/
3990
extern
3991
ARM_NONNULL(2,3,4,5)
3992
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_masks_and_x_mirror
(
3993
arm_2d_op_cp_msk_t
*ptOP,
3994
const
arm_2d_tile_t
*ptSource,
3995
const
arm_2d_tile_t
*ptSrcMask,
3996
const
arm_2d_tile_t
*ptTarget,
3997
const
arm_2d_tile_t
*ptDesMask,
3998
const
arm_2d_region_t
*ptRegion);
3999
4000
/*!
4001
* \brief copy a source tile to a target tile with masks and x-mirroring
4002
* \param[in] ptOP the control block, NULL means using the default control block
4003
* \param[in] ptSource the source tile
4004
* \param[in] ptSrcMask the mask on the source side
4005
* \param[in] ptTarget the target tile
4006
* \param[in] ptDesMask the mask on the target side
4007
* \param[in] ptRegion the target region
4008
* \return arm_fsm_rt_t the operation result
4009
*/
4010
extern
4011
ARM_NONNULL(2,3,4,5)
4012
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_masks_and_x_mirror
(
4013
arm_2d_op_cp_msk_t
*ptOP,
4014
const
arm_2d_tile_t
*ptSource,
4015
const
arm_2d_tile_t
*ptSrcMask,
4016
const
arm_2d_tile_t
*ptTarget,
4017
const
arm_2d_tile_t
*ptDesMask,
4018
const
arm_2d_region_t
*ptRegion);
4019
4020
/*!
4021
* \brief copy a source tile to a target tile with masks and x-mirroring
4022
* \param[in] ptOP the control block, NULL means using the default control block
4023
* \param[in] ptSource the source tile
4024
* \param[in] ptSrcMask the mask on the source side
4025
* \param[in] ptTarget the target tile
4026
* \param[in] ptDesMask the mask on the target side
4027
* \param[in] ptRegion the target region
4028
* \return arm_fsm_rt_t the operation result
4029
*/
4030
extern
4031
ARM_NONNULL(2,3,4,5)
4032
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_masks_and_x_mirror
(
4033
arm_2d_op_cp_msk_t
*ptOP,
4034
const
arm_2d_tile_t
*ptSource,
4035
const
arm_2d_tile_t
*ptSrcMask,
4036
const
arm_2d_tile_t
*ptTarget,
4037
const
arm_2d_tile_t
*ptDesMask,
4038
const
arm_2d_region_t
*ptRegion);
4039
4040
4041
/*----------------------------------------------------------------------------*
4042
* Copy tile to target tile with a source mask, a target mask and y-mirroring *
4043
*----------------------------------------------------------------------------*/
4044
4045
/*!
4046
* \brief copy a source tile to a target tile with masks and y-mirroring
4047
* \param[in] ptOP the control block, NULL means using the default control block
4048
* \param[in] ptSource the source tile
4049
* \param[in] ptSrcMask the mask on the source side
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
*/
4055
extern
4056
ARM_NONNULL(2,3,4,5)
4057
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_masks_and_y_mirror
(
4058
arm_2d_op_cp_msk_t
*ptOP,
4059
const
arm_2d_tile_t
*ptSource,
4060
const
arm_2d_tile_t
*ptSrcMask,
4061
const
arm_2d_tile_t
*ptTarget,
4062
const
arm_2d_tile_t
*ptDesMask,
4063
const
arm_2d_region_t
*ptRegion);
4064
4065
/*!
4066
* \brief copy a source tile to a target tile with masks and y-mirroring
4067
* \param[in] ptOP the control block, NULL means using the default control block
4068
* \param[in] ptSource the source tile
4069
* \param[in] ptSrcMask the mask on the source side
4070
* \param[in] ptTarget the target tile
4071
* \param[in] ptDesMask the mask on the target side
4072
* \param[in] ptRegion the target region
4073
* \return arm_fsm_rt_t the operation result
4074
*/
4075
extern
4076
ARM_NONNULL(2,3,4,5)
4077
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_masks_and_y_mirror
(
4078
arm_2d_op_cp_msk_t
*ptOP,
4079
const
arm_2d_tile_t
*ptSource,
4080
const
arm_2d_tile_t
*ptSrcMask,
4081
const
arm_2d_tile_t
*ptTarget,
4082
const
arm_2d_tile_t
*ptDesMask,
4083
const
arm_2d_region_t
*ptRegion);
4084
4085
/*!
4086
* \brief copy a source tile to a target tile with masks and y-mirroring
4087
* \param[in] ptOP the control block, NULL means using the default control block
4088
* \param[in] ptSource the source tile
4089
* \param[in] ptSrcMask the mask on the source side
4090
* \param[in] ptTarget the target tile
4091
* \param[in] ptDesMask the mask on the target side
4092
* \param[in] ptRegion the target region
4093
* \return arm_fsm_rt_t the operation result
4094
*/
4095
extern
4096
ARM_NONNULL(2,3,4,5)
4097
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_masks_and_y_mirror
(
4098
arm_2d_op_cp_msk_t
*ptOP,
4099
const
arm_2d_tile_t
*ptSource,
4100
const
arm_2d_tile_t
*ptSrcMask,
4101
const
arm_2d_tile_t
*ptTarget,
4102
const
arm_2d_tile_t
*ptDesMask,
4103
const
arm_2d_region_t
*ptRegion);
4104
4105
4106
/*----------------------------------------------------------------------------*
4107
* Copy tile to target tile with a source mask, a target mask and xy-mirroring *
4108
*----------------------------------------------------------------------------*/
4109
4110
/*!
4111
* \brief copy a source tile to a target tile with masks and xy-mirroring
4112
* \param[in] ptOP the control block, NULL means using the default control block
4113
* \param[in] ptSource the source tile
4114
* \param[in] ptSrcMask the mask on the source side
4115
* \param[in] ptTarget the target tile
4116
* \param[in] ptDesMask the mask on the target side
4117
* \param[in] ptRegion the target region
4118
* \return arm_fsm_rt_t the operation result
4119
*/
4120
extern
4121
ARM_NONNULL(2,3,4,5)
4122
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_masks_and_xy_mirror
(
4123
arm_2d_op_cp_msk_t
*ptOP,
4124
const
arm_2d_tile_t
*ptSource,
4125
const
arm_2d_tile_t
*ptSrcMask,
4126
const
arm_2d_tile_t
*ptTarget,
4127
const
arm_2d_tile_t
*ptDesMask,
4128
const
arm_2d_region_t
*ptRegion);
4129
4130
/*!
4131
* \brief copy a source tile to a target tile with masks and xy-mirroring
4132
* \param[in] ptOP the control block, NULL means using the default control block
4133
* \param[in] ptSource the source tile
4134
* \param[in] ptSrcMask the mask on the source side
4135
* \param[in] ptTarget the target tile
4136
* \param[in] ptDesMask the mask on the target side
4137
* \param[in] ptRegion the target region
4138
* \return arm_fsm_rt_t the operation result
4139
*/
4140
extern
4141
ARM_NONNULL(2,3,4,5)
4142
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_masks_and_xy_mirror
(
4143
arm_2d_op_cp_msk_t
*ptOP,
4144
const
arm_2d_tile_t
*ptSource,
4145
const
arm_2d_tile_t
*ptSrcMask,
4146
const
arm_2d_tile_t
*ptTarget,
4147
const
arm_2d_tile_t
*ptDesMask,
4148
const
arm_2d_region_t
*ptRegion);
4149
4150
/*!
4151
* \brief copy a source tile to a target tile with masks and xy-mirroring
4152
* \param[in] ptOP the control block, NULL means using the default control block
4153
* \param[in] ptSource the source tile
4154
* \param[in] ptSrcMask the mask on the source side
4155
* \param[in] ptTarget the target tile
4156
* \param[in] ptDesMask the mask on the target side
4157
* \param[in] ptRegion the target region
4158
* \return arm_fsm_rt_t the operation result
4159
*/
4160
extern
4161
ARM_NONNULL(2,3,4,5)
4162
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_masks_and_xy_mirror
(
4163
arm_2d_op_cp_msk_t
*ptOP,
4164
const
arm_2d_tile_t
*ptSource,
4165
const
arm_2d_tile_t
*ptSrcMask,
4166
const
arm_2d_tile_t
*ptTarget,
4167
const
arm_2d_tile_t
*ptDesMask,
4168
const
arm_2d_region_t
*ptRegion);
4169
4170
/*----------------------------------------------------------------------------*
4171
* Fill tile to target tile with a source mask and a target mask *
4172
*----------------------------------------------------------------------------*/
4173
4174
/*!
4175
* \brief fill a source tile to a target tile with masks
4176
* \param[in] ptOP the control block, NULL means using the default control block
4177
* \param[in] ptSource the source tile
4178
* \param[in] ptSrcMask the mask on the source side
4179
* \param[in] ptTarget the target tile
4180
* \param[in] ptDesMask the mask on the target side
4181
* \param[in] ptRegion the target region
4182
* \return arm_fsm_rt_t the operation result
4183
*/
4184
extern
4185
ARM_NONNULL(2,3,4,5)
4186
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_masks_only
(
4187
arm_2d_op_cp_msk_t
*ptOP,
4188
const
arm_2d_tile_t
*ptSource,
4189
const
arm_2d_tile_t
*ptSrcMask,
4190
const
arm_2d_tile_t
*ptTarget,
4191
const
arm_2d_tile_t
*ptDesMask,
4192
const
arm_2d_region_t
*ptRegion);
4193
4194
/*!
4195
* \brief fill a source tile to a target tile with masks
4196
* \param[in] ptOP the control block, NULL means using the default control block
4197
* \param[in] ptSource the source tile
4198
* \param[in] ptSrcMask the mask on the source side
4199
* \param[in] ptTarget the target tile
4200
* \param[in] ptDesMask the mask on the target side
4201
* \param[in] ptRegion the target region
4202
* \return arm_fsm_rt_t the operation result
4203
*/
4204
extern
4205
ARM_NONNULL(2,3,4,5)
4206
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_masks_only
(
4207
arm_2d_op_cp_msk_t
*ptOP,
4208
const
arm_2d_tile_t
*ptSource,
4209
const
arm_2d_tile_t
*ptSrcMask,
4210
const
arm_2d_tile_t
*ptTarget,
4211
const
arm_2d_tile_t
*ptDesMask,
4212
const
arm_2d_region_t
*ptRegion);
4213
4214
/*!
4215
* \brief fill a source tile to a target tile with masks
4216
* \param[in] ptOP the control block, NULL means using the default control block
4217
* \param[in] ptSource the source tile
4218
* \param[in] ptSrcMask the mask on the source side
4219
* \param[in] ptTarget the target tile
4220
* \param[in] ptDesMask the mask on the target side
4221
* \param[in] ptRegion the target region
4222
* \return arm_fsm_rt_t the operation result
4223
*/
4224
extern
4225
ARM_NONNULL(2,3,4,5)
4226
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_masks_only
(
4227
arm_2d_op_cp_msk_t
*ptOP,
4228
const
arm_2d_tile_t
*ptSource,
4229
const
arm_2d_tile_t
*ptSrcMask,
4230
const
arm_2d_tile_t
*ptTarget,
4231
const
arm_2d_tile_t
*ptDesMask,
4232
const
arm_2d_region_t
*ptRegion);
4233
4234
4235
/*----------------------------------------------------------------------------*
4236
* Fill tile to target tile with a source mask, a target mask and x-mirroring *
4237
*----------------------------------------------------------------------------*/
4238
4239
/*!
4240
* \brief fill a source tile to a target tile with masks and x-mirroring
4241
* \param[in] ptOP the control block, NULL means using the default control block
4242
* \param[in] ptSource the source tile
4243
* \param[in] ptSrcMask the mask on the source side
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
*/
4249
extern
4250
ARM_NONNULL(2,3,4,5)
4251
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_masks_and_x_mirror
(
4252
arm_2d_op_cp_msk_t
*ptOP,
4253
const
arm_2d_tile_t
*ptSource,
4254
const
arm_2d_tile_t
*ptSrcMask,
4255
const
arm_2d_tile_t
*ptTarget,
4256
const
arm_2d_tile_t
*ptDesMask,
4257
const
arm_2d_region_t
*ptRegion);
4258
4259
/*!
4260
* \brief fill a source tile to a target tile with masks and x-mirroring
4261
* \param[in] ptOP the control block, NULL means using the default control block
4262
* \param[in] ptSource the source tile
4263
* \param[in] ptSrcMask the mask on the source side
4264
* \param[in] ptTarget the target tile
4265
* \param[in] ptDesMask the mask on the target side
4266
* \param[in] ptRegion the target region
4267
* \return arm_fsm_rt_t the operation result
4268
*/
4269
extern
4270
ARM_NONNULL(2,3,4,5)
4271
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_masks_and_x_mirror
(
4272
arm_2d_op_cp_msk_t
*ptOP,
4273
const
arm_2d_tile_t
*ptSource,
4274
const
arm_2d_tile_t
*ptSrcMask,
4275
const
arm_2d_tile_t
*ptTarget,
4276
const
arm_2d_tile_t
*ptDesMask,
4277
const
arm_2d_region_t
*ptRegion);
4278
4279
/*!
4280
* \brief fill a source tile to a target tile with masks and x-mirroring
4281
* \param[in] ptOP the control block, NULL means using the default control block
4282
* \param[in] ptSource the source tile
4283
* \param[in] ptSrcMask the mask on the source side
4284
* \param[in] ptTarget the target tile
4285
* \param[in] ptDesMask the mask on the target side
4286
* \param[in] ptRegion the target region
4287
* \return arm_fsm_rt_t the operation result
4288
*/
4289
extern
4290
ARM_NONNULL(2,3,4,5)
4291
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_masks_and_x_mirror
(
4292
arm_2d_op_cp_msk_t
*ptOP,
4293
const
arm_2d_tile_t
*ptSource,
4294
const
arm_2d_tile_t
*ptSrcMask,
4295
const
arm_2d_tile_t
*ptTarget,
4296
const
arm_2d_tile_t
*ptDesMask,
4297
const
arm_2d_region_t
*ptRegion);
4298
4299
4300
/*----------------------------------------------------------------------------*
4301
* Fill tile to target tile with a source mask, a target mask and y-mirroring *
4302
*----------------------------------------------------------------------------*/
4303
4304
/*!
4305
* \brief fill a source tile to a target tile with masks and y-mirroring
4306
* \param[in] ptOP the control block, NULL means using the default control block
4307
* \param[in] ptSource the source tile
4308
* \param[in] ptSrcMask the mask on the source side
4309
* \param[in] ptTarget the target tile
4310
* \param[in] ptDesMask the mask on the target side
4311
* \param[in] ptRegion the target region
4312
* \return arm_fsm_rt_t the operation result
4313
*/
4314
extern
4315
ARM_NONNULL(2,3,4,5)
4316
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_masks_and_y_mirror
(
4317
arm_2d_op_cp_msk_t
*ptOP,
4318
const
arm_2d_tile_t
*ptSource,
4319
const
arm_2d_tile_t
*ptSrcMask,
4320
const
arm_2d_tile_t
*ptTarget,
4321
const
arm_2d_tile_t
*ptDesMask,
4322
const
arm_2d_region_t
*ptRegion);
4323
4324
/*!
4325
* \brief fill a source tile to a target tile with masks and y-mirroring
4326
* \param[in] ptOP the control block, NULL means using the default control block
4327
* \param[in] ptSource the source tile
4328
* \param[in] ptSrcMask the mask on the source side
4329
* \param[in] ptTarget the target tile
4330
* \param[in] ptDesMask the mask on the target side
4331
* \param[in] ptRegion the target region
4332
* \return arm_fsm_rt_t the operation result
4333
*/
4334
extern
4335
ARM_NONNULL(2,3,4,5)
4336
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_masks_and_y_mirror
(
4337
arm_2d_op_cp_msk_t
*ptOP,
4338
const
arm_2d_tile_t
*ptSource,
4339
const
arm_2d_tile_t
*ptSrcMask,
4340
const
arm_2d_tile_t
*ptTarget,
4341
const
arm_2d_tile_t
*ptDesMask,
4342
const
arm_2d_region_t
*ptRegion);
4343
4344
/*!
4345
* \brief fill a source tile to a target tile with masks and y-mirroring
4346
* \param[in] ptOP the control block, NULL means using the default control block
4347
* \param[in] ptSource the source tile
4348
* \param[in] ptSrcMask the mask on the source side
4349
* \param[in] ptTarget the target tile
4350
* \param[in] ptDesMask the mask on the target side
4351
* \param[in] ptRegion the target region
4352
* \return arm_fsm_rt_t the operation result
4353
*/
4354
extern
4355
ARM_NONNULL(2,3,4,5)
4356
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_masks_and_y_mirror
(
4357
arm_2d_op_cp_msk_t
*ptOP,
4358
const
arm_2d_tile_t
*ptSource,
4359
const
arm_2d_tile_t
*ptSrcMask,
4360
const
arm_2d_tile_t
*ptTarget,
4361
const
arm_2d_tile_t
*ptDesMask,
4362
const
arm_2d_region_t
*ptRegion);
4363
4364
4365
/*----------------------------------------------------------------------------*
4366
* Fill tile to target tile with a source mask, a target mask and xy-mirroring *
4367
*----------------------------------------------------------------------------*/
4368
4369
/*!
4370
* \brief fill a source tile to a target tile with masks and xy-mirroring
4371
* \param[in] ptOP the control block, NULL means using the default control block
4372
* \param[in] ptSource the source tile
4373
* \param[in] ptSrcMask the mask on the source side
4374
* \param[in] ptTarget the target tile
4375
* \param[in] ptDesMask the mask on the target side
4376
* \param[in] ptRegion the target region
4377
* \return arm_fsm_rt_t the operation result
4378
*/
4379
extern
4380
ARM_NONNULL(2,3,4,5)
4381
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_masks_and_xy_mirror
(
4382
arm_2d_op_cp_msk_t
*ptOP,
4383
const
arm_2d_tile_t
*ptSource,
4384
const
arm_2d_tile_t
*ptSrcMask,
4385
const
arm_2d_tile_t
*ptTarget,
4386
const
arm_2d_tile_t
*ptDesMask,
4387
const
arm_2d_region_t
*ptRegion);
4388
4389
/*!
4390
* \brief fill a source tile to a target tile with masks and xy-mirroring
4391
* \param[in] ptOP the control block, NULL means using the default control block
4392
* \param[in] ptSource the source tile
4393
* \param[in] ptSrcMask the mask on the source side
4394
* \param[in] ptTarget the target tile
4395
* \param[in] ptDesMask the mask on the target side
4396
* \param[in] ptRegion the target region
4397
* \return arm_fsm_rt_t the operation result
4398
*/
4399
extern
4400
ARM_NONNULL(2,3,4,5)
4401
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_masks_and_xy_mirror
(
4402
arm_2d_op_cp_msk_t
*ptOP,
4403
const
arm_2d_tile_t
*ptSource,
4404
const
arm_2d_tile_t
*ptSrcMask,
4405
const
arm_2d_tile_t
*ptTarget,
4406
const
arm_2d_tile_t
*ptDesMask,
4407
const
arm_2d_region_t
*ptRegion);
4408
4409
/*!
4410
* \brief fill a source tile to a target tile with masks and xy-mirroring
4411
* \param[in] ptOP the control block, NULL means using the default control block
4412
* \param[in] ptSource the source tile
4413
* \param[in] ptSrcMask the mask on the source side
4414
* \param[in] ptTarget the target tile
4415
* \param[in] ptDesMask the mask on the target side
4416
* \param[in] ptRegion the target region
4417
* \return arm_fsm_rt_t the operation result
4418
*/
4419
extern
4420
ARM_NONNULL(2,3,4,5)
4421
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_masks_and_xy_mirror
(
4422
arm_2d_op_cp_msk_t
*ptOP,
4423
const
arm_2d_tile_t
*ptSource,
4424
const
arm_2d_tile_t
*ptSrcMask,
4425
const
arm_2d_tile_t
*ptTarget,
4426
const
arm_2d_tile_t
*ptDesMask,
4427
const
arm_2d_region_t
*ptRegion);
4428
4429
4430
/*----------------------------------------------------------------------------*
4431
* Copy tile to destination with a specified source mask *
4432
*----------------------------------------------------------------------------*/
4433
/*!
4434
* \brief copy a source tile to a target tile with a source mask
4435
* \param[in] ptOP the control block, NULL means using the default control block
4436
* \param[in] ptSource the source tile
4437
* \param[in] ptSrcMask the mask on the source side
4438
* \param[in] ptTarget the target tile
4439
* \param[in] ptRegion the target region
4440
* \return arm_fsm_rt_t the operation result
4441
*/
4442
extern
4443
ARM_NONNULL(2,3,4)
4444
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_src_mask_only
(
4445
arm_2d_op_cp_msk_t
*ptOP,
4446
const
arm_2d_tile_t
*ptSource,
4447
const
arm_2d_tile_t
*ptSrcMask,
4448
const
arm_2d_tile_t
*ptTarget,
4449
const
arm_2d_region_t
*ptRegion);
4450
4451
/*!
4452
* \brief copy a source tile to a target tile with a source mask
4453
* \param[in] ptOP the control block, NULL means using the default control block
4454
* \param[in] ptSource the source tile
4455
* \param[in] ptSrcMask the mask on the source side
4456
* \param[in] ptTarget the target tile
4457
* \param[in] ptRegion the target region
4458
* \return arm_fsm_rt_t the operation result
4459
*/
4460
extern
4461
ARM_NONNULL(2,3,4)
4462
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_src_mask_only
(
4463
arm_2d_op_cp_msk_t
*ptOP,
4464
const
arm_2d_tile_t
*ptSource,
4465
const
arm_2d_tile_t
*ptSrcMask,
4466
const
arm_2d_tile_t
*ptTarget,
4467
const
arm_2d_region_t
*ptRegion);
4468
4469
/*!
4470
* \brief copy a source tile to a target tile with a source mask
4471
* \param[in] ptOP the control block, NULL means using the default control block
4472
* \param[in] ptSource the source tile
4473
* \param[in] ptSrcMask the mask on the source side
4474
* \param[in] ptTarget the target tile
4475
* \param[in] ptRegion the target region
4476
* \param[in] wMode the copy mode
4477
* \return arm_fsm_rt_t the operation result
4478
*/
4479
extern
4480
ARM_NONNULL(2,3,4)
4481
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_src_mask_only
(
4482
arm_2d_op_cp_msk_t
*ptOP,
4483
const
arm_2d_tile_t
*ptSource,
4484
const
arm_2d_tile_t
*ptSrcMask,
4485
const
arm_2d_tile_t
*ptTarget,
4486
const
arm_2d_region_t
*ptRegion);
4487
4488
4489
/*----------------------------------------------------------------------------*
4490
* Copy tile to destination with a specified source mask and x-mirroring *
4491
*----------------------------------------------------------------------------*/
4492
/*!
4493
* \brief copy a source tile to a target tile with a source mask and x-mirroring
4494
* \param[in] ptOP the control block, NULL means using the default control block
4495
* \param[in] ptSource the source tile
4496
* \param[in] ptSrcMask the mask on the source side
4497
* \param[in] ptTarget the target tile
4498
* \param[in] ptRegion the target region
4499
* \return arm_fsm_rt_t the operation result
4500
*/
4501
extern
4502
ARM_NONNULL(2,3,4)
4503
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_src_mask_and_x_mirror
(
4504
arm_2d_op_cp_msk_t
*ptOP,
4505
const
arm_2d_tile_t
*ptSource,
4506
const
arm_2d_tile_t
*ptSrcMask,
4507
const
arm_2d_tile_t
*ptTarget,
4508
const
arm_2d_region_t
*ptRegion);
4509
4510
/*!
4511
* \brief copy a source tile to a target tile with a source mask and x-mirroring
4512
* \param[in] ptOP the control block, NULL means using the default control block
4513
* \param[in] ptSource the source tile
4514
* \param[in] ptSrcMask the mask on the source side
4515
* \param[in] ptTarget the target tile
4516
* \param[in] ptRegion the target region
4517
* \return arm_fsm_rt_t the operation result
4518
*/
4519
extern
4520
ARM_NONNULL(2,3,4)
4521
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_src_mask_and_x_mirror
(
4522
arm_2d_op_cp_msk_t
*ptOP,
4523
const
arm_2d_tile_t
*ptSource,
4524
const
arm_2d_tile_t
*ptSrcMask,
4525
const
arm_2d_tile_t
*ptTarget,
4526
const
arm_2d_region_t
*ptRegion);
4527
4528
/*!
4529
* \brief copy a source tile to a target tile with a source mask and x-mirroring
4530
* \param[in] ptOP the control block, NULL means using the default control block
4531
* \param[in] ptSource the source tile
4532
* \param[in] ptSrcMask the mask on the source side
4533
* \param[in] ptTarget the target tile
4534
* \param[in] ptRegion the target region
4535
* \param[in] wMode the copy mode
4536
* \return arm_fsm_rt_t the operation result
4537
*/
4538
extern
4539
ARM_NONNULL(2,3,4)
4540
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_src_mask_and_x_mirror
(
4541
arm_2d_op_cp_msk_t
*ptOP,
4542
const
arm_2d_tile_t
*ptSource,
4543
const
arm_2d_tile_t
*ptSrcMask,
4544
const
arm_2d_tile_t
*ptTarget,
4545
const
arm_2d_region_t
*ptRegion);
4546
4547
/*----------------------------------------------------------------------------*
4548
* Copy tile to destination with a specified source mask and y-mirroring *
4549
*----------------------------------------------------------------------------*/
4550
/*!
4551
* \brief copy a source tile to a target tile with a source mask and y-mirroring
4552
* \param[in] ptOP the control block, NULL means using the default control block
4553
* \param[in] ptSource the source tile
4554
* \param[in] ptSrcMask the mask on the source side
4555
* \param[in] ptTarget the target tile
4556
* \param[in] ptRegion the target region
4557
* \return arm_fsm_rt_t the operation result
4558
*/
4559
extern
4560
ARM_NONNULL(2,3,4)
4561
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_src_mask_and_y_mirror
(
4562
arm_2d_op_cp_msk_t
*ptOP,
4563
const
arm_2d_tile_t
*ptSource,
4564
const
arm_2d_tile_t
*ptSrcMask,
4565
const
arm_2d_tile_t
*ptTarget,
4566
const
arm_2d_region_t
*ptRegion);
4567
4568
/*!
4569
* \brief copy a source tile to a target tile with a source mask and y-mirroring
4570
* \param[in] ptOP the control block, NULL means using the default control block
4571
* \param[in] ptSource the source tile
4572
* \param[in] ptSrcMask the mask on the source side
4573
* \param[in] ptTarget the target tile
4574
* \param[in] ptRegion the target region
4575
* \return arm_fsm_rt_t the operation result
4576
*/
4577
extern
4578
ARM_NONNULL(2,3,4)
4579
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_src_mask_and_y_mirror
(
4580
arm_2d_op_cp_msk_t
*ptOP,
4581
const
arm_2d_tile_t
*ptSource,
4582
const
arm_2d_tile_t
*ptSrcMask,
4583
const
arm_2d_tile_t
*ptTarget,
4584
const
arm_2d_region_t
*ptRegion);
4585
4586
/*!
4587
* \brief copy a source tile to a target tile with a source mask and y-mirroring
4588
* \param[in] ptOP the control block, NULL means using the default control block
4589
* \param[in] ptSource the source tile
4590
* \param[in] ptSrcMask the mask on the source side
4591
* \param[in] ptTarget the target tile
4592
* \param[in] ptRegion the target region
4593
* \param[in] wMode the copy mode
4594
* \return arm_fsm_rt_t the operation result
4595
*/
4596
extern
4597
ARM_NONNULL(2,3,4)
4598
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_src_mask_and_y_mirror
(
4599
arm_2d_op_cp_msk_t
*ptOP,
4600
const
arm_2d_tile_t
*ptSource,
4601
const
arm_2d_tile_t
*ptSrcMask,
4602
const
arm_2d_tile_t
*ptTarget,
4603
const
arm_2d_region_t
*ptRegion);
4604
4605
4606
/*----------------------------------------------------------------------------*
4607
* Copy tile to destination with a specified source mask and xy-mirroring *
4608
*----------------------------------------------------------------------------*/
4609
/*!
4610
* \brief copy a source tile to a target tile with a source mask and xy-mirroring
4611
* \param[in] ptOP the control block, NULL means using the default control block
4612
* \param[in] ptSource the source tile
4613
* \param[in] ptSrcMask the mask on the source side
4614
* \param[in] ptTarget the target tile
4615
* \param[in] ptRegion the target region
4616
* \return arm_fsm_rt_t the operation result
4617
*/
4618
extern
4619
ARM_NONNULL(2,3,4)
4620
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_src_mask_and_xy_mirror
(
4621
arm_2d_op_cp_msk_t
*ptOP,
4622
const
arm_2d_tile_t
*ptSource,
4623
const
arm_2d_tile_t
*ptSrcMask,
4624
const
arm_2d_tile_t
*ptTarget,
4625
const
arm_2d_region_t
*ptRegion);
4626
4627
/*!
4628
* \brief copy a source tile to a target tile with a source mask and xy-mirroring
4629
* \param[in] ptOP the control block, NULL means using the default control block
4630
* \param[in] ptSource the source tile
4631
* \param[in] ptSrcMask the mask on the source side
4632
* \param[in] ptTarget the target tile
4633
* \param[in] ptRegion the target region
4634
* \return arm_fsm_rt_t the operation result
4635
*/
4636
extern
4637
ARM_NONNULL(2,3,4)
4638
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_src_mask_and_xy_mirror
(
4639
arm_2d_op_cp_msk_t
*ptOP,
4640
const
arm_2d_tile_t
*ptSource,
4641
const
arm_2d_tile_t
*ptSrcMask,
4642
const
arm_2d_tile_t
*ptTarget,
4643
const
arm_2d_region_t
*ptRegion);
4644
4645
/*!
4646
* \brief copy a source tile to a target tile with a source mask and xy-mirroring
4647
* \param[in] ptOP the control block, NULL means using the default control block
4648
* \param[in] ptSource the source tile
4649
* \param[in] ptSrcMask the mask on the source side
4650
* \param[in] ptTarget the target tile
4651
* \param[in] ptRegion the target region
4652
* \param[in] wMode the copy mode
4653
* \return arm_fsm_rt_t the operation result
4654
*/
4655
extern
4656
ARM_NONNULL(2,3,4)
4657
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_src_mask_and_xy_mirror
(
4658
arm_2d_op_cp_msk_t
*ptOP,
4659
const
arm_2d_tile_t
*ptSource,
4660
const
arm_2d_tile_t
*ptSrcMask,
4661
const
arm_2d_tile_t
*ptTarget,
4662
const
arm_2d_region_t
*ptRegion);
4663
4664
/*----------------------------------------------------------------------------*
4665
* Fill tile to destination with a specified source mask *
4666
*----------------------------------------------------------------------------*/
4667
/*!
4668
* \brief fill a source tile to a target tile with a source mask
4669
* \param[in] ptOP the control block, NULL means using the default control block
4670
* \param[in] ptSource the source tile
4671
* \param[in] ptSrcMask the mask on the source side
4672
* \param[in] ptTarget the target tile
4673
* \param[in] ptRegion the target region
4674
* \return arm_fsm_rt_t the operation result
4675
*/
4676
extern
4677
ARM_NONNULL(2,3,4)
4678
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_src_mask_only
(
4679
arm_2d_op_cp_msk_t
*ptOP,
4680
const
arm_2d_tile_t
*ptSource,
4681
const
arm_2d_tile_t
*ptSrcMask,
4682
const
arm_2d_tile_t
*ptTarget,
4683
const
arm_2d_region_t
*ptRegion);
4684
4685
/*!
4686
* \brief fill a source tile to a target tile with a source mask
4687
* \param[in] ptOP the control block, NULL means using the default control block
4688
* \param[in] ptSource the source tile
4689
* \param[in] ptSrcMask the mask on the source side
4690
* \param[in] ptTarget the target tile
4691
* \param[in] ptRegion the target region
4692
* \return arm_fsm_rt_t the operation result
4693
*/
4694
extern
4695
ARM_NONNULL(2,3,4)
4696
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_src_mask_only
(
4697
arm_2d_op_cp_msk_t
*ptOP,
4698
const
arm_2d_tile_t
*ptSource,
4699
const
arm_2d_tile_t
*ptSrcMask,
4700
const
arm_2d_tile_t
*ptTarget,
4701
const
arm_2d_region_t
*ptRegion);
4702
4703
/*!
4704
* \brief fill a source tile to a target tile with a source mask
4705
* \param[in] ptOP the control block, NULL means using the default control block
4706
* \param[in] ptSource the source tile
4707
* \param[in] ptSrcMask the mask on the source side
4708
* \param[in] ptTarget the target tile
4709
* \param[in] ptRegion the target region
4710
* \param[in] wMode the fill mode
4711
* \return arm_fsm_rt_t the operation result
4712
*/
4713
extern
4714
ARM_NONNULL(2,3,4)
4715
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_src_mask_only
(
4716
arm_2d_op_cp_msk_t
*ptOP,
4717
const
arm_2d_tile_t
*ptSource,
4718
const
arm_2d_tile_t
*ptSrcMask,
4719
const
arm_2d_tile_t
*ptTarget,
4720
const
arm_2d_region_t
*ptRegion);
4721
4722
4723
/*----------------------------------------------------------------------------*
4724
* Fill tile to destination with a specified source mask and x-mirroring *
4725
*----------------------------------------------------------------------------*/
4726
/*!
4727
* \brief fill a source tile to a target tile with a source mask and x-mirroring
4728
* \param[in] ptOP the control block, NULL means using the default control block
4729
* \param[in] ptSource the source tile
4730
* \param[in] ptSrcMask the mask on the source side
4731
* \param[in] ptTarget the target tile
4732
* \param[in] ptRegion the target region
4733
* \return arm_fsm_rt_t the operation result
4734
*/
4735
extern
4736
ARM_NONNULL(2,3,4)
4737
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_src_mask_and_x_mirror
(
4738
arm_2d_op_cp_msk_t
*ptOP,
4739
const
arm_2d_tile_t
*ptSource,
4740
const
arm_2d_tile_t
*ptSrcMask,
4741
const
arm_2d_tile_t
*ptTarget,
4742
const
arm_2d_region_t
*ptRegion);
4743
4744
/*!
4745
* \brief fill a source tile to a target tile with a source mask and x-mirroring
4746
* \param[in] ptOP the control block, NULL means using the default control block
4747
* \param[in] ptSource the source tile
4748
* \param[in] ptSrcMask the mask on the source side
4749
* \param[in] ptTarget the target tile
4750
* \param[in] ptRegion the target region
4751
* \return arm_fsm_rt_t the operation result
4752
*/
4753
extern
4754
ARM_NONNULL(2,3,4)
4755
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_src_mask_and_x_mirror
(
4756
arm_2d_op_cp_msk_t
*ptOP,
4757
const
arm_2d_tile_t
*ptSource,
4758
const
arm_2d_tile_t
*ptSrcMask,
4759
const
arm_2d_tile_t
*ptTarget,
4760
const
arm_2d_region_t
*ptRegion);
4761
4762
/*!
4763
* \brief fill a source tile to a target tile with a source mask and x-mirroring
4764
* \param[in] ptOP the control block, NULL means using the default control block
4765
* \param[in] ptSource the source tile
4766
* \param[in] ptSrcMask the mask on the source side
4767
* \param[in] ptTarget the target tile
4768
* \param[in] ptRegion the target region
4769
* \param[in] wMode the fill mode
4770
* \return arm_fsm_rt_t the operation result
4771
*/
4772
extern
4773
ARM_NONNULL(2,3,4)
4774
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_src_mask_and_x_mirror
(
4775
arm_2d_op_cp_msk_t
*ptOP,
4776
const
arm_2d_tile_t
*ptSource,
4777
const
arm_2d_tile_t
*ptSrcMask,
4778
const
arm_2d_tile_t
*ptTarget,
4779
const
arm_2d_region_t
*ptRegion);
4780
4781
/*----------------------------------------------------------------------------*
4782
* Fill tile to destination with a specified source mask and y-mirroring *
4783
*----------------------------------------------------------------------------*/
4784
/*!
4785
* \brief fill a source tile to a target tile with a source mask and y-mirroring
4786
* \param[in] ptOP the control block, NULL means using the default control block
4787
* \param[in] ptSource the source tile
4788
* \param[in] ptSrcMask the mask on the source side
4789
* \param[in] ptTarget the target tile
4790
* \param[in] ptRegion the target region
4791
* \return arm_fsm_rt_t the operation result
4792
*/
4793
extern
4794
ARM_NONNULL(2,3,4)
4795
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_src_mask_and_y_mirror
(
4796
arm_2d_op_cp_msk_t
*ptOP,
4797
const
arm_2d_tile_t
*ptSource,
4798
const
arm_2d_tile_t
*ptSrcMask,
4799
const
arm_2d_tile_t
*ptTarget,
4800
const
arm_2d_region_t
*ptRegion);
4801
4802
/*!
4803
* \brief fill a source tile to a target tile with a source mask and y-mirroring
4804
* \param[in] ptOP the control block, NULL means using the default control block
4805
* \param[in] ptSource the source tile
4806
* \param[in] ptSrcMask the mask on the source side
4807
* \param[in] ptTarget the target tile
4808
* \param[in] ptRegion the target region
4809
* \return arm_fsm_rt_t the operation result
4810
*/
4811
extern
4812
ARM_NONNULL(2,3,4)
4813
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_src_mask_and_y_mirror
(
4814
arm_2d_op_cp_msk_t
*ptOP,
4815
const
arm_2d_tile_t
*ptSource,
4816
const
arm_2d_tile_t
*ptSrcMask,
4817
const
arm_2d_tile_t
*ptTarget,
4818
const
arm_2d_region_t
*ptRegion);
4819
4820
/*!
4821
* \brief fill a source tile to a target tile with a source mask and y-mirroring
4822
* \param[in] ptOP the control block, NULL means using the default control block
4823
* \param[in] ptSource the source tile
4824
* \param[in] ptSrcMask the mask on the source side
4825
* \param[in] ptTarget the target tile
4826
* \param[in] ptRegion the target region
4827
* \param[in] wMode the fill mode
4828
* \return arm_fsm_rt_t the operation result
4829
*/
4830
extern
4831
ARM_NONNULL(2,3,4)
4832
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_src_mask_and_y_mirror
(
4833
arm_2d_op_cp_msk_t
*ptOP,
4834
const
arm_2d_tile_t
*ptSource,
4835
const
arm_2d_tile_t
*ptSrcMask,
4836
const
arm_2d_tile_t
*ptTarget,
4837
const
arm_2d_region_t
*ptRegion);
4838
4839
4840
/*----------------------------------------------------------------------------*
4841
* Fill tile to destination with a specified source mask and xy-mirroring *
4842
*----------------------------------------------------------------------------*/
4843
/*!
4844
* \brief fill a source tile to a target tile with a source mask and xy-mirroring
4845
* \param[in] ptOP the control block, NULL means using the default control block
4846
* \param[in] ptSource the source tile
4847
* \param[in] ptSrcMask the mask on the source side
4848
* \param[in] ptTarget the target tile
4849
* \param[in] ptRegion the target region
4850
* \return arm_fsm_rt_t the operation result
4851
*/
4852
extern
4853
ARM_NONNULL(2,3,4)
4854
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_src_mask_and_xy_mirror
(
4855
arm_2d_op_cp_msk_t
*ptOP,
4856
const
arm_2d_tile_t
*ptSource,
4857
const
arm_2d_tile_t
*ptSrcMask,
4858
const
arm_2d_tile_t
*ptTarget,
4859
const
arm_2d_region_t
*ptRegion);
4860
4861
/*!
4862
* \brief fill a source tile to a target tile with a source mask and xy-mirroring
4863
* \param[in] ptOP the control block, NULL means using the default control block
4864
* \param[in] ptSource the source tile
4865
* \param[in] ptSrcMask the mask on the source side
4866
* \param[in] ptTarget the target tile
4867
* \param[in] ptRegion the target region
4868
* \return arm_fsm_rt_t the operation result
4869
*/
4870
extern
4871
ARM_NONNULL(2,3,4)
4872
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_src_mask_and_xy_mirror
(
4873
arm_2d_op_cp_msk_t
*ptOP,
4874
const
arm_2d_tile_t
*ptSource,
4875
const
arm_2d_tile_t
*ptSrcMask,
4876
const
arm_2d_tile_t
*ptTarget,
4877
const
arm_2d_region_t
*ptRegion);
4878
4879
/*!
4880
* \brief fill a source tile to a target tile with a source mask and xy-mirroring
4881
* \param[in] ptOP the control block, NULL means using the default control block
4882
* \param[in] ptSource the source tile
4883
* \param[in] ptSrcMask the mask on the source side
4884
* \param[in] ptTarget the target tile
4885
* \param[in] ptRegion the target region
4886
* \param[in] wMode the fill mode
4887
* \return arm_fsm_rt_t the operation result
4888
*/
4889
extern
4890
ARM_NONNULL(2,3,4)
4891
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_src_mask_and_xy_mirror
(
4892
arm_2d_op_cp_msk_t
*ptOP,
4893
const
arm_2d_tile_t
*ptSource,
4894
const
arm_2d_tile_t
*ptSrcMask,
4895
const
arm_2d_tile_t
*ptTarget,
4896
const
arm_2d_region_t
*ptRegion);
4897
4898
/*----------------------------------------------------------------------------*
4899
* Copy tile to target tile with a source tile and a target mask *
4900
*----------------------------------------------------------------------------*/
4901
4902
/*!
4903
* \brief copy a source tile to a target tile with a target mask
4904
* \param[in] ptOP the control block, NULL means using the default control block
4905
* \param[in] ptSource the source tile
4906
* \param[in] ptTarget the target tile
4907
* \param[in] ptDesMask the mask on the target side
4908
* \param[in] ptRegion the target region
4909
* \return arm_fsm_rt_t the operation result
4910
*/
4911
extern
4912
ARM_NONNULL(2,3,4)
4913
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_des_mask_only
(
4914
arm_2d_op_cp_msk_t
*ptOP,
4915
const
arm_2d_tile_t
*ptSource,
4916
const
arm_2d_tile_t
*ptTarget,
4917
const
arm_2d_tile_t
*ptDesMask,
4918
const
arm_2d_region_t
*ptRegion);
4919
4920
/*!
4921
* \brief copy a source tile to a target tile with a target mask
4922
* \param[in] ptOP the control block, NULL means using the default control block
4923
* \param[in] ptSource the source tile
4924
* \param[in] ptTarget the target tile
4925
* \param[in] ptDesMask the mask on the target side
4926
* \param[in] ptRegion the target region
4927
* \return arm_fsm_rt_t the operation result
4928
*/
4929
extern
4930
ARM_NONNULL(2,3,4)
4931
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_des_mask_only
(
4932
arm_2d_op_cp_msk_t
*ptOP,
4933
const
arm_2d_tile_t
*ptSource,
4934
const
arm_2d_tile_t
*ptTarget,
4935
const
arm_2d_tile_t
*ptDesMask,
4936
const
arm_2d_region_t
*ptRegion);
4937
4938
/*!
4939
* \brief copy a source tile to a target tile with a target mask
4940
* \param[in] ptOP the control block, NULL means using the default control block
4941
* \param[in] ptSource the source tile
4942
* \param[in] ptTarget the target tile
4943
* \param[in] ptDesMask the mask on the target side
4944
* \param[in] ptRegion the target region
4945
* \return arm_fsm_rt_t the operation result
4946
*/
4947
extern
4948
ARM_NONNULL(2,3,4)
4949
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_des_mask_only
(
4950
arm_2d_op_cp_msk_t
*ptOP,
4951
const
arm_2d_tile_t
*ptSource,
4952
const
arm_2d_tile_t
*ptTarget,
4953
const
arm_2d_tile_t
*ptDesMask,
4954
const
arm_2d_region_t
*ptRegion);
4955
4956
4957
/*----------------------------------------------------------------------------*
4958
* Copy tile to target tile with a source mask, a target mask and x-mirroring *
4959
*----------------------------------------------------------------------------*/
4960
4961
/*!
4962
* \brief copy a source tile to a target tile with a target mask and x-mirroring
4963
* \param[in] ptOP the control block, NULL means using the default control block
4964
* \param[in] ptSource the source tile
4965
* \param[in] ptTarget the target tile
4966
* \param[in] ptDesMask the mask on the target side
4967
* \param[in] ptRegion the target region
4968
* \return arm_fsm_rt_t the operation result
4969
*/
4970
extern
4971
ARM_NONNULL(2,3,4)
4972
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_des_mask_and_x_mirror
(
4973
arm_2d_op_cp_msk_t
*ptOP,
4974
const
arm_2d_tile_t
*ptSource,
4975
const
arm_2d_tile_t
*ptTarget,
4976
const
arm_2d_tile_t
*ptDesMask,
4977
const
arm_2d_region_t
*ptRegion);
4978
4979
/*!
4980
* \brief copy a source tile to a target tile with a target mask and x-mirroring
4981
* \param[in] ptOP the control block, NULL means using the default control block
4982
* \param[in] ptSource the source tile
4983
* \param[in] ptTarget the target tile
4984
* \param[in] ptDesMask the mask on the target side
4985
* \param[in] ptRegion the target region
4986
* \return arm_fsm_rt_t the operation result
4987
*/
4988
extern
4989
ARM_NONNULL(2,3,4)
4990
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_des_mask_and_x_mirror
(
4991
arm_2d_op_cp_msk_t
*ptOP,
4992
const
arm_2d_tile_t
*ptSource,
4993
const
arm_2d_tile_t
*ptTarget,
4994
const
arm_2d_tile_t
*ptDesMask,
4995
const
arm_2d_region_t
*ptRegion);
4996
4997
/*!
4998
* \brief copy a source tile to a target tile with a target mask and x-mirroring
4999
* \param[in] ptOP the control block, NULL means using the default control block
5000
* \param[in] ptSource the source tile
5001
* \param[in] ptTarget the target tile
5002
* \param[in] ptDesMask the mask on the target side
5003
* \param[in] ptRegion the target region
5004
* \return arm_fsm_rt_t the operation result
5005
*/
5006
extern
5007
ARM_NONNULL(2,3,4)
5008
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_des_mask_and_x_mirror
(
5009
arm_2d_op_cp_msk_t
*ptOP,
5010
const
arm_2d_tile_t
*ptSource,
5011
const
arm_2d_tile_t
*ptTarget,
5012
const
arm_2d_tile_t
*ptDesMask,
5013
const
arm_2d_region_t
*ptRegion);
5014
5015
5016
/*----------------------------------------------------------------------------*
5017
* Copy tile to target tile with a source tile, a target mask and y-mirroring *
5018
*----------------------------------------------------------------------------*/
5019
5020
/*!
5021
* \brief copy a source tile to a target tile with a target mask and y-mirroring
5022
* \param[in] ptOP the control block, NULL means using the default control block
5023
* \param[in] ptSource the source tile
5024
* \param[in] ptTarget the target tile
5025
* \param[in] ptDesMask the mask on the target side
5026
* \param[in] ptRegion the target region
5027
* \return arm_fsm_rt_t the operation result
5028
*/
5029
extern
5030
ARM_NONNULL(2,3,4)
5031
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_des_mask_and_y_mirror
(
5032
arm_2d_op_cp_msk_t
*ptOP,
5033
const
arm_2d_tile_t
*ptSource,
5034
const
arm_2d_tile_t
*ptTarget,
5035
const
arm_2d_tile_t
*ptDesMask,
5036
const
arm_2d_region_t
*ptRegion);
5037
5038
/*!
5039
* \brief copy a source tile to a target tile with a target mask and y-mirroring
5040
* \param[in] ptOP the control block, NULL means using the default control block
5041
* \param[in] ptSource the source tile
5042
* \param[in] ptTarget the target tile
5043
* \param[in] ptDesMask the mask on the target side
5044
* \param[in] ptRegion the target region
5045
* \return arm_fsm_rt_t the operation result
5046
*/
5047
extern
5048
ARM_NONNULL(2,3,4)
5049
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_des_mask_and_y_mirror
(
5050
arm_2d_op_cp_msk_t
*ptOP,
5051
const
arm_2d_tile_t
*ptSource,
5052
const
arm_2d_tile_t
*ptTarget,
5053
const
arm_2d_tile_t
*ptDesMask,
5054
const
arm_2d_region_t
*ptRegion);
5055
5056
/*!
5057
* \brief copy a source tile to a target tile with a target mask and y-mirroring
5058
* \param[in] ptOP the control block, NULL means using the default control block
5059
* \param[in] ptSource the source tile
5060
* \param[in] ptTarget the target tile
5061
* \param[in] ptDesMask the mask on the target side
5062
* \param[in] ptRegion the target region
5063
* \return arm_fsm_rt_t the operation result
5064
*/
5065
extern
5066
ARM_NONNULL(2,3,4)
5067
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_des_mask_and_y_mirror
(
5068
arm_2d_op_cp_msk_t
*ptOP,
5069
const
arm_2d_tile_t
*ptSource,
5070
const
arm_2d_tile_t
*ptTarget,
5071
const
arm_2d_tile_t
*ptDesMask,
5072
const
arm_2d_region_t
*ptRegion);
5073
5074
5075
/*----------------------------------------------------------------------------*
5076
* Copy tile to target tile with a source tile, a target mask and xy-mirroring*
5077
*----------------------------------------------------------------------------*/
5078
5079
/*!
5080
* \brief copy a source tile to a target tile with a target mask and xy-mirroring
5081
* \param[in] ptOP the control block, NULL means using the default control block
5082
* \param[in] ptSource the source tile
5083
* \param[in] ptTarget the target tile
5084
* \param[in] ptDesMask the mask on the target side
5085
* \param[in] ptRegion the target region
5086
* \return arm_fsm_rt_t the operation result
5087
*/
5088
extern
5089
ARM_NONNULL(2,3,4)
5090
arm_fsm_rt_t
arm_2dp_gray8_tile_copy_with_des_mask_and_xy_mirror
(
5091
arm_2d_op_cp_msk_t
*ptOP,
5092
const
arm_2d_tile_t
*ptSource,
5093
const
arm_2d_tile_t
*ptTarget,
5094
const
arm_2d_tile_t
*ptDesMask,
5095
const
arm_2d_region_t
*ptRegion);
5096
5097
/*!
5098
* \brief copy a source tile to a target tile with a target mask and xy-mirroring
5099
* \param[in] ptOP the control block, NULL means using the default control block
5100
* \param[in] ptSource the source tile
5101
* \param[in] ptTarget the target tile
5102
* \param[in] ptDesMask the mask on the target side
5103
* \param[in] ptRegion the target region
5104
* \return arm_fsm_rt_t the operation result
5105
*/
5106
extern
5107
ARM_NONNULL(2,3,4)
5108
arm_fsm_rt_t
arm_2dp_rgb565_tile_copy_with_des_mask_and_xy_mirror
(
5109
arm_2d_op_cp_msk_t
*ptOP,
5110
const
arm_2d_tile_t
*ptSource,
5111
const
arm_2d_tile_t
*ptTarget,
5112
const
arm_2d_tile_t
*ptDesMask,
5113
const
arm_2d_region_t
*ptRegion);
5114
5115
/*!
5116
* \brief copy a source tile to a target tile with a target mask and xy-mirroring
5117
* \param[in] ptOP the control block, NULL means using the default control block
5118
* \param[in] ptSource the source tile
5119
* \param[in] ptTarget the target tile
5120
* \param[in] ptDesMask the mask on the target side
5121
* \param[in] ptRegion the target region
5122
* \return arm_fsm_rt_t the operation result
5123
*/
5124
extern
5125
ARM_NONNULL(2,3,4)
5126
arm_fsm_rt_t
arm_2dp_cccn888_tile_copy_with_des_mask_and_xy_mirror
(
5127
arm_2d_op_cp_msk_t
*ptOP,
5128
const
arm_2d_tile_t
*ptSource,
5129
const
arm_2d_tile_t
*ptTarget,
5130
const
arm_2d_tile_t
*ptDesMask,
5131
const
arm_2d_region_t
*ptRegion);
5132
5133
/*----------------------------------------------------------------------------*
5134
* Fill tile to target tile with a source tile and a target mask *
5135
*----------------------------------------------------------------------------*/
5136
5137
/*!
5138
* \brief fill a source tile to a target tile with a target mask
5139
* \param[in] ptOP the control block, NULL means using the default control block
5140
* \param[in] ptSource the source tile
5141
* \param[in] ptTarget the target tile
5142
* \param[in] ptDesMask the mask on the target side
5143
* \param[in] ptRegion the target region
5144
* \return arm_fsm_rt_t the operation result
5145
*/
5146
extern
5147
ARM_NONNULL(2,3,4)
5148
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_des_mask_only
(
5149
arm_2d_op_cp_msk_t
*ptOP,
5150
const
arm_2d_tile_t
*ptSource,
5151
const
arm_2d_tile_t
*ptTarget,
5152
const
arm_2d_tile_t
*ptDesMask,
5153
const
arm_2d_region_t
*ptRegion);
5154
5155
/*!
5156
* \brief fill a source tile to a target tile with a target mask
5157
* \param[in] ptOP the control block, NULL means using the default control block
5158
* \param[in] ptSource the source tile
5159
* \param[in] ptTarget the target tile
5160
* \param[in] ptDesMask the mask on the target side
5161
* \param[in] ptRegion the target region
5162
* \return arm_fsm_rt_t the operation result
5163
*/
5164
extern
5165
ARM_NONNULL(2,3,4)
5166
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_des_mask_only
(
5167
arm_2d_op_cp_msk_t
*ptOP,
5168
const
arm_2d_tile_t
*ptSource,
5169
const
arm_2d_tile_t
*ptTarget,
5170
const
arm_2d_tile_t
*ptDesMask,
5171
const
arm_2d_region_t
*ptRegion);
5172
5173
/*!
5174
* \brief fill a source tile to a target tile with a target mask
5175
* \param[in] ptOP the control block, NULL means using the default control block
5176
* \param[in] ptSource the source tile
5177
* \param[in] ptTarget the target tile
5178
* \param[in] ptDesMask the mask on the target side
5179
* \param[in] ptRegion the target region
5180
* \return arm_fsm_rt_t the operation result
5181
*/
5182
extern
5183
ARM_NONNULL(2,3,4)
5184
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_des_mask_only
(
5185
arm_2d_op_cp_msk_t
*ptOP,
5186
const
arm_2d_tile_t
*ptSource,
5187
const
arm_2d_tile_t
*ptTarget,
5188
const
arm_2d_tile_t
*ptDesMask,
5189
const
arm_2d_region_t
*ptRegion);
5190
5191
5192
/*----------------------------------------------------------------------------*
5193
* Fill tile to target tile with a source tile, a target mask and x-mirroring *
5194
*----------------------------------------------------------------------------*/
5195
5196
/*!
5197
* \brief fill a source tile to a target tile with a target mask and x-mirroring
5198
* \param[in] ptOP the control block, NULL means using the default control block
5199
* \param[in] ptSource the source tile
5200
* \param[in] ptTarget the target tile
5201
* \param[in] ptDesMask the mask on the target side
5202
* \param[in] ptRegion the target region
5203
* \return arm_fsm_rt_t the operation result
5204
*/
5205
extern
5206
ARM_NONNULL(2,3,4)
5207
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_des_mask_and_x_mirror
(
5208
arm_2d_op_cp_msk_t
*ptOP,
5209
const
arm_2d_tile_t
*ptSource,
5210
const
arm_2d_tile_t
*ptTarget,
5211
const
arm_2d_tile_t
*ptDesMask,
5212
const
arm_2d_region_t
*ptRegion);
5213
5214
/*!
5215
* \brief fill a source tile to a target tile with a target mask and x-mirroring
5216
* \param[in] ptOP the control block, NULL means using the default control block
5217
* \param[in] ptSource the source tile
5218
* \param[in] ptTarget the target tile
5219
* \param[in] ptDesMask the mask on the target side
5220
* \param[in] ptRegion the target region
5221
* \return arm_fsm_rt_t the operation result
5222
*/
5223
extern
5224
ARM_NONNULL(2,3,4)
5225
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_des_mask_and_x_mirror
(
5226
arm_2d_op_cp_msk_t
*ptOP,
5227
const
arm_2d_tile_t
*ptSource,
5228
const
arm_2d_tile_t
*ptTarget,
5229
const
arm_2d_tile_t
*ptDesMask,
5230
const
arm_2d_region_t
*ptRegion);
5231
5232
/*!
5233
* \brief fill a source tile to a target tile with a target mask and x-mirroring
5234
* \param[in] ptOP the control block, NULL means using the default control block
5235
* \param[in] ptSource the source tile
5236
* \param[in] ptTarget the target tile
5237
* \param[in] ptDesMask the mask on the target side
5238
* \param[in] ptRegion the target region
5239
* \return arm_fsm_rt_t the operation result
5240
*/
5241
extern
5242
ARM_NONNULL(2,3,4)
5243
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_des_mask_and_x_mirror
(
5244
arm_2d_op_cp_msk_t
*ptOP,
5245
const
arm_2d_tile_t
*ptSource,
5246
const
arm_2d_tile_t
*ptTarget,
5247
const
arm_2d_tile_t
*ptDesMask,
5248
const
arm_2d_region_t
*ptRegion);
5249
5250
5251
/*----------------------------------------------------------------------------*
5252
* Fill tile to target tile with a source tile, a target mask and y-mirroring *
5253
*----------------------------------------------------------------------------*/
5254
5255
/*!
5256
* \brief fill a source tile to a target tile with a target mask and y-mirroring
5257
* \param[in] ptOP the control block, NULL means using the default control block
5258
* \param[in] ptSource the source tile
5259
* \param[in] ptTarget the target tile
5260
* \param[in] ptDesMask the mask on the target side
5261
* \param[in] ptRegion the target region
5262
* \return arm_fsm_rt_t the operation result
5263
*/
5264
extern
5265
ARM_NONNULL(2,3,4)
5266
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_des_mask_and_y_mirror
(
5267
arm_2d_op_cp_msk_t
*ptOP,
5268
const
arm_2d_tile_t
*ptSource,
5269
const
arm_2d_tile_t
*ptTarget,
5270
const
arm_2d_tile_t
*ptDesMask,
5271
const
arm_2d_region_t
*ptRegion);
5272
5273
/*!
5274
* \brief fill a source tile to a target tile with a target mask and y-mirroring
5275
* \param[in] ptOP the control block, NULL means using the default control block
5276
* \param[in] ptSource the source tile
5277
* \param[in] ptTarget the target tile
5278
* \param[in] ptDesMask the mask on the target side
5279
* \param[in] ptRegion the target region
5280
* \return arm_fsm_rt_t the operation result
5281
*/
5282
extern
5283
ARM_NONNULL(2,3,4)
5284
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_des_mask_and_y_mirror
(
5285
arm_2d_op_cp_msk_t
*ptOP,
5286
const
arm_2d_tile_t
*ptSource,
5287
const
arm_2d_tile_t
*ptTarget,
5288
const
arm_2d_tile_t
*ptDesMask,
5289
const
arm_2d_region_t
*ptRegion);
5290
5291
/*!
5292
* \brief fill a source tile to a target tile with a target mask and y-mirroring
5293
* \param[in] ptOP the control block, NULL means using the default control block
5294
* \param[in] ptSource the source tile
5295
* \param[in] ptTarget the target tile
5296
* \param[in] ptDesMask the mask on the target side
5297
* \param[in] ptRegion the target region
5298
* \return arm_fsm_rt_t the operation result
5299
*/
5300
extern
5301
ARM_NONNULL(2,3,4)
5302
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_des_mask_and_y_mirror
(
5303
arm_2d_op_cp_msk_t
*ptOP,
5304
const
arm_2d_tile_t
*ptSource,
5305
const
arm_2d_tile_t
*ptTarget,
5306
const
arm_2d_tile_t
*ptDesMask,
5307
const
arm_2d_region_t
*ptRegion);
5308
5309
5310
/*----------------------------------------------------------------------------*
5311
* Fill tile to target tile with a source tile, a target mask and xy-mirroring*
5312
*----------------------------------------------------------------------------*/
5313
5314
/*!
5315
* \brief fill a source tile to a target tile with a target mask and xy-mirroring
5316
* \param[in] ptOP the control block, NULL means using the default control block
5317
* \param[in] ptSource the source tile
5318
* \param[in] ptTarget the target tile
5319
* \param[in] ptDesMask the mask on the target side
5320
* \param[in] ptRegion the target region
5321
* \return arm_fsm_rt_t the operation result
5322
*/
5323
extern
5324
ARM_NONNULL(2,3,4)
5325
arm_fsm_rt_t
arm_2dp_gray8_tile_fill_with_des_mask_and_xy_mirror
(
5326
arm_2d_op_cp_msk_t
*ptOP,
5327
const
arm_2d_tile_t
*ptSource,
5328
const
arm_2d_tile_t
*ptTarget,
5329
const
arm_2d_tile_t
*ptDesMask,
5330
const
arm_2d_region_t
*ptRegion);
5331
5332
/*!
5333
* \brief fill a source tile to a target tile with target mask and xy-mirroring
5334
* \param[in] ptOP the control block, NULL means using the default control block
5335
* \param[in] ptSource the source tile
5336
* \param[in] ptTarget the target tile
5337
* \param[in] ptDesMask the mask on the target side
5338
* \param[in] ptRegion the target region
5339
* \return arm_fsm_rt_t the operation result
5340
*/
5341
extern
5342
ARM_NONNULL(2,3,4)
5343
arm_fsm_rt_t
arm_2dp_rgb565_tile_fill_with_des_mask_and_xy_mirror
(
5344
arm_2d_op_cp_msk_t
*ptOP,
5345
const
arm_2d_tile_t
*ptSource,
5346
const
arm_2d_tile_t
*ptTarget,
5347
const
arm_2d_tile_t
*ptDesMask,
5348
const
arm_2d_region_t
*ptRegion);
5349
5350
/*!
5351
* \brief fill a source tile to a target tile with a target mask and xy-mirroring
5352
* \param[in] ptOP the control block, NULL means using the default control block
5353
* \param[in] ptSource the source tile
5354
* \param[in] ptTarget the target tile
5355
* \param[in] ptDesMask the mask on the target side
5356
* \param[in] ptRegion the target region
5357
* \return arm_fsm_rt_t the operation result
5358
*/
5359
extern
5360
ARM_NONNULL(2,3,4)
5361
arm_fsm_rt_t
arm_2dp_cccn888_tile_fill_with_des_mask_and_xy_mirror
(
5362
arm_2d_op_cp_msk_t
*ptOP,
5363
const
arm_2d_tile_t
*ptSource,
5364
const
arm_2d_tile_t
*ptTarget,
5365
const
arm_2d_tile_t
*ptDesMask,
5366
const
arm_2d_region_t
*ptRegion);
5367
5368
/*! @} */
5369
5370
/*========================= POST INCLUDES ====================================*/
5371
#include "__arm_2d_fill_colour_with_mask_and_mirroring.h"
5372
#include "__arm_2d_fill_colour_with_masks_and_mirroring.h"
5373
#include "__arm_2d_fill_colour_with_horizontal_line_mask.h"
5374
#include "__arm_2d_fill_colour_with_vertical_line_mask.h"
5375
#include "__arm_2d_fill_colour_with_alpha_gradient.h"
5376
#include "__arm_2d_fill_colour_with_alpha_gradient_and_mask.h"
5377
#include "__arm_2d_tile_copy_with_source_mask_and_opacity.h"
5378
#include "__arm_2d_tile_fill_with_source_mask_and_opacity.h"
5379
#include "__arm_2d_tile_fill_with_opacity.h"
5380
5381
#if defined(__clang__)
5382
#pragma clang diagnostic pop
5383
#endif
5384
5385
#ifdef __cplusplus
5386
}
5387
#endif
5388
5389
#endif
Library
Include
arm_2d_alpha_blending.h