Arm-2D  
2D Image Processing Library for Cortex-M Processors
 
Loading...
Searching...
No Matches
__arm_2d_tile_copy_with_source_mask_and_opacity.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_tile_copy_with_mask_and_opacity.h
22 * Description: APIs for Tile-Copy-with-Source-Mask-and-Opacity operations
23 *
24 * $Date: 30. July 2025
25 * $Revision: V.1.1.0
26 *
27 * Target Processor: Cortex-M cores
28 *
29 * -------------------------------------------------------------------- */
30
31#ifndef __ARM_2D_TILE_COPY_WITH_MASK_AND_OPACITY_H__
32#define __ARM_2D_TILE_COPY_WITH_MASK_AND_OPACITY_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_tile_copy_with_src_mask_and_opacity_only( \
61 __SRC_ADDR, /* source tile address */ \
62 __SRC_MSK_ADDR, /* source mask address */ \
63 __DES_ADDR, /* target tile address */ \
64 __REGION, /* region address */ \
65 __OPACITY) /* opacity */ \
66 arm_2dp_gray8_tile_copy_with_src_mask_and_opacity_only( \
67 NULL, \
68 (__SRC_ADDR), \
69 (__SRC_MSK_ADDR), \
70 (__DES_ADDR), \
71 (__REGION), \
72 (__OPACITY))
73
74#define arm_2d_rgb565_tile_copy_with_src_mask_and_opacity_only( \
75 __SRC_ADDR, /* source tile address */ \
76 __SRC_MSK_ADDR, /* source mask address */ \
77 __DES_ADDR, /* target tile address */ \
78 __REGION, /* region address */ \
79 __OPACITY) /* opacity */ \
80 arm_2dp_rgb565_tile_copy_with_src_mask_and_opacity_only( \
81 NULL, \
82 (__SRC_ADDR), \
83 (__SRC_MSK_ADDR), \
84 (__DES_ADDR), \
85 (__REGION), \
86 (__OPACITY))
87
88#define arm_2d_cccn888_tile_copy_with_src_mask_and_opacity_only( \
89 __SRC_ADDR, /* source tile address */ \
90 __SRC_MSK_ADDR, /* source mask address */ \
91 __DES_ADDR, /* target tile address */ \
92 __REGION, /* region address */ \
93 __OPACITY) /* opacity */ \
94 arm_2dp_cccn888_tile_copy_with_src_mask_and_opacity_only( \
95 NULL, \
96 (__SRC_ADDR), \
97 (__SRC_MSK_ADDR), \
98 (__DES_ADDR), \
99 (__REGION), \
100 (__OPACITY))
101
102/*============================ TYPES =========================================*/
103/*============================ GLOBAL VARIABLES ==============================*/
104/*============================ PROTOTYPES ====================================*/
105
106
107extern
108ARM_NONNULL(2,3,4)
109/*!
110 * \brief copy a source tile to a target tile with a source mask
111 * \param[in] ptOP the control block, NULL means using the default control block
112 * \param[in] ptSource the source tile
113 * \param[in] ptSrcMask the mask on the source side
114 * \param[in] ptTarget the target tile
115 * \param[in] ptRegion the target region
116 * \param[in] chOpacity the opacity
117 * \return arm_fsm_rt_t the operation result
118 */
121 const arm_2d_tile_t *ptSource,
122 const arm_2d_tile_t *ptSrcMask,
123 const arm_2d_tile_t *ptTarget,
124 const arm_2d_region_t *ptRegion,
125 uint8_t chOpacity);
126
127
128extern
129ARM_NONNULL(2,3,4)
130/*!
131 * \brief copy a source tile to a target tile with a source mask
132 * \param[in] ptOP the control block, NULL means using the default control block
133 * \param[in] ptSource the source tile
134 * \param[in] ptSrcMask the mask on the source side
135 * \param[in] ptTarget the target tile
136 * \param[in] ptRegion the target region
137 * \param[in] chOpacity the opacity
138 * \return arm_fsm_rt_t the operation result
139 */
142 const arm_2d_tile_t *ptSource,
143 const arm_2d_tile_t *ptSrcMask,
144 const arm_2d_tile_t *ptTarget,
145 const arm_2d_region_t *ptRegion,
146 uint8_t chOpacity);
147
148
149extern
150ARM_NONNULL(2,3,4)
151/*!
152 * \brief copy a source tile to a target tile with a source mask
153 * \param[in] ptOP the control block, NULL means using the default control block
154 * \param[in] ptSource the source tile
155 * \param[in] ptSrcMask the mask on the source side
156 * \param[in] ptTarget the target tile
157 * \param[in] ptRegion the target region
158 * \param[in] chOpacity the opacity
159 * \return arm_fsm_rt_t the operation result
160 */
163 const arm_2d_tile_t *ptSource,
164 const arm_2d_tile_t *ptSrcMask,
165 const arm_2d_tile_t *ptTarget,
166 const arm_2d_region_t *ptRegion,
167 uint8_t chOpacity);
168
169/*! @} */
170
171#if defined(__clang__)
172# pragma clang diagnostic pop
173#endif
174
175#ifdef __cplusplus
176}
177#endif
178
179
180#endif /* __ARM_2D_TILE_COPY_WITH_MASK_AND_OPACITY_H__ */