Arm-2D  
2D Image Processing Library for Cortex-M Processors
 
Loading...
Searching...
No Matches
__arm_2d_fill_colour_with_horizontal_line_mask.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_horizontal_line_mask.h
22 * Description: APIs for colour-filling-with-horizontal-line-mask
23 *
24 * $Date: 17. April 2024
25 * $Revision: V.1.0.1
26 *
27 * Target Processor: Cortex-M cores
28 *
29 * -------------------------------------------------------------------- */
30
31#ifndef __ARM_2D_FILL_COLOUR_WITH_HORIZONTAL_LINE_MASK_H__
32#define __ARM_2D_FILL_COLOUR_WITH_HORIZONTAL_LINE_MASK_H__
33
34/*============================ INCLUDES ======================================*/
35#include "arm_2d_types.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#if defined(__clang__)
42# pragma clang diagnostic push
43# pragma clang diagnostic ignored "-Wunknown-warning-option"
44# pragma clang diagnostic ignored "-Wreserved-identifier"
45# pragma clang diagnostic ignored "-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#endif
51
52/*!
53 * \addtogroup gAlpha 4 Alpha Blending Operations
54 * @{
55 */
56
57/*============================ MACROS ========================================*/
58/*============================ MACROFIED FUNCTIONS ===========================*/
59
60#define arm_2d_gray8_fill_colour_with_horizontal_line_mask( \
61 __TARGET_ADDR, /* target tile address*/ \
62 __REGION_ADDR, /* target region address*/\
63 __MASK_ADDR, /* mask tile address */ \
64 __COLOUR) /* colour */ \
65 arm_2dp_gray8_fill_colour_with_horizontal_line_mask( \
66 NULL, \
67 (__TARGET_ADDR), \
68 (__REGION_ADDR), \
69 (__MASK_ADDR), \
70 (arm_2d_color_gray8_t){(__COLOUR).tValue})
71
72#define arm_2d_rgb565_fill_colour_with_horizontal_line_mask( \
73 __TARGET_ADDR, /* target tile address*/ \
74 __REGION_ADDR, /* target region address*/\
75 __MASK_ADDR, /* mask tile address */ \
76 __COLOUR) /* colour */ \
77 arm_2dp_rgb565_fill_colour_with_horizontal_line_mask( \
78 NULL, \
79 (__TARGET_ADDR), \
80 (__REGION_ADDR), \
81 (__MASK_ADDR), \
82 (arm_2d_color_rgb565_t){(__COLOUR).tValue})
83
84#define arm_2d_cccn888_fill_colour_with_horizontal_line_mask( \
85 __TARGET_ADDR, /* target tile address*/ \
86 __REGION_ADDR, /* target region address*/\
87 __MASK_ADDR, /* mask tile address */ \
88 __COLOUR) /* colour */ \
89 arm_2dp_cccn888_fill_colour_with_horizontal_line_mask( \
90 NULL, \
91 (__TARGET_ADDR), \
92 (__REGION_ADDR), \
93 (__MASK_ADDR), \
94 (arm_2d_color_cccn888_t){(__COLOUR).tValue})
95
96#define arm_2d_gray8_fill_colour_with_horizontal_line_mask_and_opacity( \
97 __TARGET_ADDR, /* target tile address*/ \
98 __REGION_ADDR, /* target region address*/\
99 __MASK_ADDR, /* mask tile address */ \
100 __COLOUR, /* colour */ \
101 __OPACITY) /* Opacity */ \
102 arm_2dp_gray8_fill_colour_with_horizontal_line_mask_and_opacity( \
103 NULL, \
104 (__TARGET_ADDR), \
105 (__REGION_ADDR), \
106 (__MASK_ADDR), \
107 (arm_2d_color_gray8_t){(__COLOUR).tValue}, \
108 (__OPACITY))
109
110#define arm_2d_rgb565_fill_colour_with_horizontal_line_mask_and_opacity( \
111 __TARGET_ADDR, /* target tile address*/ \
112 __REGION_ADDR, /* target region address*/\
113 __MASK_ADDR, /* mask tile address */ \
114 __COLOUR, /* colour */ \
115 __OPACITY) /* Opacity */ \
116 arm_2dp_rgb565_fill_colour_with_horizontal_line_mask_and_opacity( \
117 NULL, \
118 (__TARGET_ADDR), \
119 (__REGION_ADDR), \
120 (__MASK_ADDR), \
121 (arm_2d_color_rgb565_t){(__COLOUR).tValue}, \
122 (__OPACITY))
123
124#define arm_2d_cccn888_fill_colour_with_horizontal_line_mask_and_opacity( \
125 __TARGET_ADDR, /* target tile address*/ \
126 __REGION_ADDR, /* target region address*/\
127 __MASK_ADDR, /* mask tile address */ \
128 __COLOUR, /* colour */ \
129 __OPACITY) /* Opacity */ \
130 arm_2dp_cccn888_fill_colour_with_horizontal_line_mask_and_opacity( \
131 NULL, \
132 (__TARGET_ADDR), \
133 (__REGION_ADDR), \
134 (__MASK_ADDR), \
135 (arm_2d_color_cccn888_t){(__COLOUR).tValue}, \
136 (__OPACITY))
137
138/*============================ TYPES =========================================*/
139/*============================ GLOBAL VARIABLES ==============================*/
140/*============================ PROTOTYPES ====================================*/
141/*============================ LOCAL VARIABLES ===============================*/
142/*============================ IMPLEMENTATION ================================*/
143
144extern
145ARM_NONNULL(2,4)
146/*!
147 * \brief fill the target region with a specified colour and a horizontal line mask
148 * \param[in] ptOP the control block, NULL means using the default control block
149 * \param[in] ptTarget the target tile
150 * \param[in] ptRegion the target region
151 * \param[in] ptLineMsk the target line mask
152 * \param[in] tColour the target colour
153 * \return arm_fsm_rt_t the operations result
154 */
157 const arm_2d_tile_t *ptTarget,
158 const arm_2d_region_t *ptRegion,
159 const arm_2d_tile_t *ptLineMask,
160 arm_2d_color_gray8_t tColour);
161
162
163extern
164ARM_NONNULL(2,4)
165/*!
166 * \brief fill the target region with a specified colour, a horizontal line mask
167 * and opacity
168 * \param[in] ptOP the control block, NULL means using the default control block
169 * \param[in] ptTarget the target tile
170 * \param[in] ptRegion the target region
171 * \param[in] ptLineMsk the target line mask
172 * \param[in] tColour the target colour
173 * \param[in] chOpacity the opacity ratio
174 * \return arm_fsm_rt_t the operations result
175 */
178 const arm_2d_tile_t *ptTarget,
179 const arm_2d_region_t *ptRegion,
180 const arm_2d_tile_t *ptLineMask,
181 arm_2d_color_gray8_t tColour,
182 uint8_t chOpacity);
183
184extern
185ARM_NONNULL(2,4)
186/*!
187 * \brief fill the target region with a specified colour and a horizontal line mask
188 * \param[in] ptOP the control block, NULL means using the default control block
189 * \param[in] ptTarget the target tile
190 * \param[in] ptRegion the target region
191 * \param[in] ptLineMsk the target line mask
192 * \param[in] tColour the target colour
193 * \return arm_fsm_rt_t the operations result
194 */
197 const arm_2d_tile_t *ptTarget,
198 const arm_2d_region_t *ptRegion,
199 const arm_2d_tile_t *ptLineMask,
200 arm_2d_color_rgb565_t tColour);
201
202
203extern
204ARM_NONNULL(2,4)
205/*!
206 * \brief fill the target region with a specified colour, a horizontal line mask
207 * and opacity
208 * \param[in] ptOP the control block, NULL means using the default control block
209 * \param[in] ptTarget the target tile
210 * \param[in] ptRegion the target region
211 * \param[in] ptLineMsk the target line mask
212 * \param[in] tColour the target colour
213 * \param[in] chOpacity the opacity ratio
214 * \return arm_fsm_rt_t the operations result
215 */
218 const arm_2d_tile_t *ptTarget,
219 const arm_2d_region_t *ptRegion,
220 const arm_2d_tile_t *ptLineMask,
221 arm_2d_color_rgb565_t tColour,
222 uint8_t chOpacity);
223
224extern
225ARM_NONNULL(2,4)
226/*!
227 * \brief fill the target region with a specified colour and a horizontal line mask
228 * \param[in] ptOP the control block, NULL means using the default control block
229 * \param[in] ptTarget the target tile
230 * \param[in] ptRegion the target region
231 * \param[in] ptLineMsk the target line mask
232 * \param[in] tColour the target colour
233 * \return arm_fsm_rt_t the operations result
234 */
237 const arm_2d_tile_t *ptTarget,
238 const arm_2d_region_t *ptRegion,
239 const arm_2d_tile_t *ptLineMask,
240 arm_2d_color_cccn888_t tColour);
241
242
243extern
244ARM_NONNULL(2,4)
245/*!
246 * \brief fill the target region with a specified colour, a horizontal line mask
247 * and opacity
248 * \param[in] ptOP the control block, NULL means using the default control block
249 * \param[in] ptTarget the target tile
250 * \param[in] ptRegion the target region
251 * \param[in] ptLineMsk the target line mask
252 * \param[in] tColour the target colour
253 * \param[in] chOpacity the opacity ratio
254 * \return arm_fsm_rt_t the operations result
255 */
258 const arm_2d_tile_t *ptTarget,
259 const arm_2d_region_t *ptRegion,
260 const arm_2d_tile_t *ptLineMask,
262 uint8_t chOpacity);
263
264/*! @} */
265
266#if defined(__clang__)
267# pragma clang diagnostic pop
268#endif
269
270#ifdef __cplusplus
271}
272#endif
273
274
275#endif /* __ARM_2D_FILL_COLOUR_WITH_HORIZONTAL_LINE_MASK_H__ */