Arm-2D  
2D Image Processing Library for Cortex-M Processors
 
Loading...
Searching...
No Matches
__arm_2d_fill_colour_with_mask_and_mirroring.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_mask_and_mirroring.h
22 * Description: A private header file for
23 * colour-filling-with-mask-and-mirroring
24 *
25 * $Date: 20. Feb 2024
26 * $Revision: V.0.6.1
27 *
28 * Target Processor: Cortex-M cores
29 * -------------------------------------------------------------------- */
30
31#ifndef __ARM_2D_FILL_COLOUR_WITH_MIRRORING_H__
32#define __ARM_2D_FILL_COLOUR_WITH_MIRRORING_H__
33
34/*============================ INCLUDES ======================================*/
35
36#include "arm_2d_types.h"
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42#if defined(__clang__)
43# pragma clang diagnostic push
44# pragma clang diagnostic ignored "-Wunknown-warning-option"
45# pragma clang diagnostic ignored "-Wreserved-identifier"
46# pragma clang diagnostic ignored "-Wmissing-declarations"
47# pragma clang diagnostic ignored "-Wpadded"
48# pragma clang diagnostic ignored "-Wc11-extensions"
49#endif
50
51/*============================ MACROS ========================================*/
52/*!
53 * \addtogroup gAlpha 4 Alpha Blending Operations
54 * @{
55 */
56
57/*============================ MACROFIED FUNCTIONS ===========================*/
58
59#define arm_2d_gray8_fill_colour_with_mask_and_x_mirror( \
60 __TARGET_ADDR, /* target tile address*/ \
61 __REGION_ADDR, /* target region address*/\
62 __ALPHA_ADDR, /* alpha tile address */ \
63 __COLOUR) /* colour */ \
64 arm_2dp_gray8_fill_colour_with_mask_and_x_mirror( \
65 NULL, \
66 (__TARGET_ADDR), \
67 (__REGION_ADDR), \
68 (__ALPHA_ADDR), \
69 (__COLOUR))
70
71#define arm_2d_gray8_fill_colour_with_mask_x_mirror_and_opacity( \
72 __TARGET_ADDR, /* target tile address*/ \
73 __REGION_ADDR, /* target region address*/\
74 __ALPHA_ADDR, /* alpha tile address */ \
75 __COLOUR, /* colour */ \
76 __OPACITY) /* opacity */ \
77 arm_2dp_gray8_fill_colour_with_mask_x_mirror_and_opacity( \
78 NULL, \
79 (__TARGET_ADDR), \
80 (__REGION_ADDR), \
81 (__ALPHA_ADDR), \
82 (__COLOUR), \
83 (__OPACITY))
84
85#define arm_2d_gray8_fill_colour_with_mask_and_y_mirror( \
86 __TARGET_ADDR, /* target tile address*/ \
87 __REGION_ADDR, /* target region address*/\
88 __ALPHA_ADDR, /* alpha tile address */ \
89 __COLOUR) /* colour */ \
90 arm_2dp_gray8_fill_colour_with_mask_and_y_mirror( \
91 NULL, \
92 (__TARGET_ADDR), \
93 (__REGION_ADDR), \
94 (__ALPHA_ADDR), \
95 (__COLOUR))
96
97#define arm_2d_gray8_fill_colour_with_mask_y_mirror_and_opacity( \
98 __TARGET_ADDR, /* target tile address*/ \
99 __REGION_ADDR, /* target region address*/\
100 __ALPHA_ADDR, /* alpha tile address */ \
101 __COLOUR, /* colour */ \
102 __OPACITY) /* opacity */ \
103 arm_2dp_gray8_fill_colour_with_mask_y_mirror_and_opacity( \
104 NULL, \
105 (__TARGET_ADDR), \
106 (__REGION_ADDR), \
107 (__ALPHA_ADDR), \
108 (__COLOUR), \
109 (__OPACITY))
110
111#define arm_2d_gray8_fill_colour_with_mask_and_xy_mirror( \
112 __TARGET_ADDR, /* target tile address*/ \
113 __REGION_ADDR, /* target region address*/\
114 __ALPHA_ADDR, /* alpha tile address */ \
115 __COLOUR) /* colour */ \
116 arm_2dp_gray8_fill_colour_with_mask_and_xy_mirror( \
117 NULL, \
118 (__TARGET_ADDR), \
119 (__REGION_ADDR), \
120 (__ALPHA_ADDR), \
121 (__COLOUR))
122
123#define arm_2d_gray8_fill_colour_with_mask_xy_mirror_and_opacity( \
124 __TARGET_ADDR, /* target tile address*/ \
125 __REGION_ADDR, /* target region address*/\
126 __ALPHA_ADDR, /* alpha tile address */ \
127 __COLOUR, /* colour */ \
128 __OPACITY) /* opacity */ \
129 arm_2dp_gray8_fill_colour_with_mask_xy_mirror_and_opacity( \
130 NULL, \
131 (__TARGET_ADDR), \
132 (__REGION_ADDR), \
133 (__ALPHA_ADDR), \
134 (__COLOUR), \
135 (__OPACITY))
136
137#define arm_2d_rgb565_fill_colour_with_mask_and_x_mirror( \
138 __TARGET_ADDR, /* target tile address*/ \
139 __REGION_ADDR, /* target region address*/\
140 __ALPHA_ADDR, /* alpha tile address */ \
141 __COLOUR) /* colour */ \
142 arm_2dp_rgb565_fill_colour_with_mask_and_x_mirror( \
143 NULL, \
144 (__TARGET_ADDR), \
145 (__REGION_ADDR), \
146 (__ALPHA_ADDR), \
147 (__COLOUR))
148
149#define arm_2d_rgb565_fill_colour_with_mask_x_mirror_and_opacity( \
150 __TARGET_ADDR, /* target tile address*/ \
151 __REGION_ADDR, /* target region address*/\
152 __ALPHA_ADDR, /* alpha tile address */ \
153 __COLOUR, /* colour */ \
154 __OPACITY) /* opacity */ \
155 arm_2dp_rgb565_fill_colour_with_mask_x_mirror_and_opacity( \
156 NULL, \
157 (__TARGET_ADDR), \
158 (__REGION_ADDR), \
159 (__ALPHA_ADDR), \
160 (__COLOUR), \
161 (__OPACITY))
162
163#define arm_2d_rgb565_fill_colour_with_mask_and_y_mirror( \
164 __TARGET_ADDR, /* target tile address*/ \
165 __REGION_ADDR, /* target region address*/\
166 __ALPHA_ADDR, /* alpha tile address */ \
167 __COLOUR) /* colour */ \
168 arm_2dp_rgb565_fill_colour_with_mask_and_y_mirror( \
169 NULL, \
170 (__TARGET_ADDR), \
171 (__REGION_ADDR), \
172 (__ALPHA_ADDR), \
173 (__COLOUR))
174
175#define arm_2d_rgb565_fill_colour_with_mask_y_mirror_and_opacity( \
176 __TARGET_ADDR, /* target tile address*/ \
177 __REGION_ADDR, /* target region address*/\
178 __ALPHA_ADDR, /* alpha tile address */ \
179 __COLOUR, /* colour */ \
180 __OPACITY) /* opacity */ \
181 arm_2dp_rgb565_fill_colour_with_mask_y_mirror_and_opacity( \
182 NULL, \
183 (__TARGET_ADDR), \
184 (__REGION_ADDR), \
185 (__ALPHA_ADDR), \
186 (__COLOUR), \
187 (__OPACITY))
188
189#define arm_2d_rgb565_fill_colour_with_mask_and_xy_mirror( \
190 __TARGET_ADDR, /* target tile address*/ \
191 __REGION_ADDR, /* target region address*/\
192 __ALPHA_ADDR, /* alpha tile address */ \
193 __COLOUR) /* colour */ \
194 arm_2dp_rgb565_fill_colour_with_mask_and_xy_mirror( \
195 NULL, \
196 (__TARGET_ADDR), \
197 (__REGION_ADDR), \
198 (__ALPHA_ADDR), \
199 (__COLOUR))
200
201#define arm_2d_rgb565_fill_colour_with_mask_xy_mirror_and_opacity( \
202 __TARGET_ADDR, /* target tile address*/ \
203 __REGION_ADDR, /* target region address*/\
204 __ALPHA_ADDR, /* alpha tile address */ \
205 __COLOUR, /* colour */ \
206 __OPACITY) /* opacity */ \
207 arm_2dp_rgb565_fill_colour_with_mask_xy_mirror_and_opacity( \
208 NULL, \
209 (__TARGET_ADDR), \
210 (__REGION_ADDR), \
211 (__ALPHA_ADDR), \
212 (__COLOUR), \
213 (__OPACITY))
214
215#define arm_2d_cccn888_fill_colour_with_mask_and_x_mirror( \
216 __TARGET_ADDR, /* target tile address*/ \
217 __REGION_ADDR, /* target region address*/\
218 __ALPHA_ADDR, /* alpha tile address */ \
219 __COLOUR) /* colour */ \
220 arm_2dp_cccn888_fill_colour_with_mask_and_x_mirror( \
221 NULL, \
222 (__TARGET_ADDR), \
223 (__REGION_ADDR), \
224 (__ALPHA_ADDR), \
225 (__COLOUR))
226
227#define arm_2d_cccn888_fill_colour_with_mask_x_mirror_and_opacity( \
228 __TARGET_ADDR, /* target tile address*/ \
229 __REGION_ADDR, /* target region address*/\
230 __ALPHA_ADDR, /* alpha tile address */ \
231 __COLOUR, /* colour */ \
232 __OPACITY) /* opacity */ \
233 arm_2dp_cccn888_fill_colour_with_mask_x_mirror_and_opacity( \
234 NULL, \
235 (__TARGET_ADDR), \
236 (__REGION_ADDR), \
237 (__ALPHA_ADDR), \
238 (__COLOUR), \
239 (__OPACITY))
240
241#define arm_2d_cccn888_fill_colour_with_mask_and_y_mirror( \
242 __TARGET_ADDR, /* target tile address*/ \
243 __REGION_ADDR, /* target region address*/\
244 __ALPHA_ADDR, /* alpha tile address */ \
245 __COLOUR) /* colour */ \
246 arm_2dp_cccn888_fill_colour_with_mask_and_y_mirror( \
247 NULL, \
248 (__TARGET_ADDR), \
249 (__REGION_ADDR), \
250 (__ALPHA_ADDR), \
251 (__COLOUR))
252
253#define arm_2d_cccn888_fill_colour_with_mask_y_mirror_and_opacity( \
254 __TARGET_ADDR, /* target tile address*/ \
255 __REGION_ADDR, /* target region address*/\
256 __ALPHA_ADDR, /* alpha tile address */ \
257 __COLOUR, /* colour */ \
258 __OPACITY) /* opacity */ \
259 arm_2dp_cccn888_fill_colour_with_mask_y_mirror_and_opacity( \
260 NULL, \
261 (__TARGET_ADDR), \
262 (__REGION_ADDR), \
263 (__ALPHA_ADDR), \
264 (__COLOUR), \
265 (__OPACITY))
266
267#define arm_2d_cccn888_fill_colour_with_mask_and_xy_mirror( \
268 __TARGET_ADDR, /* target tile address*/ \
269 __REGION_ADDR, /* target region address*/\
270 __ALPHA_ADDR, /* alpha tile address */ \
271 __COLOUR) /* colour */ \
272 arm_2dp_cccn888_fill_colour_with_mask_and_xy_mirror( \
273 NULL, \
274 (__TARGET_ADDR), \
275 (__REGION_ADDR), \
276 (__ALPHA_ADDR), \
277 (__COLOUR))
278
279#define arm_2d_cccn888_fill_colour_with_mask_xy_mirror_and_opacity( \
280 __TARGET_ADDR, /* target tile address*/ \
281 __REGION_ADDR, /* target region address*/\
282 __ALPHA_ADDR, /* alpha tile address */ \
283 __COLOUR, /* colour */ \
284 __OPACITY) /* opacity */ \
285 arm_2dp_cccn888_fill_colour_with_mask_xy_mirror_and_opacity( \
286 NULL, \
287 (__TARGET_ADDR), \
288 (__REGION_ADDR), \
289 (__ALPHA_ADDR), \
290 (__COLOUR), \
291 (__OPACITY))
292
293/*============================ TYPES =========================================*/
294/*============================ GLOBAL VARIABLES ==============================*/
295/*============================ PROTOTYPES ====================================*/
296extern
297ARM_NONNULL(2,4)
298arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_and_x_mirror(
300 const arm_2d_tile_t *ptTarget,
301 const arm_2d_region_t *ptRegion,
302 const arm_2d_tile_t *ptAlpha,
303 arm_2d_color_gray8_t tColour);
304
305extern
306ARM_NONNULL(2,4)
307arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_x_mirror_and_opacity(
309 const arm_2d_tile_t *ptTarget,
310 const arm_2d_region_t *ptRegion,
311 const arm_2d_tile_t *ptAlpha,
312 arm_2d_color_gray8_t tColour,
313 uint8_t chOpacity);
314extern
315ARM_NONNULL(2,4)
316arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_and_y_mirror(
318 const arm_2d_tile_t *ptTarget,
319 const arm_2d_region_t *ptRegion,
320 const arm_2d_tile_t *ptAlpha,
321 arm_2d_color_gray8_t tColour);
322
323extern
324ARM_NONNULL(2,4)
325arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_y_mirror_and_opacity(
327 const arm_2d_tile_t *ptTarget,
328 const arm_2d_region_t *ptRegion,
329 const arm_2d_tile_t *ptAlpha,
330 arm_2d_color_gray8_t tColour,
331 uint8_t chOpacity);
332extern
333ARM_NONNULL(2,4)
334arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_and_xy_mirror(
336 const arm_2d_tile_t *ptTarget,
337 const arm_2d_region_t *ptRegion,
338 const arm_2d_tile_t *ptAlpha,
339 arm_2d_color_gray8_t tColour);
340
341extern
342ARM_NONNULL(2,4)
343arm_fsm_rt_t arm_2dp_gray8_fill_colour_with_mask_xy_mirror_and_opacity(
345 const arm_2d_tile_t *ptTarget,
346 const arm_2d_region_t *ptRegion,
347 const arm_2d_tile_t *ptAlpha,
348 arm_2d_color_gray8_t tColour,
349 uint8_t chOpacity);
350extern
351ARM_NONNULL(2,4)
352arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_and_x_mirror(
354 const arm_2d_tile_t *ptTarget,
355 const arm_2d_region_t *ptRegion,
356 const arm_2d_tile_t *ptAlpha,
357 arm_2d_color_rgb565_t tColour);
358
359extern
360ARM_NONNULL(2,4)
361arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_x_mirror_and_opacity(
363 const arm_2d_tile_t *ptTarget,
364 const arm_2d_region_t *ptRegion,
365 const arm_2d_tile_t *ptAlpha,
366 arm_2d_color_rgb565_t tColour,
367 uint8_t chOpacity);
368extern
369ARM_NONNULL(2,4)
370arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_and_y_mirror(
372 const arm_2d_tile_t *ptTarget,
373 const arm_2d_region_t *ptRegion,
374 const arm_2d_tile_t *ptAlpha,
375 arm_2d_color_rgb565_t tColour);
376
377extern
378ARM_NONNULL(2,4)
379arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_y_mirror_and_opacity(
381 const arm_2d_tile_t *ptTarget,
382 const arm_2d_region_t *ptRegion,
383 const arm_2d_tile_t *ptAlpha,
384 arm_2d_color_rgb565_t tColour,
385 uint8_t chOpacity);
386extern
387ARM_NONNULL(2,4)
388arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_and_xy_mirror(
390 const arm_2d_tile_t *ptTarget,
391 const arm_2d_region_t *ptRegion,
392 const arm_2d_tile_t *ptAlpha,
393 arm_2d_color_rgb565_t tColour);
394
395extern
396ARM_NONNULL(2,4)
397arm_fsm_rt_t arm_2dp_rgb565_fill_colour_with_mask_xy_mirror_and_opacity(
399 const arm_2d_tile_t *ptTarget,
400 const arm_2d_region_t *ptRegion,
401 const arm_2d_tile_t *ptAlpha,
402 arm_2d_color_rgb565_t tColour,
403 uint8_t chOpacity);
404extern
405ARM_NONNULL(2,4)
406arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_and_x_mirror(
408 const arm_2d_tile_t *ptTarget,
409 const arm_2d_region_t *ptRegion,
410 const arm_2d_tile_t *ptAlpha,
411 arm_2d_color_cccn888_t tColour);
412
413extern
414ARM_NONNULL(2,4)
415arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_x_mirror_and_opacity(
417 const arm_2d_tile_t *ptTarget,
418 const arm_2d_region_t *ptRegion,
419 const arm_2d_tile_t *ptAlpha,
421 uint8_t chOpacity);
422extern
423ARM_NONNULL(2,4)
424arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_and_y_mirror(
426 const arm_2d_tile_t *ptTarget,
427 const arm_2d_region_t *ptRegion,
428 const arm_2d_tile_t *ptAlpha,
429 arm_2d_color_cccn888_t tColour);
430
431extern
432ARM_NONNULL(2,4)
433arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_y_mirror_and_opacity(
435 const arm_2d_tile_t *ptTarget,
436 const arm_2d_region_t *ptRegion,
437 const arm_2d_tile_t *ptAlpha,
439 uint8_t chOpacity);
440extern
441ARM_NONNULL(2,4)
442arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_and_xy_mirror(
444 const arm_2d_tile_t *ptTarget,
445 const arm_2d_region_t *ptRegion,
446 const arm_2d_tile_t *ptAlpha,
447 arm_2d_color_cccn888_t tColour);
448
449extern
450ARM_NONNULL(2,4)
451arm_fsm_rt_t arm_2dp_cccn888_fill_colour_with_mask_xy_mirror_and_opacity(
453 const arm_2d_tile_t *ptTarget,
454 const arm_2d_region_t *ptRegion,
455 const arm_2d_tile_t *ptAlpha,
457 uint8_t chOpacity);
458
459/*! @} */
460
461#if defined(__clang__)
462#pragma clang diagnostic pop
463#endif
464
465#ifdef __cplusplus
466}
467#endif
468
469#endif