Arm-2D
2D Image Processing Library for Cortex-M Processors
Loading...
Searching...
No Matches
__arm_2d_fill_colour_with_alpha_gradient.h
1
/*
2
* Copyright (C) 2024 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_fill_colour_with_alpha_gradient.c
22
* Description: The header file of APIs for colour-filling-with-alpha-gradient
23
*
24
* $Date: 16. Aug 2024
25
* $Revision: V.1.1.0
26
*
27
* Target Processor: Cortex-M cores
28
*
29
* -------------------------------------------------------------------- */
30
31
#ifndef __ARM_2D_FILL_COLOUR_WITH_ALPHA_GRADIENT_H__
32
#define __ARM_2D_FILL_COLOUR_WITH_ALPHA_GRADIENT_H__
33
34
/*============================ INCLUDES ======================================*/
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 "-Wdeclaration-after-statement"
46
# pragma clang diagnostic ignored "-Wsign-conversion"
47
# pragma clang diagnostic ignored "-Wpadded"
48
# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
49
# pragma clang diagnostic ignored "-Wmissing-declarations"
50
#elif defined(__IS_COMPILER_ARM_COMPILER_5__)
51
# pragma diag_suppress 174,177,188,68,513,144,64
52
#endif
53
54
/*!
55
* \addtogroup gAlpha 4 Alpha Blending Operations
56
* @{
57
*/
58
59
/*============================ MACROS ========================================*/
60
/*============================ MACROFIED FUNCTIONS ===========================*/
61
62
#define arm_2d_gray8_fill_colour_with_4pts_alpha_gradient( \
63
__TARGET_ADDR,
/* target tile address*/
\
64
__REGION_ADDR,
/* target region address*/
\
65
__COLOUR,
/* target colour */
\
66
...)
/* sample points */
\
67
arm_2dp_gray8_fill_colour_with_4pts_alpha_gradient( \
68
NULL, \
69
(__TARGET_ADDR), \
70
(__REGION_ADDR), \
71
(__COLOUR), \
72
__VA_ARGS__)
73
74
#define arm_2d_gray8_fill_colour_with_4pts_alpha_gradient_and_opacity( \
75
__TARGET_ADDR,
/* target tile address*/
\
76
__REGION_ADDR,
/* target region address*/
\
77
__COLOUR,
/* target colour */
\
78
__OPACITY,
/* opacity */
\
79
...)
/* sample points */
\
80
arm_2dp_gray8_fill_colour_with_4pts_alpha_gradient_and_opacity( \
81
NULL, \
82
(__TARGET_ADDR), \
83
(__REGION_ADDR), \
84
(__COLOUR), \
85
(__OPACITY), \
86
__VA_ARGS__)
87
88
#define arm_2d_gray8_fill_colour_with_3pts_alpha_gradient( \
89
__TARGET_ADDR,
/* target tile address*/
\
90
__REGION_ADDR,
/* target region address*/
\
91
__COLOUR,
/* target colour */
\
92
...)
/* sample points */
\
93
arm_2dp_gray8_fill_colour_with_3pts_alpha_gradient( \
94
NULL, \
95
(__TARGET_ADDR), \
96
(__REGION_ADDR), \
97
(__COLOUR), \
98
__VA_ARGS__)
99
100
#define arm_2d_gray8_fill_colour_with_3pts_alpha_gradient_and_opacity( \
101
__TARGET_ADDR,
/* target tile address*/
\
102
__REGION_ADDR,
/* target region address*/
\
103
__COLOUR,
/* target colour */
\
104
__OPACITY,
/* opacity */
\
105
...)
/* sample points */
\
106
arm_2dp_gray8_fill_colour_with_3pts_alpha_gradient_and_opacity( \
107
NULL, \
108
(__TARGET_ADDR), \
109
(__REGION_ADDR), \
110
(__COLOUR), \
111
(__OPACITY), \
112
__VA_ARGS__)
113
114
#define arm_2d_gray8_fill_colour_with_vertical_alpha_gradient( \
115
__TARGET_ADDR,
/* target tile address*/
\
116
__REGION_ADDR,
/* target region address*/
\
117
__COLOUR,
/* target colour */
\
118
...)
/* sample points */
\
119
arm_2dp_gray8_fill_colour_with_vertical_alpha_gradient( \
120
NULL, \
121
(__TARGET_ADDR), \
122
(__REGION_ADDR), \
123
(__COLOUR), \
124
__VA_ARGS__)
125
126
#define arm_2d_gray8_fill_colour_with_vertical_alpha_gradient_and_opacity( \
127
__TARGET_ADDR,
/* target tile address*/
\
128
__REGION_ADDR,
/* target region address*/
\
129
__COLOUR,
/* target colour */
\
130
__OPACITY,
/* opacity */
\
131
...)
/* sample points */
\
132
arm_2dp_gray8_fill_colour_with_vertical_alpha_gradient_and_opacity( \
133
NULL, \
134
(__TARGET_ADDR), \
135
(__REGION_ADDR), \
136
(__COLOUR), \
137
(__OPACITY), \
138
__VA_ARGS__)
139
140
#define arm_2d_gray8_fill_colour_with_horizontal_alpha_gradient( \
141
__TARGET_ADDR,
/* target tile address*/
\
142
__REGION_ADDR,
/* target region address*/
\
143
__COLOUR,
/* target colour */
\
144
...)
/* sample points */
\
145
arm_2dp_gray8_fill_colour_with_horizontal_alpha_gradient( \
146
NULL, \
147
(__TARGET_ADDR), \
148
(__REGION_ADDR), \
149
(__COLOUR), \
150
__VA_ARGS__)
151
152
#define arm_2d_gray8_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
153
__TARGET_ADDR,
/* target tile address*/
\
154
__REGION_ADDR,
/* target region address*/
\
155
__COLOUR,
/* target colour */
\
156
__OPACITY,
/* opacity */
\
157
...)
/* sample points */
\
158
arm_2dp_gray8_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
159
NULL, \
160
(__TARGET_ADDR), \
161
(__REGION_ADDR), \
162
(__COLOUR), \
163
(__OPACITY), \
164
__VA_ARGS__)
165
166
#define arm_2d_rgb565_fill_colour_with_4pts_alpha_gradient( \
167
__TARGET_ADDR,
/* target tile address*/
\
168
__REGION_ADDR,
/* target region address*/
\
169
__COLOUR,
/* target colour */
\
170
...)
/* sample points */
\
171
arm_2dp_rgb565_fill_colour_with_4pts_alpha_gradient( \
172
NULL, \
173
(__TARGET_ADDR), \
174
(__REGION_ADDR), \
175
(__COLOUR), \
176
__VA_ARGS__)
177
178
#define arm_2d_rgb565_fill_colour_with_4pts_alpha_gradient_and_opacity( \
179
__TARGET_ADDR,
/* target tile address*/
\
180
__REGION_ADDR,
/* target region address*/
\
181
__COLOUR,
/* target colour */
\
182
__OPACITY,
/* opacity */
\
183
...)
/* sample points */
\
184
arm_2dp_rgb565_fill_colour_with_4pts_alpha_gradient_and_opacity( \
185
NULL, \
186
(__TARGET_ADDR), \
187
(__REGION_ADDR), \
188
(__COLOUR), \
189
(__OPACITY), \
190
__VA_ARGS__)
191
192
#define arm_2d_rgb565_fill_colour_with_3pts_alpha_gradient( \
193
__TARGET_ADDR,
/* target tile address*/
\
194
__REGION_ADDR,
/* target region address*/
\
195
__COLOUR,
/* target colour */
\
196
...)
/* sample points */
\
197
arm_2dp_rgb565_fill_colour_with_3pts_alpha_gradient( \
198
NULL, \
199
(__TARGET_ADDR), \
200
(__REGION_ADDR), \
201
(__COLOUR), \
202
__VA_ARGS__)
203
204
#define arm_2d_rgb565_fill_colour_with_3pts_alpha_gradient_and_opacity( \
205
__TARGET_ADDR,
/* target tile address*/
\
206
__REGION_ADDR,
/* target region address*/
\
207
__COLOUR,
/* target colour */
\
208
__OPACITY,
/* opacity */
\
209
...)
/* sample points */
\
210
arm_2dp_rgb565_fill_colour_with_3pts_alpha_gradient_and_opacity( \
211
NULL, \
212
(__TARGET_ADDR), \
213
(__REGION_ADDR), \
214
(__COLOUR), \
215
(__OPACITY), \
216
__VA_ARGS__)
217
218
#define arm_2d_rgb565_fill_colour_with_vertical_alpha_gradient( \
219
__TARGET_ADDR,
/* target tile address*/
\
220
__REGION_ADDR,
/* target region address*/
\
221
__COLOUR,
/* target colour */
\
222
...)
/* sample points */
\
223
arm_2dp_rgb565_fill_colour_with_vertical_alpha_gradient( \
224
NULL, \
225
(__TARGET_ADDR), \
226
(__REGION_ADDR), \
227
(__COLOUR), \
228
__VA_ARGS__)
229
230
#define arm_2d_rgb565_fill_colour_with_vertical_alpha_gradient_and_opacity( \
231
__TARGET_ADDR,
/* target tile address*/
\
232
__REGION_ADDR,
/* target region address*/
\
233
__COLOUR,
/* target colour */
\
234
__OPACITY,
/* opacity */
\
235
...)
/* sample points */
\
236
arm_2dp_rgb565_fill_colour_with_vertical_alpha_gradient_and_opacity( \
237
NULL, \
238
(__TARGET_ADDR), \
239
(__REGION_ADDR), \
240
(__COLOUR), \
241
(__OPACITY), \
242
__VA_ARGS__)
243
244
#define arm_2d_rgb565_fill_colour_with_horizontal_alpha_gradient( \
245
__TARGET_ADDR,
/* target tile address*/
\
246
__REGION_ADDR,
/* target region address*/
\
247
__COLOUR,
/* target colour */
\
248
...)
/* sample points */
\
249
arm_2dp_rgb565_fill_colour_with_horizontal_alpha_gradient( \
250
NULL, \
251
(__TARGET_ADDR), \
252
(__REGION_ADDR), \
253
(__COLOUR), \
254
__VA_ARGS__)
255
256
#define arm_2d_rgb565_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
257
__TARGET_ADDR,
/* target tile address*/
\
258
__REGION_ADDR,
/* target region address*/
\
259
__COLOUR,
/* target colour */
\
260
__OPACITY,
/* opacity */
\
261
...)
/* sample points */
\
262
arm_2dp_rgb565_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
263
NULL, \
264
(__TARGET_ADDR), \
265
(__REGION_ADDR), \
266
(__COLOUR), \
267
(__OPACITY), \
268
__VA_ARGS__)
269
270
#define arm_2d_cccn888_fill_colour_with_4pts_alpha_gradient( \
271
__TARGET_ADDR,
/* target tile address*/
\
272
__REGION_ADDR,
/* target region address*/
\
273
__COLOUR,
/* target colour */
\
274
...)
/* sample points */
\
275
arm_2dp_cccn888_fill_colour_with_4pts_alpha_gradient( \
276
NULL, \
277
(__TARGET_ADDR), \
278
(__REGION_ADDR), \
279
(__COLOUR), \
280
__VA_ARGS__)
281
282
#define arm_2d_cccn888_fill_colour_with_4pts_alpha_gradient_and_opacity( \
283
__TARGET_ADDR,
/* target tile address*/
\
284
__REGION_ADDR,
/* target region address*/
\
285
__COLOUR,
/* target colour */
\
286
__OPACITY,
/* opacity */
\
287
...)
/* sample points */
\
288
arm_2dp_cccn888_fill_colour_with_4pts_alpha_gradient_and_opacity( \
289
NULL, \
290
(__TARGET_ADDR), \
291
(__REGION_ADDR), \
292
(__COLOUR), \
293
(__OPACITY), \
294
__VA_ARGS__)
295
296
#define arm_2d_cccn888_fill_colour_with_3pts_alpha_gradient( \
297
__TARGET_ADDR,
/* target tile address*/
\
298
__REGION_ADDR,
/* target region address*/
\
299
__COLOUR,
/* target colour */
\
300
...)
/* sample points */
\
301
arm_2dp_cccn888_fill_colour_with_3pts_alpha_gradient( \
302
NULL, \
303
(__TARGET_ADDR), \
304
(__REGION_ADDR), \
305
(__COLOUR), \
306
__VA_ARGS__)
307
308
#define arm_2d_cccn888_fill_colour_with_3pts_alpha_gradient_and_opacity( \
309
__TARGET_ADDR,
/* target tile address*/
\
310
__REGION_ADDR,
/* target region address*/
\
311
__COLOUR,
/* target colour */
\
312
__OPACITY,
/* opacity */
\
313
...)
/* sample points */
\
314
arm_2dp_cccn888_fill_colour_with_3pts_alpha_gradient_and_opacity( \
315
NULL, \
316
(__TARGET_ADDR), \
317
(__REGION_ADDR), \
318
(__COLOUR), \
319
(__OPACITY), \
320
__VA_ARGS__)
321
322
#define arm_2d_cccn888_fill_colour_with_vertical_alpha_gradient( \
323
__TARGET_ADDR,
/* target tile address*/
\
324
__REGION_ADDR,
/* target region address*/
\
325
__COLOUR,
/* target colour */
\
326
...)
/* sample points */
\
327
arm_2dp_cccn888_fill_colour_with_vertical_alpha_gradient( \
328
NULL, \
329
(__TARGET_ADDR), \
330
(__REGION_ADDR), \
331
(__COLOUR), \
332
__VA_ARGS__)
333
334
#define arm_2d_cccn888_fill_colour_with_vertical_alpha_gradient_and_opacity( \
335
__TARGET_ADDR,
/* target tile address*/
\
336
__REGION_ADDR,
/* target region address*/
\
337
__COLOUR,
/* target colour */
\
338
__OPACITY,
/* opacity */
\
339
...)
/* sample points */
\
340
arm_2dp_cccn888_fill_colour_with_vertical_alpha_gradient_and_opacity( \
341
NULL, \
342
(__TARGET_ADDR), \
343
(__REGION_ADDR), \
344
(__COLOUR), \
345
(__OPACITY), \
346
__VA_ARGS__)
347
348
#define arm_2d_cccn888_fill_colour_with_horizontal_alpha_gradient( \
349
__TARGET_ADDR,
/* target tile address*/
\
350
__REGION_ADDR,
/* target region address*/
\
351
__COLOUR,
/* target colour */
\
352
...)
/* sample points */
\
353
arm_2dp_cccn888_fill_colour_with_horizontal_alpha_gradient( \
354
NULL, \
355
(__TARGET_ADDR), \
356
(__REGION_ADDR), \
357
(__COLOUR), \
358
__VA_ARGS__)
359
360
#define arm_2d_cccn888_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
361
__TARGET_ADDR,
/* target tile address*/
\
362
__REGION_ADDR,
/* target region address*/
\
363
__COLOUR,
/* target colour */
\
364
__OPACITY,
/* opacity */
\
365
...)
/* sample points */
\
366
arm_2dp_cccn888_fill_colour_with_horizontal_alpha_gradient_and_opacity( \
367
NULL, \
368
(__TARGET_ADDR), \
369
(__REGION_ADDR), \
370
(__COLOUR), \
371
(__OPACITY), \
372
__VA_ARGS__)
373
374
/*============================ TYPES =========================================*/
375
376
typedef
struct
arm_2d_fill_cl_4p_al_grd_t
arm_2d_fill_cl_4p_al_grd_t
;
377
378
struct
arm_2d_fill_cl_4p_al_grd_t
{
379
ARM_PRIVATE(
380
implement
(
arm_2d_op_t
);
/* inherit from base class arm_2d_op_cp_t*/
381
382
union
{
383
uint8_t chColour;
//!< 8bit colour
384
uint16_t hwColour;
//!< 16bit colour
385
uint32_t wColour;
//!< 32bit colour
386
};
387
388
arm_2d_alpha_samples_4pts_t
tSamplePoints;
389
)
390
};
391
392
typedef
struct
arm_2d_fill_cl_3p_al_grd_t
arm_2d_fill_cl_3p_al_grd_t
;
393
394
struct
arm_2d_fill_cl_3p_al_grd_t
{
395
ARM_PRIVATE(
396
implement
(
arm_2d_op_t
);
/* inherit from base class arm_2d_op_cp_t*/
397
398
union
{
399
uint8_t chColour;
//!< 8bit colour
400
uint16_t hwColour;
//!< 16bit colour
401
uint32_t wColour;
//!< 32bit colour
402
};
403
404
arm_2d_alpha_samples_3pts_t
tSamplePoints;
405
)
406
};
407
408
typedef
struct
arm_2d_fill_cl_2p_al_grd_t
arm_2d_fill_cl_2p_al_grd_t
;
409
410
struct
arm_2d_fill_cl_2p_al_grd_t
{
411
ARM_PRIVATE(
412
implement
(
arm_2d_op_t
);
/* inherit from base class arm_2d_op_cp_t*/
413
414
union
{
415
uint8_t chColour;
//!< 8bit colour
416
uint16_t hwColour;
//!< 16bit colour
417
uint32_t wColour;
//!< 32bit colour
418
};
419
420
arm_2d_alpha_samples_2pts_t
tSamplePoints;
421
)
422
};
423
424
/*============================ GLOBAL VARIABLES ==============================*/
425
/*============================ PROTOTYPES ====================================*/
426
427
/*!
428
* \brief fill the target region with a given colour and an alpha gradient that
429
* is defined by 4 corner sample points.
430
* \param[in] ptOP the control block, NULL means using the default control block
431
* \param[in] ptTarget the target tile
432
* \param[in] ptRegion the target region
433
* \param[in] tColour the target colour
434
* \param[in] tSamplePoints the 4 corner sample points.
435
* \return arm_fsm_rt_t the operations result
436
*/
437
extern
438
ARM_NONNULL(2)
439
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_4pts_alpha_gradient
(
440
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
441
const
arm_2d_tile_t
*ptTarget,
442
const
arm_2d_region_t
*ptRegion,
443
arm_2d_color_gray8_t
tColour,
444
arm_2d_alpha_samples_4pts_t
tSamplePoints);
445
446
/*!
447
* \brief fill the target region with a given colour, an alpha gradient (that
448
* is defined by 4 corner sample points) and an opacity
449
* \param[in] ptOP the control block, NULL means using the default control block
450
* \param[in] ptTarget the target tile
451
* \param[in] ptRegion the target region
452
* \param[in] tColour the target colour
453
* \param[in] chOpacity the opacity ratio
454
* \param[in] tSamplePoints the 4 corner sample points.
455
* \return arm_fsm_rt_t the operations result
456
*/
457
extern
458
ARM_NONNULL(2)
459
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_4pts_alpha_gradient_and_opacity
(
460
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
461
const
arm_2d_tile_t
*ptTarget,
462
const
arm_2d_region_t
*ptRegion,
463
arm_2d_color_gray8_t
tColour,
464
uint8_t chOpacity,
465
arm_2d_alpha_samples_4pts_t
tSamplePoints);
466
467
/*!
468
* \brief fill the target region with a given colour and an alpha gradient that
469
* is defined by 3 corner sample points.
470
* \param[in] ptOP the control block, NULL means using the default control block
471
* \param[in] ptTarget the target tile
472
* \param[in] ptRegion the target region
473
* \param[in] tColour the target colour
474
* \param[in] tSamplePoints the 3 corner sample points.
475
* \return arm_fsm_rt_t the operations result
476
*/
477
extern
478
ARM_NONNULL(2)
479
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_3pts_alpha_gradient
(
480
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
481
const
arm_2d_tile_t
*ptTarget,
482
const
arm_2d_region_t
*ptRegion,
483
arm_2d_color_gray8_t
tColour,
484
arm_2d_alpha_samples_3pts_t
tSamplePoints);
485
486
/*!
487
* \brief fill the target region with a given colour, an alpha gradient (that
488
* is defined by 3 corner sample points) and an opacity
489
* \param[in] ptOP the control block, NULL means using the default control block
490
* \param[in] ptTarget the target tile
491
* \param[in] ptRegion the target region
492
* \param[in] tColour the target colour
493
* \param[in] chOpacity the opacity ratio
494
* \param[in] tSamplePoints the 3 corner sample points.
495
* \return arm_fsm_rt_t the operations result
496
*/
497
extern
498
ARM_NONNULL(2)
499
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_3pts_alpha_gradient_and_opacity
(
500
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
501
const
arm_2d_tile_t
*ptTarget,
502
const
arm_2d_region_t
*ptRegion,
503
arm_2d_color_gray8_t
tColour,
504
uint8_t chOpacity,
505
arm_2d_alpha_samples_3pts_t
tSamplePoints);
506
507
508
/*!
509
* \brief fill the target region with a given colour and a vertical alpha gradient
510
* (that is defined by 2 corner sample points).
511
* \param[in] ptOP the control block, NULL means using the default control block
512
* \param[in] ptTarget the target tile
513
* \param[in] ptRegion the target region
514
* \param[in] tColour the target colour
515
* \param[in] tSamplePoints the 2 corner sample points.
516
* \return arm_fsm_rt_t the operations result
517
*/
518
extern
519
ARM_NONNULL(2)
520
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_vertical_alpha_gradient
(
521
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
522
const
arm_2d_tile_t
*ptTarget,
523
const
arm_2d_region_t
*ptRegion,
524
arm_2d_color_gray8_t
tColour,
525
arm_2d_alpha_samples_2pts_t
tSamplePoints);
526
527
/*!
528
* \brief fill the target region with a given colour, a vertical alpha gradient
529
* (that is defined by 2 corner sample points) and an opacity
530
* \param[in] ptOP the control block, NULL means using the default control block
531
* \param[in] ptTarget the target tile
532
* \param[in] ptRegion the target region
533
* \param[in] tColour the target colour
534
* \param[in] chOpacity the opacity ratio
535
* \param[in] tSamplePoints the 2 corner sample points.
536
* \return arm_fsm_rt_t the operations result
537
*/
538
extern
539
ARM_NONNULL(2)
540
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_vertical_alpha_gradient_and_opacity
(
541
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
542
const
arm_2d_tile_t
*ptTarget,
543
const
arm_2d_region_t
*ptRegion,
544
arm_2d_color_gray8_t
tColour,
545
uint8_t chOpacity,
546
arm_2d_alpha_samples_2pts_t
tSamplePoints);
547
548
/*!
549
* \brief fill the target region with a given colour and a horizontal alpha
550
* gradient (that is defined by 2 corner sample points).
551
* \param[in] ptOP the control block, NULL means using the default control block
552
* \param[in] ptTarget the target tile
553
* \param[in] ptRegion the target region
554
* \param[in] tColour the target colour
555
* \param[in] tSamplePoints the 2 corner sample points.
556
* \return arm_fsm_rt_t the operations result
557
*/
558
extern
559
ARM_NONNULL(2)
560
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_horizontal_alpha_gradient
(
561
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
562
const
arm_2d_tile_t
*ptTarget,
563
const
arm_2d_region_t
*ptRegion,
564
arm_2d_color_gray8_t
tColour,
565
arm_2d_alpha_samples_2pts_t
tSamplePoints);
566
567
/*!
568
* \brief fill the target region with a given colour, a horizontal alpha
569
* gradient (that is defined by 2 corner sample points) and an opacity
570
* \param[in] ptOP the control block, NULL means using the default control block
571
* \param[in] ptTarget the target tile
572
* \param[in] ptRegion the target region
573
* \param[in] tColour the target colour
574
* \param[in] chOpacity the opacity ratio
575
* \param[in] tSamplePoints the 2 corner sample points.
576
* \return arm_fsm_rt_t the operations result
577
*/
578
extern
579
ARM_NONNULL(2)
580
arm_fsm_rt_t
arm_2dp_gray8_fill_colour_with_horizontal_alpha_gradient_and_opacity
(
581
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
582
const
arm_2d_tile_t
*ptTarget,
583
const
arm_2d_region_t
*ptRegion,
584
arm_2d_color_gray8_t
tColour,
585
uint8_t chOpacity,
586
arm_2d_alpha_samples_2pts_t
tSamplePoints);
587
588
/*!
589
* \brief fill the target region with a given colour and an alpha gradient that
590
* is defined by 4 corner sample points.
591
* \param[in] ptOP the control block, NULL means using the default control block
592
* \param[in] ptTarget the target tile
593
* \param[in] ptRegion the target region
594
* \param[in] tColour the target colour
595
* \param[in] tSamplePoints the 4 corner sample points.
596
* \return arm_fsm_rt_t the operations result
597
*/
598
extern
599
ARM_NONNULL(2)
600
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_4pts_alpha_gradient
(
601
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
602
const
arm_2d_tile_t
*ptTarget,
603
const
arm_2d_region_t
*ptRegion,
604
arm_2d_color_rgb565_t
tColour,
605
arm_2d_alpha_samples_4pts_t
tSamplePoints);
606
607
/*!
608
* \brief fill the target region with a given colour, an alpha gradient (that
609
* is defined by 4 corner sample points) and an opacity
610
* \param[in] ptOP the control block, NULL means using the default control block
611
* \param[in] ptTarget the target tile
612
* \param[in] ptRegion the target region
613
* \param[in] tColour the target colour
614
* \param[in] chOpacity the opacity ratio
615
* \param[in] tSamplePoints the 4 corner sample points.
616
* \return arm_fsm_rt_t the operations result
617
*/
618
extern
619
ARM_NONNULL(2)
620
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_4pts_alpha_gradient_and_opacity
(
621
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
622
const
arm_2d_tile_t
*ptTarget,
623
const
arm_2d_region_t
*ptRegion,
624
arm_2d_color_rgb565_t
tColour,
625
uint8_t chOpacity,
626
arm_2d_alpha_samples_4pts_t
tSamplePoints);
627
628
/*!
629
* \brief fill the target region with a given colour and an alpha gradient that
630
* is defined by 3 corner sample points.
631
* \param[in] ptOP the control block, NULL means using the default control block
632
* \param[in] ptTarget the target tile
633
* \param[in] ptRegion the target region
634
* \param[in] tColour the target colour
635
* \param[in] tSamplePoints the 3 corner sample points.
636
* \return arm_fsm_rt_t the operations result
637
*/
638
extern
639
ARM_NONNULL(2)
640
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_3pts_alpha_gradient
(
641
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
642
const
arm_2d_tile_t
*ptTarget,
643
const
arm_2d_region_t
*ptRegion,
644
arm_2d_color_rgb565_t
tColour,
645
arm_2d_alpha_samples_3pts_t
tSamplePoints);
646
647
/*!
648
* \brief fill the target region with a given colour, an alpha gradient (that
649
* is defined by 3 corner sample points) and an opacity
650
* \param[in] ptOP the control block, NULL means using the default control block
651
* \param[in] ptTarget the target tile
652
* \param[in] ptRegion the target region
653
* \param[in] tColour the target colour
654
* \param[in] chOpacity the opacity ratio
655
* \param[in] tSamplePoints the 3 corner sample points.
656
* \return arm_fsm_rt_t the operations result
657
*/
658
extern
659
ARM_NONNULL(2)
660
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_3pts_alpha_gradient_and_opacity
(
661
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
662
const
arm_2d_tile_t
*ptTarget,
663
const
arm_2d_region_t
*ptRegion,
664
arm_2d_color_rgb565_t
tColour,
665
uint8_t chOpacity,
666
arm_2d_alpha_samples_3pts_t
tSamplePoints);
667
668
669
/*!
670
* \brief fill the target region with a given colour and a vertical alpha gradient
671
* (that is defined by 2 corner sample points).
672
* \param[in] ptOP the control block, NULL means using the default control block
673
* \param[in] ptTarget the target tile
674
* \param[in] ptRegion the target region
675
* \param[in] tColour the target colour
676
* \param[in] tSamplePoints the 2 corner sample points.
677
* \return arm_fsm_rt_t the operations result
678
*/
679
extern
680
ARM_NONNULL(2)
681
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_vertical_alpha_gradient
(
682
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
683
const
arm_2d_tile_t
*ptTarget,
684
const
arm_2d_region_t
*ptRegion,
685
arm_2d_color_rgb565_t
tColour,
686
arm_2d_alpha_samples_2pts_t
tSamplePoints);
687
688
/*!
689
* \brief fill the target region with a given colour, a vertical alpha gradient
690
* (that is defined by 2 corner sample points) and an opacity
691
* \param[in] ptOP the control block, NULL means using the default control block
692
* \param[in] ptTarget the target tile
693
* \param[in] ptRegion the target region
694
* \param[in] tColour the target colour
695
* \param[in] chOpacity the opacity ratio
696
* \param[in] tSamplePoints the 2 corner sample points.
697
* \return arm_fsm_rt_t the operations result
698
*/
699
extern
700
ARM_NONNULL(2)
701
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_vertical_alpha_gradient_and_opacity
(
702
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
703
const
arm_2d_tile_t
*ptTarget,
704
const
arm_2d_region_t
*ptRegion,
705
arm_2d_color_rgb565_t
tColour,
706
uint8_t chOpacity,
707
arm_2d_alpha_samples_2pts_t
tSamplePoints);
708
709
/*!
710
* \brief fill the target region with a given colour and a horizontal alpha
711
* gradient (that is defined by 2 corner sample points).
712
* \param[in] ptOP the control block, NULL means using the default control block
713
* \param[in] ptTarget the target tile
714
* \param[in] ptRegion the target region
715
* \param[in] tColour the target colour
716
* \param[in] tSamplePoints the 2 corner sample points.
717
* \return arm_fsm_rt_t the operations result
718
*/
719
extern
720
ARM_NONNULL(2)
721
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_horizontal_alpha_gradient
(
722
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
723
const
arm_2d_tile_t
*ptTarget,
724
const
arm_2d_region_t
*ptRegion,
725
arm_2d_color_rgb565_t
tColour,
726
arm_2d_alpha_samples_2pts_t
tSamplePoints);
727
728
/*!
729
* \brief fill the target region with a given colour, a horizontal alpha
730
* gradient (that is defined by 2 corner sample points) and an opacity
731
* \param[in] ptOP the control block, NULL means using the default control block
732
* \param[in] ptTarget the target tile
733
* \param[in] ptRegion the target region
734
* \param[in] tColour the target colour
735
* \param[in] chOpacity the opacity ratio
736
* \param[in] tSamplePoints the 2 corner sample points.
737
* \return arm_fsm_rt_t the operations result
738
*/
739
extern
740
ARM_NONNULL(2)
741
arm_fsm_rt_t
arm_2dp_rgb565_fill_colour_with_horizontal_alpha_gradient_and_opacity
(
742
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
743
const
arm_2d_tile_t
*ptTarget,
744
const
arm_2d_region_t
*ptRegion,
745
arm_2d_color_rgb565_t
tColour,
746
uint8_t chOpacity,
747
arm_2d_alpha_samples_2pts_t
tSamplePoints);
748
749
/*!
750
* \brief fill the target region with a given colour and an alpha gradient that
751
* is defined by 4 corner sample points.
752
* \param[in] ptOP the control block, NULL means using the default control block
753
* \param[in] ptTarget the target tile
754
* \param[in] ptRegion the target region
755
* \param[in] tColour the target colour
756
* \param[in] tSamplePoints the 4 corner sample points.
757
* \return arm_fsm_rt_t the operations result
758
*/
759
extern
760
ARM_NONNULL(2)
761
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_4pts_alpha_gradient
(
762
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
763
const
arm_2d_tile_t
*ptTarget,
764
const
arm_2d_region_t
*ptRegion,
765
arm_2d_color_cccn888_t
tColour,
766
arm_2d_alpha_samples_4pts_t
tSamplePoints);
767
768
/*!
769
* \brief fill the target region with a given colour, an alpha gradient (that
770
* is defined by 4 corner sample points) and an opacity
771
* \param[in] ptOP the control block, NULL means using the default control block
772
* \param[in] ptTarget the target tile
773
* \param[in] ptRegion the target region
774
* \param[in] tColour the target colour
775
* \param[in] chOpacity the opacity ratio
776
* \param[in] tSamplePoints the 4 corner sample points.
777
* \return arm_fsm_rt_t the operations result
778
*/
779
extern
780
ARM_NONNULL(2)
781
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_4pts_alpha_gradient_and_opacity
(
782
arm_2d_fill_cl_4p_al_grd_t
*ptOP,
783
const
arm_2d_tile_t
*ptTarget,
784
const
arm_2d_region_t
*ptRegion,
785
arm_2d_color_cccn888_t
tColour,
786
uint8_t chOpacity,
787
arm_2d_alpha_samples_4pts_t
tSamplePoints);
788
789
/*!
790
* \brief fill the target region with a given colour and an alpha gradient that
791
* is defined by 3 corner sample points.
792
* \param[in] ptOP the control block, NULL means using the default control block
793
* \param[in] ptTarget the target tile
794
* \param[in] ptRegion the target region
795
* \param[in] tColour the target colour
796
* \param[in] tSamplePoints the 3 corner sample points.
797
* \return arm_fsm_rt_t the operations result
798
*/
799
extern
800
ARM_NONNULL(2)
801
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_3pts_alpha_gradient
(
802
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
803
const
arm_2d_tile_t
*ptTarget,
804
const
arm_2d_region_t
*ptRegion,
805
arm_2d_color_cccn888_t
tColour,
806
arm_2d_alpha_samples_3pts_t
tSamplePoints);
807
808
/*!
809
* \brief fill the target region with a given colour, an alpha gradient (that
810
* is defined by 3 corner sample points) and an opacity
811
* \param[in] ptOP the control block, NULL means using the default control block
812
* \param[in] ptTarget the target tile
813
* \param[in] ptRegion the target region
814
* \param[in] tColour the target colour
815
* \param[in] chOpacity the opacity ratio
816
* \param[in] tSamplePoints the 3 corner sample points.
817
* \return arm_fsm_rt_t the operations result
818
*/
819
extern
820
ARM_NONNULL(2)
821
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_3pts_alpha_gradient_and_opacity
(
822
arm_2d_fill_cl_3p_al_grd_t
*ptOP,
823
const
arm_2d_tile_t
*ptTarget,
824
const
arm_2d_region_t
*ptRegion,
825
arm_2d_color_cccn888_t
tColour,
826
uint8_t chOpacity,
827
arm_2d_alpha_samples_3pts_t
tSamplePoints);
828
829
830
/*!
831
* \brief fill the target region with a given colour and a vertical alpha gradient
832
* (that is defined by 2 corner sample points).
833
* \param[in] ptOP the control block, NULL means using the default control block
834
* \param[in] ptTarget the target tile
835
* \param[in] ptRegion the target region
836
* \param[in] tColour the target colour
837
* \param[in] tSamplePoints the 2 corner sample points.
838
* \return arm_fsm_rt_t the operations result
839
*/
840
extern
841
ARM_NONNULL(2)
842
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_vertical_alpha_gradient
(
843
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
844
const
arm_2d_tile_t
*ptTarget,
845
const
arm_2d_region_t
*ptRegion,
846
arm_2d_color_cccn888_t
tColour,
847
arm_2d_alpha_samples_2pts_t
tSamplePoints);
848
849
/*!
850
* \brief fill the target region with a given colour, a vertical alpha gradient
851
* (that is defined by 2 corner sample points) and an opacity
852
* \param[in] ptOP the control block, NULL means using the default control block
853
* \param[in] ptTarget the target tile
854
* \param[in] ptRegion the target region
855
* \param[in] tColour the target colour
856
* \param[in] chOpacity the opacity ratio
857
* \param[in] tSamplePoints the 2 corner sample points.
858
* \return arm_fsm_rt_t the operations result
859
*/
860
extern
861
ARM_NONNULL(2)
862
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_vertical_alpha_gradient_and_opacity
(
863
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
864
const
arm_2d_tile_t
*ptTarget,
865
const
arm_2d_region_t
*ptRegion,
866
arm_2d_color_cccn888_t
tColour,
867
uint8_t chOpacity,
868
arm_2d_alpha_samples_2pts_t
tSamplePoints);
869
870
/*!
871
* \brief fill the target region with a given colour and a horizontal alpha
872
* gradient (that is defined by 2 corner sample points).
873
* \param[in] ptOP the control block, NULL means using the default control block
874
* \param[in] ptTarget the target tile
875
* \param[in] ptRegion the target region
876
* \param[in] tColour the target colour
877
* \param[in] tSamplePoints the 2 corner sample points.
878
* \return arm_fsm_rt_t the operations result
879
*/
880
extern
881
ARM_NONNULL(2)
882
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_horizontal_alpha_gradient
(
883
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
884
const
arm_2d_tile_t
*ptTarget,
885
const
arm_2d_region_t
*ptRegion,
886
arm_2d_color_cccn888_t
tColour,
887
arm_2d_alpha_samples_2pts_t
tSamplePoints);
888
889
/*!
890
* \brief fill the target region with a given colour, a horizontal alpha
891
* gradient (that is defined by 2 corner sample points) and an opacity
892
* \param[in] ptOP the control block, NULL means using the default control block
893
* \param[in] ptTarget the target tile
894
* \param[in] ptRegion the target region
895
* \param[in] tColour the target colour
896
* \param[in] chOpacity the opacity ratio
897
* \param[in] tSamplePoints the 2 corner sample points.
898
* \return arm_fsm_rt_t the operations result
899
*/
900
extern
901
ARM_NONNULL(2)
902
arm_fsm_rt_t
arm_2dp_cccn888_fill_colour_with_horizontal_alpha_gradient_and_opacity
(
903
arm_2d_fill_cl_2p_al_grd_t
*ptOP,
904
const
arm_2d_tile_t
*ptTarget,
905
const
arm_2d_region_t
*ptRegion,
906
arm_2d_color_cccn888_t
tColour,
907
uint8_t chOpacity,
908
arm_2d_alpha_samples_2pts_t
tSamplePoints);
909
910
/*! @} */
911
912
#if defined(__clang__)
913
# pragma clang diagnostic pop
914
#endif
915
916
#ifdef __cplusplus
917
}
918
#endif
919
920
921
#endif
/* __ARM_2D_FILL_COLOUR_WITH_ALPHA_GRADIENT_H__ */
Library
Include
__arm_2d_fill_colour_with_alpha_gradient.h