• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License"),
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
17  * @addtogroup ArkUI_RenderNodeUtils
18  * @{
19  *
20  * @brief Provides RenderNode capabilities of ArkUI on the native side, such as RenderNode creation and destruction,
21  * tree node operations, and attribute setting.
22  *
23  * @since 20
24  */
25 
26 /**
27  * @file native_render.h
28  *
29  * @brief Provides type definitions for <b>NativeRenderNode</b> APIs.
30  *
31  * @library libace_ndk.z.so
32  * @syscap SystemCapability.ArkUI.ArkUI.Full
33  * @kit ArkUI
34  * @since 20
35  */
36 
37 #ifndef ARKUI_NATIVE_RENDER_H
38 #define ARKUI_NATIVE_RENDER_H
39 
40 #ifdef __cplusplus
41 #include <cstdint>
42 #else
43 #include <stdint.h>
44 #endif
45 
46 #include "native_type.h"
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 /**
53  * @brief Handle to ArkUI native render node object.
54  *
55  * @since 20
56  */
57 typedef struct ArkUI_RenderNode* ArkUI_RenderNodeHandle;
58 
59 /**
60  * @brief Handle to ArkUI native render content modifier.
61  *
62  * @since 20
63  */
64 typedef struct ArkUI_RenderContentModifier* ArkUI_RenderContentModifierHandle;
65 
66 /**
67  * @brief Handle to the ArkUI native float render property.
68  *
69  * @since 20
70  */
71 typedef struct ArkUI_FloatProperty* ArkUI_FloatPropertyHandle;
72 
73 /**
74  * @brief Handle to the ArkUI native vector2 render property.
75  *
76  * @since 20
77  */
78 typedef struct ArkUI_Vector2Property* ArkUI_Vector2PropertyHandle;
79 
80 /**
81  * @brief Handle to the ArkUI native color render property.
82  *
83  * @since 20
84  */
85 typedef struct ArkUI_ColorProperty* ArkUI_ColorPropertyHandle;
86 
87 /**
88  * @brief Handle to the ArkUI native animatable float render property.
89  *
90  * @since 20
91  */
92 typedef struct ArkUI_FloatAnimatableProperty* ArkUI_FloatAnimatablePropertyHandle;
93 
94 /**
95  * @brief Handle to the ArkUI native animatable vector2 render property.
96  *
97  * @since 20
98  */
99 typedef struct ArkUI_Vector2AnimatableProperty* ArkUI_Vector2AnimatablePropertyHandle;
100 
101 /**
102  * @brief Handle to the ArkUI native animatable color render property.
103  *
104  * @since 20
105  */
106 typedef struct ArkUI_ColorAnimatableProperty* ArkUI_ColorAnimatablePropertyHandle;
107 
108 /**
109  * @brief Rectangle shape option.
110  *
111  * @since 20
112  */
113 typedef struct ArkUI_RectShape ArkUI_RectShapeOption;
114 
115 /**
116  * @brief Node border style option.
117  *
118  * @since 20
119  */
120 typedef struct ArkUI_NodeBorderStyle ArkUI_NodeBorderStyleOption;
121 
122 /**
123  * @brief Node border width option.
124  *
125  * @since 20
126  */
127 typedef struct ArkUI_NodeBorderWidth ArkUI_NodeBorderWidthOption;
128 
129 /**
130  * @brief Node border color option.
131  *
132  * @since 20
133  */
134 typedef struct ArkUI_NodeBorderColor ArkUI_NodeBorderColorOption;
135 
136 /**
137  * @brief Node border radius option.
138  *
139  * @since 20
140  */
141 typedef struct ArkUI_NodeBorderRadius ArkUI_NodeBorderRadiusOption;
142 
143 /**
144  * @brief Circle shape option.
145  *
146  * @since 20
147  */
148 typedef struct ArkUI_CircleShape ArkUI_CircleShapeOption;
149 
150 /**
151  * @brief Round rect shape option.
152  *
153  * @since 20
154  */
155 typedef struct ArkUI_RoundRectShape ArkUI_RoundRectShapeOption;
156 
157 /**
158  * @brief Command path option.
159  *
160  * @since 20
161  */
162 typedef struct ArkUI_CommandPath ArkUI_CommandPathOption;
163 
164 /**
165  * @brief Render node mask option.
166  *
167  * @since 20
168  */
169 typedef struct ArkUI_RenderNodeMaskOption ArkUI_RenderNodeMaskOption;
170 
171 /**
172  * @brief Render node clip option.
173  *
174  * @since 20
175  */
176 typedef struct ArkUI_RenderNodeClipOption ArkUI_RenderNodeClipOption;
177 
178 /**
179  * @brief Adds a child render node to a parent node.
180  *
181  * @param node the target parent node.
182  *     - Only customNode type parent nodes are supported.
183  *     - Each customNode can mount only one ArkUI_RenderNodeHandle.
184  *     - customNode cannot mount other ArkUI_NodeHandle.
185  * @param child the child RenderNode to add.
186  * @return Error code.
187  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
188  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
189  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
190  *         {@link ARKUI_ERROR_CODE_NOT_CUSTOM_NODE} The node is not a customNode.
191  *         {@link ARKUI_ERROR_CODE_CHILD_EXISTED} The node already has a child.
192  *         {@link ARKUI_ERROR_CODE_RENDER_PARENT_EXISTED} The child already has a parent node.
193  * @since 20
194  */
195 int32_t OH_ArkUI_RenderNodeUtils_AddRenderNode(ArkUI_NodeHandle node, ArkUI_RenderNodeHandle child);
196 
197 /**
198  * @brief Remove the specified child node from its parent node.
199  *
200  * @param node the parent node.
201  * @param child the child RenderNode to remove.
202  * @return Error code.
203  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
204  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
205  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
206  *         {@link ARKUI_ERROR_CODE_NOT_CUSTOM_NODE} The node is not a customNode.
207  * @since 20
208  */
209 int32_t OH_ArkUI_RenderNodeUtils_RemoveRenderNode(ArkUI_NodeHandle node, ArkUI_RenderNodeHandle child);
210 
211 /**
212  * @brief Clear all child render nodes from the specified parent node.
213  *
214  * @param node the target parent node.
215  * @return Error code.
216  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
217  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
218  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
219  *         {@link ARKUI_ERROR_CODE_NOT_CUSTOM_NODE} The node is not a customNode.
220  * @since 20
221  */
222 int32_t OH_ArkUI_RenderNodeUtils_ClearRenderNodeChildren(ArkUI_NodeHandle node);
223 
224 /**
225  * @brief Mark dirty the node handle. Invalidate the specified node, causing its lifecycle and triggering a
226  *     rerender of its child render nodes.
227  *
228  * @param node Target node.
229  * @return Error code.
230  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
231  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
232  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
233  * @since 20
234  */
235 int32_t OH_ArkUI_RenderNodeUtils_Invalidate(ArkUI_NodeHandle node);
236 
237 /**
238  * @brief Create a new RenderNode handle.
239  *
240  * @return ArkUI_RenderNodeHandle pointer to receive the new node handle.
241  * @since 20
242  */
243 ArkUI_RenderNodeHandle OH_ArkUI_RenderNodeUtils_CreateNode();
244 
245 /**
246  * @brief Dispose a RenderNode handle.
247  *
248  * @param node Handle to the render node to dispose.
249  * @return Error code.
250  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
251  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
252  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
253  * @since 20
254  */
255 int32_t OH_ArkUI_RenderNodeUtils_DisposeNode(ArkUI_RenderNodeHandle node);
256 
257 /**
258  * @brief Add a child node to the specified RenderNode.
259  *
260  * @param node the parent RenderNode.
261  * @param child the child RenderNode to add.
262  * @return Error code.
263  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
264  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
265  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
266  * @since 20
267  */
268 int32_t OH_ArkUI_RenderNodeUtils_AddChild(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle child);
269 
270 /**
271  * @brief Insert a child node after the specified sibling node in RenderNode.
272  *
273  * @param node the parent RenderNode.
274  * @param child the child RenderNode to insert.
275  * @param sibling the reference sibling node.
276  *                If the sibling node does not exist in the children, the child component will be added to the end.
277  * @return Error code.
278  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
279  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
280  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
281  * @since 20
282  */
283 int32_t OH_ArkUI_RenderNodeUtils_InsertChildAfter(
284     ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle child, ArkUI_RenderNodeHandle sibling);
285 
286 /**
287  * @brief Remove a child node from the specified RenderNode.
288  *
289  * @param node the parent RenderNode.
290  * @param child the child RenderNode to remove.
291  * @return Error code.
292  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
293  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
294  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
295  * @since 20
296  */
297 int32_t OH_ArkUI_RenderNodeUtils_RemoveChild(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle child);
298 
299 /**
300  * @brief Clear all children from the specified RenderNode.
301  *
302  * @param node Handle to the target render node.
303  * @return Error code.
304  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
305  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
306  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
307  * @since 20
308  */
309 int32_t OH_ArkUI_RenderNodeUtils_ClearChildren(ArkUI_RenderNodeHandle node);
310 
311 /**
312  * @brief Get a child node at the specified index position.
313  *
314  * @param node the parent RenderNode.
315  * @param index Zero-based index of the child node.
316  * @param child ArkUI_RenderNodeHandle pointer to receive the child node.
317  * @return Error code.
318  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
319  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
320  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
321  *         {@link ARKUI_ERROR_CODE_CHILD_RENDER_NOT_EXIST} The child does not exist.
322  * @since 20
323  */
324 int32_t OH_ArkUI_RenderNodeUtils_GetChild(ArkUI_RenderNodeHandle node, int32_t index, ArkUI_RenderNodeHandle* child);
325 
326 /**
327  * @brief Get the first child node of the specified RenderNode.
328  *
329  * @param node Handle to the target render node.
330  * @param child ArkUI_RenderNodeHandle pointer to receive the first child.
331  * @return Error code.
332  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
333  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
334  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
335  *         {@link ARKUI_ERROR_CODE_CHILD_RENDER_NOT_EXIST} The child does not exist.
336  * @since 20
337  */
338 int32_t OH_ArkUI_RenderNodeUtils_GetFirstChild(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle* child);
339 
340 /**
341  * @brief Get the next sibling node of the specified node.
342  *
343  * @param node the reference node.
344  * @param sibling ArkUI_RenderNodeHandle pointer to receive the next sibling.
345  * @return Error code.
346  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
347  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
348  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
349  *         {@link ARKUI_ERROR_CODE_CHILD_RENDER_NOT_EXIST} The child does not exist.
350  * @since 20
351  */
352 int32_t OH_ArkUI_RenderNodeUtils_GetNextSibling(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle* sibling);
353 
354 /**
355  * @brief Get the previous sibling node of the specified node.
356  *
357  * @param node the reference node.
358  * @param sibling ArkUI_RenderNodeHandle pointer to receive the previous sibling.
359  * @return Error code.
360  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
361  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
362  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
363  *         {@link ARKUI_ERROR_CODE_CHILD_RENDER_NOT_EXIST} The child does not exist.
364  * @since 20
365  */
366 int32_t OH_ArkUI_RenderNodeUtils_GetPreviousSibling(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle* sibling);
367 
368 /**
369  * @brief Retrieve all child render nodes of a parent render node.
370  *     This function populates a list of child render nodes for the specified parent node.
371  *     The caller is responsible for freeing the allocated child node array.
372  *
373  * @param node Handle to the target parent render node.
374  * @param children Pointer to an array of child render node handles.
375  * @param count Pointer to store the number of child nodes retrieved.
376  * @return Error code.
377  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
378  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
379  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
380  * @since 20
381  */
382 int32_t OH_ArkUI_RenderNodeUtils_GetChildren(
383     ArkUI_RenderNodeHandle node, ArkUI_RenderNodeHandle** children, int32_t* count);
384 
385 /**
386  * @brief Retrieve render child nodes count of a render node.
387  *
388  * @param node Handle to the target parent render node.
389  * @param count Pointer to store the number of child nodes retrieved.
390  * @return Error code.
391  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
392  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
393  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
394  * @since 20
395  */
396 int32_t OH_ArkUI_RenderNodeUtils_GetChildrenCount(ArkUI_RenderNodeHandle node, int32_t* count);
397 
398 /**
399  * @brief Set the background color for a RenderNode.
400  *
401  * @param node Handle to the target render node
402  * @param color Packed ARGB color value (32-bit unsigned integer)
403  *     Color byte layout:
404  *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
405  *     - Bits 16-23: Red channel
406  *     - Bits 8-15: Green channel
407  *     - Bits 0-7: Blue channel
408  * @return Error code.
409  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
410  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
411  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
412  * @since 20
413  */
414 int32_t OH_ArkUI_RenderNodeUtils_SetBackgroundColor(ArkUI_RenderNodeHandle node, uint32_t color);
415 
416 /**
417  * @brief Get the background color of a RenderNode.
418  *
419  * @param node Handle to the target render node
420  * @param color Integer pointer to store the retrieved RGBA color value.
421  *     The retrieved color is a packed 32-bit value with the following byte layout:
422  *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
423  *     - Bits 16-23: Red channel
424  *     - Bits 8-15: Green channel
425  *     - Bits 0-7: Blue channel
426  * @return Error code.
427  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
428  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
429  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
430  * @since 20
431  */
432 int32_t OH_ArkUI_RenderNodeUtils_GetBackgroundColor(ArkUI_RenderNodeHandle node, uint32_t* color);
433 
434 /**
435  * @brief Set whether to clip content to the node's frame.
436  *
437  * @param node Handle to the target render node.
438  * @param clipToFrame Integer (1 = clip to frame, 0 = do not clip).
439  * @return Error code.
440  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
441  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
442  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
443  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
444  * @since 20
445  */
446 int32_t OH_ArkUI_RenderNodeUtils_SetClipToFrame(ArkUI_RenderNodeHandle node, int32_t clipToFrame);
447 
448 /**
449  * @brief Get the clip-to-frame status of a RenderNode.
450  *
451  * @param node Handle to the target render node.
452  * @param clipToFrame Integer pointer to receive clip status (1 or 0).
453  * @return Error code.
454  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
455  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
456  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
457  * @since 20
458  */
459 int32_t OH_ArkUI_RenderNodeUtils_GetClipToFrame(ArkUI_RenderNodeHandle node, int32_t* clipToFrame);
460 
461 /**
462  * @brief Set whether to clip content to the node's Bounds.
463  *
464  * @param node Handle to the target render node.
465  * @param clipToBounds Clipping flag (1: clip to bounds, 0: do not clip)
466  * @return Error code.
467  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
468  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
469  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
470  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
471  * @since 20
472  */
473 int32_t OH_ArkUI_RenderNodeUtils_SetClipToBounds(ArkUI_RenderNodeHandle node, int32_t clipToBounds);
474 
475 /**
476  * @brief Get whether to clip content to the node's Bounds.
477  *
478  * @param node Handle to the target render node.
479  * @param clipToBounds Integer pointer (1 = clip to bounds, 0 = do not clip).
480  * @return Error code.
481  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
482  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
483  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
484  * @since 20
485  */
486 int32_t OH_ArkUI_RenderNodeUtils_GetClipToBounds(ArkUI_RenderNodeHandle node, int32_t* clipToBounds);
487 
488 /**
489  * @brief Set the opacity value for a RenderNode.
490  *
491  * @param node Handle to the target render node.
492  * @param opacity Opacity value (0.0-1.0).
493  * @return Error code.
494  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
495  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
496  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
497  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
498  * @since 20
499  */
500 int32_t OH_ArkUI_RenderNodeUtils_SetOpacity(ArkUI_RenderNodeHandle node, float opacity);
501 
502 /**
503  * @brief Get the opacity value of a RenderNode.
504  *
505  * @param node Handle to the target render node.
506  * @param opacity Pointer to receive opacity value (0.0-1.0).
507  * @return Error code.
508  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
509  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
510  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
511  * @since 20
512  */
513 int32_t OH_ArkUI_RenderNodeUtils_GetOpacity(ArkUI_RenderNodeHandle node, float* opacity);
514 
515 /**
516  * @brief Set the dimensions for a RenderNode.
517  *
518  * @param node Handle to the target render node.
519  * @param width Width value in pixels.
520  * @param height Height value in pixels.
521  * @return Error code.
522  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
523  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
524  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
525  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
526  * @since 20
527  */
528 int32_t OH_ArkUI_RenderNodeUtils_SetSize(ArkUI_RenderNodeHandle node, int32_t width, int32_t height);
529 
530 /**
531  * @brief Get the dimensions of a RenderNode.
532  *
533  * @param node Handle to the target render node.
534  * @param width Pointer to receive width value in pixels.
535  * @param height Pointer to receive height value in pixels.
536  * @return Error code.
537  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
538  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
539  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
540  * @since 20
541  */
542 int32_t OH_ArkUI_RenderNodeUtils_GetSize(ArkUI_RenderNodeHandle node, int32_t* width, int32_t* height);
543 
544 /**
545  * @brief Set the position coordinates for a RenderNode.
546  *
547  * @param node Handle to the target render node.
548  * @param x X-coordinate value in pixels.
549  * @param y Y-coordinate value in pixels.
550  * @return Error code.
551  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
552  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
553  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
554  * @since 20
555  */
556 int32_t OH_ArkUI_RenderNodeUtils_SetPosition(ArkUI_RenderNodeHandle node, int32_t x, int32_t y);
557 
558 /**
559  * @brief Get the position coordinates of a RenderNode.
560  *
561  * @param node Handle to the target render node.
562  * @param x Pointer to receive X-coordinate value in pixels.
563  * @param y Pointer to receive Y-coordinate value in pixels.
564  * @return Error code.
565  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
566  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
567  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
568  * @since 20
569  */
570 int32_t OH_ArkUI_RenderNodeUtils_GetPosition(ArkUI_RenderNodeHandle node, int32_t* x, int32_t* y);
571 
572 /**
573  * @brief Set the pivot point for transformations of a RenderNode.
574  *
575  * @param node Handle to the target render node.
576  * @param x The X-coordinate of pivot (normalized 0.0-1.0).
577  * @param y The Y-coordinate of pivot (normalized 0.0-1.0).
578  * @return Error code.
579  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
580  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
581  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
582  * @since 20
583  */
584 int32_t OH_ArkUI_RenderNodeUtils_SetPivot(ArkUI_RenderNodeHandle node, float x, float y);
585 
586 /**
587  * @brief Get the pivot point coordinates of a RenderNode.
588  *
589  * @param node Handle to the target render node.
590  * @param x Pointer to receive the X-coordinate of pivot.
591  * @param y Pointer to receive the Y-coordinate of pivot.
592  * @return Error code.
593  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
594  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
595  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
596  * @since 20
597  */
598 int32_t OH_ArkUI_RenderNodeUtils_GetPivot(ArkUI_RenderNodeHandle node, float* x, float* y);
599 
600 /**
601  * @brief Set the scaling factors for a RenderNode.
602  *
603  * @param node Handle to the target render node.
604  * @param x Horizontal scale factor.
605  * @param y Vertical scale factor.
606  * @return Error code.
607  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
608  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
609  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
610  * @since 20
611  */
612 int32_t OH_ArkUI_RenderNodeUtils_SetScale(ArkUI_RenderNodeHandle node, float x, float y);
613 
614 /**
615  * @brief Get the scaling factors of a RenderNode.
616  *
617  * @param node Handle to the target render node.
618  * @param x Pointer to receive horizontal scale factor.
619  * @param y Pointer to receive vertical scale factor.
620  * @return Error code.
621  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
622  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
623  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
624  * @since 20
625  */
626 int32_t OH_ArkUI_RenderNodeUtils_GetScale(ArkUI_RenderNodeHandle node, float* x, float* y);
627 
628 /**
629  * @brief Set the translation offset for a RenderNode.
630  *
631  * @param node Handle to the target render node.
632  * @param x Horizontal translation in pixels.
633  * @param y Vertical translation in pixels.
634  * @return Error code.
635  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
636  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
637  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
638  * @since 20
639  */
640 int32_t OH_ArkUI_RenderNodeUtils_SetTranslation(ArkUI_RenderNodeHandle node, float x, float y);
641 
642 /**
643  * @brief Get the translation offset of a RenderNode.
644  *
645  * @param node Handle to the target render node.
646  * @param x Pointer to receive horizontal translation.
647  * @param y Pointer to receive vertical translation.
648  * @return Error code.
649  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
650  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
651  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
652  * @since 20
653  */
654 int32_t OH_ArkUI_RenderNodeUtils_GetTranslation(ArkUI_RenderNodeHandle node, float* x, float* y);
655 
656 /**
657  * @brief Set the rotation angles for a RenderNode.
658  *
659  * @param node Handle to the target render node.
660  * @param x Rotation angle around X-axis in degrees.
661  * @param y Rotation angle around Y-axis in degrees.
662  * @param z Rotation angle around Z-axis in degrees.
663  * @return Error code.
664  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
665  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
666  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
667  * @since 20
668  */
669 int32_t OH_ArkUI_RenderNodeUtils_SetRotation(ArkUI_RenderNodeHandle node, float x, float y, float z);
670 
671 /**
672  * @brief Get the rotation angles of a RenderNode.
673  *
674  * @param node Handle to the target render node.
675  * @param x Pointer to receive X-axis rotation angle in degrees.
676  * @param y Pointer to receive Y-axis rotation angle in degrees.
677  * @param z Pointer to receive Z-axis rotation angle in degrees.
678  * @return Error code.
679  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
680  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
681  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
682  * @since 20
683  */
684 int32_t OH_ArkUI_RenderNodeUtils_GetRotation(ArkUI_RenderNodeHandle node, float* x, float* y, float* z);
685 
686 /**
687  * @brief Set the transformation matrix for a RenderNode.
688  *
689  * @param node Handle to the target render node.
690  * @param matrix Pointer to a 4x4 transformation matrix (16 consecutive values).
691  *     The transformation matrix should be provided as 16 consecutive floating-point values in row-major order:
692  *       [m00, m01, m02, m03,
693  *        m10, m11, m12, m13,
694  *        m20, m21, m22, m23,
695  *        m30, m31, m32, m33]
696  *     Where the matrix represents:
697  *       | m00 m01 m02 m03 |
698  *       | m10 m11 m12 m13 |
699  *       | m20 m21 m22 m23 |
700  *       | m30 m31 m32 m33 |
701  *     Matrix components:
702  *       | m00  | Scaling value of the x-axis. The default value is **1** for the identity matrix.     |
703  *       | m01  | The second value, which is affected by the rotation or tilt of the x, y, and z axes.  |
704  *       | m02  | The third value, which is affected by the rotation of the x, y, and z axes.  |
705  *       | m03  | The fourth value, which is affected by perspective projection.              |
706  *       | m10  | The fifth value, which is affected by the rotation or tilt of the x, y, and z axes.  |
707  *       | m11  | Scaling value of the y-axis. The default value is **1** for the identity matrix.     |
708  *       | m12  | The seventh value, which is affected by the rotation of the x, y, and z axes.  |
709  *       | m13  | The eighth value, which is affected by perspective projection.              |
710  *       | m20  | The ninth value, which is affected by the rotation of the x, y, and z axes.  |
711  *       | m21  | The tenth value, which is affected by the rotation of the x, y, and z axes. |
712  *       | m22  | Scaling value of the z-axis. The default value is **1** for the identity matrix.     |
713  *       | m23  | The 12th value, which is affected by perspective projection.              |
714  *       | m30  | Translation value of the x-axis, in px. The default value is **0** for the identity matrix.|
715  *       | m31  | Translation value of the y-axis, in px. The default value is **0** for the identity matrix.|
716  *       | m32  | Translation value of the z-axis, in px. The default value is **0** for the identity matrix.|
717  *       | m33  | Valid in homogeneous coordinates, presenting the perspective projection effect.   |
718  * @return Error code.
719  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
720  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
721  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
722  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
723  * @since 20
724  */
725 int32_t OH_ArkUI_RenderNodeUtils_SetTransform(ArkUI_RenderNodeHandle node, float* matrix);
726 
727 /**
728  * @brief Set the shadow color for a RenderNode.
729  *
730  * @param node Handle to the target render node.
731  * @param color Packed ARGB color value (32-bit unsigned integer)
732  *     Color byte layout:
733  *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
734  *     - Bits 16-23: Red channel
735  *     - Bits 8-15: Green channel
736  *     - Bits 0-7: Blue channel
737  * @return Error code.
738  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
739  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
740  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
741  * @since 20
742  */
743 int32_t OH_ArkUI_RenderNodeUtils_SetShadowColor(ArkUI_RenderNodeHandle node, uint32_t color);
744 
745 /**
746  * @brief Get the shadow color of a RenderNode.
747  *
748  * @param node Handle to the target render node.
749  * @param color Integer pointer to store the retrieved RGBA color value.
750  *     The retrieved color is a packed 32-bit value with the following byte layout:
751  *     - Bits 24-31: Alpha channel (0x00 fully transparent, 0xFF fully opaque)
752  *     - Bits 16-23: Red channel
753  *     - Bits 8-15: Green channel
754  *     - Bits 0-7: Blue channel
755  * @return Error code.
756  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
757  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
758  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
759  * @since 20
760  */
761 int32_t OH_ArkUI_RenderNodeUtils_GetShadowColor(ArkUI_RenderNodeHandle node, uint32_t* color);
762 
763 /**
764  * @brief Set the shadow offset for a RenderNode.
765  *
766  * @param node Handle to the target render node.
767  * @param x Horizontal offset value in pixels.
768  * @param y Vertical offset value in pixels.
769  * @return Error code.
770  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
771  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
772  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
773  * @since 20
774  */
775 int32_t OH_ArkUI_RenderNodeUtils_SetShadowOffset(ArkUI_RenderNodeHandle node, int32_t x, int32_t y);
776 
777 /**
778  * @brief Get the shadow offset of a RenderNode.
779  *
780  * @param node Handle to the target render node.
781  * @param x Pointer to receive horizontal offset value.
782  * @param y Pointer to receive vertical offset value.
783  * @return Error code.
784  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
785  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
786  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
787  * @since 20
788  */
789 int32_t OH_ArkUI_RenderNodeUtils_GetShadowOffset(ArkUI_RenderNodeHandle node, int32_t* x, int32_t* y);
790 
791 /**
792  * @brief Set the shadow transparency for a RenderNode.
793  *
794  * @param node Handle to the target render node.
795  * @param alpha Shadow alpha value (0.0-1.0).
796  * @return Error code.
797  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
798  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
799  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
800  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
801  * @since 20
802  */
803 int32_t OH_ArkUI_RenderNodeUtils_SetShadowAlpha(ArkUI_RenderNodeHandle node, float alpha);
804 
805 /**
806  * @brief Get the shadow transparency of a RenderNode.
807  *
808  * @param node Handle to the target render node.
809  * @param alpha Pointer to receive shadow alpha value.
810  * @return Error code.
811  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
812  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
813  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
814  * @since 20
815  */
816 int32_t OH_ArkUI_RenderNodeUtils_GetShadowAlpha(ArkUI_RenderNodeHandle node, float* alpha);
817 
818 /**
819  * @brief Set the shadow elevation for a RenderNode.
820  *
821  * @param node Handle to the target render node.
822  * @param elevation Elevation value.
823  * @return Error code.
824  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
825  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
826  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
827  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
828  * @since 20
829  */
830 int32_t OH_ArkUI_RenderNodeUtils_SetShadowElevation(ArkUI_RenderNodeHandle node, float elevation);
831 
832 /**
833  * @brief Get the shadow elevation of a RenderNode.
834  *
835  * @param node Handle to the target render node.
836  * @param elevation Pointer to receive elevation value.
837  * @return Error code.
838  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
839  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
840  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
841  * @since 20
842  */
843 int32_t OH_ArkUI_RenderNodeUtils_GetShadowElevation(ArkUI_RenderNodeHandle node, float* elevation);
844 
845 /**
846  * @brief Set the shadow radius of a RenderNode.
847  *
848  * @param node Handle to the target render node.
849  * @param radius Radius value.
850  * @return Error code.
851  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
852  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
853  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
854  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
855  * @since 20
856  */
857 int32_t OH_ArkUI_RenderNodeUtils_SetShadowRadius(ArkUI_RenderNodeHandle node, float radius);
858 
859 /**
860  * @brief Get the shadow radius of a RenderNode.
861  *
862  * @param node Handle to the target render node.
863  * @param radius Pointer to receive radius value.
864  * @return Error code.
865  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
866  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
867  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
868  * @since 20
869  */
870 int32_t OH_ArkUI_RenderNodeUtils_GetShadowRadius(ArkUI_RenderNodeHandle node, float* radius);
871 
872 /**
873  * @brief Set the border style for a RenderNode.
874  *
875  * @param node Handle to the target render node.
876  * @param borderStyle Handle to border style option.
877  * @return Error code.
878  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
879  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
880  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
881  * @since 20
882  */
883 int32_t OH_ArkUI_RenderNodeUtils_SetBorderStyle(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderStyleOption* borderStyle);
884 
885 /**
886  * @brief Get the border style of a RenderNode.
887  *
888  * @param node Handle to the target render node.
889  * @param borderStyle Pointer to receive border style option.
890  * @return Error code.
891  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
892  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
893  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
894  * @since 20
895  */
896 int32_t OH_ArkUI_RenderNodeUtils_GetBorderStyle(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderStyleOption** borderStyle);
897 
898 /**
899  * @brief Set the border widths for a RenderNode.
900  *
901  * @param node Handle to the target render node.
902  * @param borderWidth Handle to border width option.
903  * @return Error code.
904  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
905  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
906  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
907  * @since 20
908  */
909 int32_t OH_ArkUI_RenderNodeUtils_SetBorderWidth(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderWidthOption* borderWidth);
910 
911 /**
912  * @brief Get the border widths of a RenderNode.
913  *
914  * @param node Handle to the target render node.
915  * @param borderWidth Pointer to receive border width option.
916  * @return Error code.
917  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
918  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
919  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
920  * @since 20
921  */
922 int32_t OH_ArkUI_RenderNodeUtils_GetBorderWidth(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderWidthOption** borderWidth);
923 
924 /**
925  * @brief Set the border colors for a RenderNode.
926  *
927  * @param node Handle to the target render node.
928  * @param borderColor Handle to border color option.
929  * @return Error code.
930  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
931  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
932  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
933  * @since 20
934  */
935 int32_t OH_ArkUI_RenderNodeUtils_SetBorderColor(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderColorOption* borderColor);
936 
937 /**
938  * @brief Get the border colors of a RenderNode.
939  *
940  * @param node Handle to the target render node.
941  * @param borderColor Pointer to receive border color option.
942  * @return Error code.
943  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
944  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
945  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
946  * @since 20
947  */
948 int32_t OH_ArkUI_RenderNodeUtils_GetBorderColor(ArkUI_RenderNodeHandle node, ArkUI_NodeBorderColorOption** borderColor);
949 
950 /**
951  * @brief Set the border corner radius for a RenderNode.
952  *
953  * @param node Handle to the target render node.
954  * @param borderRadius Handle to border radius option.
955  * @r eturn Error code.
956  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
957  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
958  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
959  * @since 20
960  */
961 int32_t OH_ArkUI_RenderNodeUtils_SetBorderRadius(
962     ArkUI_RenderNodeHandle node, ArkUI_NodeBorderRadiusOption* borderRadius);
963 
964 /**
965  * @brief Get the border corner radius of a RenderNode.
966  *
967  * @param node Handle to the target render node.
968  * @param borderRadius Pointer to receive border radius option.
969  * @return Error code.
970  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
971  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
972  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
973  * @since 20
974  */
975 int32_t OH_ArkUI_RenderNodeUtils_GetBorderRadius(
976     ArkUI_RenderNodeHandle node, ArkUI_NodeBorderRadiusOption** borderRadius);
977 
978 /**
979  * @brief Apply a mask to a render node using the mask option.
980  *
981  * @param node Handle to the target render node.
982  * @param mask Handle to the mask option.
983  * @return Error code.
984  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
985  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
986  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
987  * @since 20
988  */
989 int32_t OH_ArkUI_RenderNodeUtils_SetMask(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeMaskOption* mask);
990 
991 /**
992  * @brief Apply a clip to a render node using the clip option.
993  *
994  * @param node Handle to the target render node.
995  * @param clip Handle to the clip option.
996  * @return Error code.
997  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
998  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
999  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1000  * @since 20
1001  */
1002 int32_t OH_ArkUI_RenderNodeUtils_SetClip(ArkUI_RenderNodeHandle node, ArkUI_RenderNodeClipOption* clip);
1003 
1004 /**
1005  * @brief Mark whether to preferentially draw the node and its children.
1006  *
1007  * @param node Handle to the target render node.
1008  * @param markNodeGroup Boolean flag indicates whether to preferentially draw the node and its children.
1009  * @return Error code.
1010  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1011  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1012  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1013  * @since 20
1014  */
1015 int32_t OH_ArkUI_RenderNodeUtils_SetMarkNodeGroup(ArkUI_RenderNodeHandle node, bool markNodeGroup);
1016 
1017 /**
1018  * @brief Set the bounds for a RenderNode.
1019  *
1020  * @param node Handle to the target render node.
1021  * @param x X-coordinate of the bounds's top-left corner (in pixels)
1022  * @param y Y-coordinate of the bounds's top-left corner (in pixels)
1023  * @param width Width of the bounds (in pixels).
1024  * @param height Height of the bounds (in pixels).
1025  * @return Error code.
1026  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1027  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1028  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1029  *         {@link ARKUI_ERROR_CODE_PARAM_OUT_OF_RANGE} Parameter out of range.
1030  * @since 20
1031  */
1032 int32_t OH_ArkUI_RenderNodeUtils_SetBounds(
1033     ArkUI_RenderNodeHandle node, int32_t x, int32_t y, int32_t width, int32_t height);
1034 
1035 /**
1036  * @brief Get the bounds for a RenderNode.
1037  *
1038  * @param node Handle to the target render node.
1039  * @param x Pointer to receive x-coordinate value of the bounds's top-left corner (in pixels)
1040  * @param y Pointer to receive y-coordinate value of the bounds's top-left corner (in pixels)
1041  * @param width Pointer to receive width value in pixels.
1042  * @param height Pointer to receive height value in pixels.
1043  * @return Error code.
1044  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1045  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1046  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1047  * @since 20
1048  */
1049 int32_t OH_ArkUI_RenderNodeUtils_GetBounds(
1050     ArkUI_RenderNodeHandle node, int32_t* x, int32_t* y, int32_t* width, int32_t* height);
1051 
1052 /**
1053  * @brief Set the draw region for a RenderNode.
1054  *
1055  * @param node Handle to the target render node.
1056  * @param x X-coordinate of the bounds's top-left corner (in pixels).
1057  * @param y Y-coordinate of the bounds's top-left corner (in pixels).
1058  * @param w Width of the bounds (in pixels).
1059  * @param h Height of the bounds (in pixels).
1060  * @return Error code.
1061  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1062  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1063  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1064  * @since 20
1065  */
1066 int32_t OH_ArkUI_RenderNodeUtils_SetDrawRegion(ArkUI_RenderNodeHandle node, float x, float y, float w, float h);
1067 
1068 /**
1069  * @brief Attach a content modifier for the render node.
1070  *
1071  * @param node Handle to the target render node.
1072  * @param modifier {@link ArkUI_RenderContentModifierHandle} The content modifier handle.
1073  * @return Error code.
1074  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1075  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1076  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1077  * @since 20
1078  */
1079 int32_t OH_ArkUI_RenderNodeUtils_AttachContentModifier(
1080     ArkUI_RenderNodeHandle node, ArkUI_RenderContentModifierHandle modifier);
1081 
1082 /**
1083  * @brief Create a content modifier handle.
1084  *
1085  * @return Error code.
1086  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1087  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1088  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1089  * @since 20
1090  */
1091 ArkUI_RenderContentModifierHandle OH_ArkUI_RenderNodeUtils_CreateContentModifier();
1092 
1093 /**
1094  * @brief Dispose the content modifier handle.
1095  *
1096  * @param modifier {@link ArkUI_RenderContentModifierHandle} Handle to the content modifier.
1097  * @since 20
1098  */
1099 void OH_ArkUI_RenderNodeUtils_DisposeContentModifier(ArkUI_RenderContentModifierHandle modifier);
1100 
1101 /**
1102  * @brief Attach a float property to the target content modifier.
1103  *
1104  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set float property to the target content modifier.
1105  * @param property {@link ArkUI_FloatPropertyHandle} Handle to the float property.
1106  * @return Error code.
1107  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1108  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1109  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1110  * @since 20
1111  */
1112 int32_t OH_ArkUI_RenderNodeUtils_AttachFloatProperty(
1113     ArkUI_RenderContentModifierHandle modifier, ArkUI_FloatPropertyHandle property);
1114 
1115 /**
1116  * @brief Attach a vector2 property to the target content modifier.
1117  *
1118  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set vector2 property to the target content modifier.
1119  * @param property {@link ArkUI_Vector2PropertyHandle} Handle to the vector2 property.
1120  * @return Error code.
1121  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1122  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1123  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1124  * @since 20
1125  */
1126 int32_t OH_ArkUI_RenderNodeUtils_AttachVector2Property(
1127     ArkUI_RenderContentModifierHandle modifier, ArkUI_Vector2PropertyHandle property);
1128 
1129 /**
1130  * @brief Attach a color property to the target content modifier.
1131  *
1132  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set color property to the target content modifier.
1133  * @param property {@link ArkUI_ColorPropertyHandle} Handle to the color property.
1134  * @return Error code.
1135  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1136  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1137  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1138  * @since 20
1139  */
1140 int32_t OH_ArkUI_RenderNodeUtils_AttachColorProperty(
1141     ArkUI_RenderContentModifierHandle modifier, ArkUI_ColorPropertyHandle property);
1142 
1143 /**
1144  * @brief Attach a float animatable property to the target content modifier.
1145  *
1146  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set float animatable property to the target content
1147  * modifier.
1148  * @param property {@link ArkUI_FloatAnimatablePropertyHandle} Handle to the float animatable property.
1149  * @return Error code.
1150  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1151  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1152  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1153  * @since 20
1154  */
1155 int32_t OH_ArkUI_RenderNodeUtils_AttachFloatAnimatableProperty(
1156     ArkUI_RenderContentModifierHandle modifier, ArkUI_FloatAnimatablePropertyHandle property);
1157 
1158 /**
1159  * @brief Attach a vector2 animatable property to the target content modifier.
1160  *
1161  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set vector2 animatable property to the target content
1162  * modifier.
1163  * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} Handle to the vector2 animatable property.
1164  * @return Error code.
1165  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1166  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1167  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1168  * @since 20
1169  */
1170 int32_t OH_ArkUI_RenderNodeUtils_AttachVector2AnimatableProperty(
1171     ArkUI_RenderContentModifierHandle modifier, ArkUI_Vector2AnimatablePropertyHandle property);
1172 
1173 /**
1174  * @brief Attach a color property to the target content modifier.
1175  *
1176  * @param modifier {@link ArkUI_RenderContentModifierHandle} Set color animatable property to the target content
1177  * modifier.
1178  * @param property {@link ArkUI_ColorAnimatablePropertyHandle} Handle to the color animatable property.
1179  * @return Error code.
1180  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1181  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1182  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1183  * @since 20
1184  */
1185 int32_t OH_ArkUI_RenderNodeUtils_AttachColorAnimatableProperty(
1186     ArkUI_RenderContentModifierHandle modifier, ArkUI_ColorAnimatablePropertyHandle property);
1187 
1188 /**
1189  * @brief Create a float property handle.
1190  *
1191  * @param value The property value.
1192  * @return Handle to the float property.
1193  * @since 20
1194  */
1195 ArkUI_FloatPropertyHandle OH_ArkUI_RenderNodeUtils_CreateFloatProperty(float value);
1196 
1197 /**
1198  * @brief Set value of the float property.
1199  *
1200  * @param property {@link ArkUI_FloatPropertyHandle} The float property handle.
1201  * @param value The property value.
1202  * @return Error code.
1203  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1204  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1205  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1206  * @since 20
1207  */
1208 int32_t OH_ArkUI_RenderNodeUtils_SetFloatPropertyValue(ArkUI_FloatPropertyHandle property, float value);
1209 
1210 /**
1211  * @brief Get value of the float property.
1212  *
1213  * @param property {@link ArkUI_FloatPropertyHandle} The float property handle.
1214  * @param value The pointer to receive property value.
1215  * @return Error code.
1216  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1217  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1218  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1219  * @since 20
1220  */
1221 int32_t OH_ArkUI_RenderNodeUtils_GetFloatPropertyValue(ArkUI_FloatPropertyHandle property, float* value);
1222 
1223 /**
1224  * @brief Dispose the float property handle.
1225  *
1226  * @param property {@link ArkUI_FloatPropertyHandle} Handle to the float property.
1227  * @since 20
1228  */
1229 void OH_ArkUI_RenderNodeUtils_DisposeFloatProperty(ArkUI_FloatPropertyHandle property);
1230 
1231 /**
1232  * @brief Create a vector2 property handle.
1233  *
1234  * @param x X-coordinate value of the property.
1235  * @param y Y-coordinate value of the property.
1236  * @return Handle to the vector2 property.
1237  * @since 20
1238  */
1239 ArkUI_Vector2PropertyHandle OH_ArkUI_RenderNodeUtils_CreateVector2Property(float x, float y);
1240 
1241 /**
1242  * @brief Set value of the vector2 property.
1243  *
1244  * @param property {@link ArkUI_Vector2PropertyHandle} The vector2 property handle.
1245  * @param x X-coordinate value of the property.
1246  * @param y Y-coordinate value of the property.
1247  * @return Error code.
1248  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1249  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1250  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1251  * @since 20
1252  */
1253 int32_t OH_ArkUI_RenderNodeUtils_SetVector2PropertyValue(ArkUI_Vector2PropertyHandle property, float x, float y);
1254 
1255 /**
1256  * @brief Get value of the vector2 property.
1257  *
1258  * @param property {@link ArkUI_Vector2PropertyHandle} The Vector2 property handle.
1259  * @param x The pointer to receive x-coordinate value of the property.
1260  * @param y The pointer to receive y-coordinate value of the property.
1261  * @return Error code.
1262  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1263  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1264  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1265  * @since 20
1266  */
1267 int32_t OH_ArkUI_RenderNodeUtils_GetVector2PropertyValue(ArkUI_Vector2PropertyHandle property, float* x, float* y);
1268 
1269 /**
1270  * @brief Dispose the vector2 property handle.
1271  *
1272  * @param property {@link ArkUI_Vector2PropertyHandle} Handle to the vector2 property.
1273  * @since 20
1274  */
1275 void OH_ArkUI_RenderNodeUtils_DisposeVector2Property(ArkUI_Vector2PropertyHandle property);
1276 
1277 /**
1278  * @brief Create a color property handle.
1279  *
1280  * @param value The property value.
1281  * @return Handle to the color property.
1282  * @since 20
1283  */
1284 ArkUI_ColorPropertyHandle OH_ArkUI_RenderNodeUtils_CreateColorProperty(uint32_t value);
1285 
1286 /**
1287  * @brief Set value of the color property.
1288  *
1289  * @param property {@link ArkUI_ColorPropertyHandle} The color property handle.
1290  * @param value The property value.
1291  * @return Error code.
1292  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1293  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1294  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1295  * @since 20
1296  */
1297 int32_t OH_ArkUI_RenderNodeUtils_SetColorPropertyValue(ArkUI_ColorPropertyHandle property, uint32_t value);
1298 
1299 /**
1300  * @brief Get value of the color property.
1301  *
1302  * @param property {@link ArkUI_ColorPropertyHandle} The color property handle.
1303  * @param value The pointer to receive property value.
1304  * @return Error code.
1305  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1306  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1307  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1308  * @since 20
1309  */
1310 int32_t OH_ArkUI_RenderNodeUtils_GetColorPropertyValue(ArkUI_ColorPropertyHandle property, uint32_t* value);
1311 
1312 /**
1313  * @brief Dispose the color property handle.
1314  *
1315  * @param property {@link ArkUI_ColorPropertyHandle} Handle to the color property.
1316  * @since 20
1317  */
1318 void OH_ArkUI_RenderNodeUtils_DisposeColorProperty(ArkUI_ColorPropertyHandle property);
1319 
1320 /**
1321  * @brief Create a float animatable property handle.
1322  *
1323  * @param value The property value.
1324  * @return Handle to the float animatable property.
1325  * @since 20
1326  */
1327 ArkUI_FloatAnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateFloatAnimatableProperty(float value);
1328 
1329 /**
1330  * @brief Set value of the float animatable property.
1331  *
1332  * @param property {@link ArkUI_FloatAnimatablePropertyHandle} The float animatable property handle.
1333  * @param value The property value.
1334  * @return Error code.
1335  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1336  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1337  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1338  * @since 20
1339  */
1340 int32_t OH_ArkUI_RenderNodeUtils_SetFloatAnimatablePropertyValue(
1341     ArkUI_FloatAnimatablePropertyHandle property, float value);
1342 
1343 /**
1344  * @brief Get value of the float animatable property.
1345  *
1346  * @param property {@link ArkUI_FloatAnimatablePropertyHandle} The float animatable property handle.
1347  * @param value The pointer to receive property value.
1348  * @return Error code.
1349  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1350  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1351  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1352  * @since 20
1353  */
1354 int32_t OH_ArkUI_RenderNodeUtils_GetFloatAnimatablePropertyValue(
1355     ArkUI_FloatAnimatablePropertyHandle property, float* value);
1356 
1357 /**
1358  * @brief Dispose the float animatable property handle.
1359  *
1360  * @param property {@link ArkUI_FloatAnimatablePropertyHandle} Handle to the float animatable property.
1361  * @since 20
1362  */
1363 void OH_ArkUI_RenderNodeUtils_DisposeFloatAnimatableProperty(ArkUI_FloatAnimatablePropertyHandle property);
1364 
1365 /**
1366  * @brief Create a vector2 animatable property handle.
1367  *
1368  * @param x X-coordinate value of the property.
1369  * @param y Y-coordinate value of the property.
1370  * @return Handle to the vector2 animatable property.
1371  * @since 20
1372  */
1373 ArkUI_Vector2AnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateVector2AnimatableProperty(float x, float y);
1374 
1375 /**
1376  * @brief Set value of the vector2 animatable property.
1377  *
1378  * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} The vector2 animatable property handle.
1379  * @param x X-coordinate value of the property.
1380  * @param y Y-coordinate value of the property.
1381  * @return Error code.
1382  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1383  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1384  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1385  * @since 20
1386  */
1387 int32_t OH_ArkUI_RenderNodeUtils_SetVector2AnimatablePropertyValue(
1388     ArkUI_Vector2AnimatablePropertyHandle property, float x, float y);
1389 
1390 /**
1391  * @brief Get value of the vector2 animatable property.
1392  *
1393  * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} The Vector2 animatable property handle.
1394  * @param x The pointer to receive x-coordinate value of the property.
1395  * @param y The pointer to receive y-coordinate value of the property.
1396  * @return Error code.
1397  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1398  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1399  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1400  * @since 20
1401  */
1402 int32_t OH_ArkUI_RenderNodeUtils_GetVector2AnimatablePropertyValue(
1403     ArkUI_Vector2AnimatablePropertyHandle property, float* x, float* y);
1404 
1405 /**
1406  * @brief Dispose the vector2 animatable property handle.
1407  *
1408  * @param property {@link ArkUI_Vector2AnimatablePropertyHandle} Handle to the vector2 animatable property.
1409  * @since 20
1410  */
1411 void OH_ArkUI_RenderNodeUtils_DisposeVector2AnimatableProperty(ArkUI_Vector2AnimatablePropertyHandle property);
1412 
1413 /**
1414  * @brief Create a color animatable property handle.
1415  *
1416  * @param value The property value.
1417  * @return Handle to the color animatable property.
1418  * @since 20
1419  */
1420 ArkUI_ColorAnimatablePropertyHandle OH_ArkUI_RenderNodeUtils_CreateColorAnimatableProperty(uint32_t value);
1421 
1422 /**
1423  * @brief Set value of the color animatable property.
1424  *
1425  * @param property {@link ArkUI_ColorAnimatablePropertyHandle} The color animatable property handle.
1426  * @param value The property value.
1427  * @return Error code.
1428  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1429  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1430  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1431  * @since 20
1432  */
1433 int32_t OH_ArkUI_RenderNodeUtils_SetColorAnimatablePropertyValue(
1434     ArkUI_ColorAnimatablePropertyHandle property, uint32_t value);
1435 
1436 /**
1437  * @brief Get value of the color animatable property.
1438  *
1439  * @param property {@link ArkUI_ColorAnimatablePropertyHandle} The color animatable property handle.
1440  * @param value The pointer to receive property value.
1441  * @return Error code.
1442  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1443  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1444  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1445  * @since 20
1446  */
1447 int32_t OH_ArkUI_RenderNodeUtils_GetColorAnimatablePropertyValue(
1448     ArkUI_ColorAnimatablePropertyHandle property, uint32_t* value);
1449 
1450 /**
1451  * @brief Dispose the color animatable property handle.
1452  *
1453  * @param property {@link ArkUI_ColorAnimatablePropertyHandle} Handle to the color animatable property.
1454  * @since 20
1455  */
1456 void OH_ArkUI_RenderNodeUtils_DisposeColorAnimatableProperty(ArkUI_ColorAnimatablePropertyHandle property);
1457 
1458 /**
1459  * @brief Set the onDraw function of the content modifier.
1460  *
1461  * @param modifier The target content modifier handle.
1462  * @param userData Custom data to be passed to the callback.
1463  * @param callback The draw event receiver callback.
1464  * @return Error code.
1465  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1466  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1467  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1468  * @since 20
1469  */
1470 int32_t OH_ArkUI_RenderNodeUtils_SetContentModifierOnDraw(ArkUI_RenderContentModifierHandle modifier, void* userData,
1471     void (*callback)(ArkUI_DrawContext* context, void* userData));
1472 
1473 /**
1474  * @brief Create a RectShape option.
1475  *
1476  * @return A pointer to the RectShape option.
1477  * @since 20
1478  */
1479 ArkUI_RectShapeOption* OH_ArkUI_RenderNodeUtils_CreateRectShapeOption();
1480 
1481 /**
1482  * @brief Dispose the RectShape option.
1483  *
1484  * @param option Pointer to the RectShape option.
1485  * @since 20
1486  */
1487 void OH_ArkUI_RenderNodeUtils_DisposeRectShapeOption(ArkUI_RectShapeOption* option);
1488 
1489 /**
1490  * @brief Set the edge value of RectShape option.
1491  *
1492  * @param option Pointer to the RectShape option.
1493  * @param top The top value of the RectShape.
1494  * @param right The right value of the RectShape.
1495  * @param bottom The bottom value of the RectShape.
1496  * @param left The left  value of the RectShape.
1497  * @since 20
1498  */
1499 void OH_ArkUI_RenderNodeUtils_SetRectShapeOptionEdgeValue(
1500     ArkUI_RectShapeOption* option, float top, float right, float bottom, float left);
1501 
1502 /**
1503  * @brief Create a NodeBorderStyle option.
1504  *
1505  * @return A pointer to the NodeBorderStyle option.
1506  * @since 20
1507  */
1508 ArkUI_NodeBorderStyleOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderStyleOption();
1509 
1510 /**
1511  * @brief Dispose the NodeBorderStyle option.
1512  *
1513  * @param option Pointer to the NodeBorderStyle option.
1514  * @since 20
1515  */
1516 void OH_ArkUI_RenderNodeUtils_DisposeNodeBorderStyleOption(ArkUI_NodeBorderStyleOption* option);
1517 
1518 /**
1519  * @brief Set the edge value of NodeBorderStyle option.
1520  *
1521  * @param option Pointer to the NodeBorderStyle option.
1522  * @param edgeStyle {@Link ArkUI_BorderStyle} The edge border style value of the NodeBorderStyle option.
1523  * @param direction {@Link ArkUI_EdgeDirection} The direction of the edge.
1524  * @since 20
1525  */
1526 void OH_ArkUI_RenderNodeUtils_SetNodeBorderStyleOptionEdgeStyle(
1527     ArkUI_NodeBorderStyleOption* option, ArkUI_BorderStyle edgeStyle, ArkUI_EdgeDirection direction);
1528 
1529 /**
1530  * @brief Create a NodeBorderWidth option.
1531  *
1532  * @return A pointer to the NodeBorderWidth option.
1533  * @since 20
1534  */
1535 ArkUI_NodeBorderWidthOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderWidthOption();
1536 
1537 /**
1538  * @brief Dispose the NodeBorderWidth option.
1539  *
1540  * @param option Pointer to the NodeBorderWidth option.
1541  * @since 20
1542  */
1543 void OH_ArkUI_RenderNodeUtils_DisposeNodeBorderWidthOption(ArkUI_NodeBorderWidthOption* option);
1544 
1545 /**
1546  * @brief Set the edge value of NodeBorderWidth option.
1547  *
1548  * @param option Pointer to the NodeBorderWidth option.
1549  * @param edgeWidth The edge width value of the NodeBorderWidth option.
1550  * @param direction {@Link ArkUI_EdgeDirection} The direction of the edge.
1551  * @since 20
1552  */
1553 void OH_ArkUI_RenderNodeUtils_SetNodeBorderWidthOptionEdgeWidth(
1554     ArkUI_NodeBorderWidthOption* option, float edgeWidth, ArkUI_EdgeDirection direction);
1555 
1556 /**
1557  * @brief Create a NodeBorderColor option.
1558  *
1559  * @return A pointer to the NodeBorderColor option.
1560  * @since 20
1561  */
1562 ArkUI_NodeBorderColorOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderColorOption();
1563 
1564 /**
1565  * @brief Dispose the NodeBorderColor option.
1566  *
1567  * @param option Pointer to the NodeBorderColor option.
1568  * @since 20
1569  */
1570 void OH_ArkUI_RenderNodeUtils_DisposeNodeBorderColorOption(ArkUI_NodeBorderColorOption* option);
1571 
1572 /**
1573  * @brief Set the edge value of NodeBorderColor option.
1574  *
1575  * @param option Pointer to the NodeBorderColor option.
1576  * @param edgeColor The edge color value of the NodeBorderColor option.
1577  * @param direction {@Link ArkUI_EdgeDirection} The direction of the edge.
1578  * @since 20
1579  */
1580 void OH_ArkUI_RenderNodeUtils_SetNodeBorderColorOptionEdgeColor(
1581     ArkUI_NodeBorderColorOption* option, uint32_t edgeColor, ArkUI_EdgeDirection direction);
1582 
1583 /**
1584  * @brief Create a NodeBorderRadius option.
1585  *
1586  * @return A pointer to the NodeBorderRadius option.
1587  * @since 20
1588  */
1589 ArkUI_NodeBorderRadiusOption* OH_ArkUI_RenderNodeUtils_CreateNodeBorderRadiusOption();
1590 
1591 /**
1592  * @brief Dispose the NodeBorderRadius option.
1593  *
1594  * @param option Pointer to the NodeBorderRadius option.
1595  * @since 20
1596  */
1597 void OH_ArkUI_RenderNodeUtils_DisposeNodeBorderRadiusOption(ArkUI_NodeBorderRadiusOption* option);
1598 
1599 /**
1600  * @brief Set the corner value of NodeBorderRadius option.
1601  *
1602  * @param option Pointer to the NodeBorderRadius option.
1603  * @param cornerRadius The corner radius value of the NodeBorderRadius option.
1604  * @param direction {@Link ArkUI_CornerDirection} The direction of the corner.
1605  * @since 20
1606  */
1607 void OH_ArkUI_RenderNodeUtils_SetNodeBorderRadiusOptionCornerRadius(
1608     ArkUI_NodeBorderRadiusOption* option, uint32_t cornerRadius, ArkUI_CornerDirection direction);
1609 
1610 /**
1611  * @brief Create a CircleShape option.
1612  *
1613  * @return A pointer to the CircleShape option.
1614  * @since 20
1615  */
1616 ArkUI_CircleShapeOption* OH_ArkUI_RenderNodeUtils_CreateCircleShapeOption();
1617 
1618 /**
1619  * @brief Dispose the CircleShape option.
1620  *
1621  * @param option Pointer to the CircleShape option.
1622  * @since 20
1623  */
1624 void OH_ArkUI_RenderNodeUtils_DisposeCircleShapeOption(ArkUI_CircleShapeOption* option);
1625 
1626 /**
1627  * @brief Set the centerX value of CircleShape option.
1628  *
1629  * @param option Pointer to the CircleShape option.
1630  * @param centerX The centerX value.
1631  * @since 20
1632  */
1633 void OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterX(ArkUI_CircleShapeOption* option, float centerX);
1634 
1635 /**
1636  * @brief Set the centerY value of CircleShape option.
1637  *
1638  * @param option Pointer to the CircleShape option.
1639  * @param centerY The centerY value.
1640  * @since 20
1641  */
1642 void OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionCenterY(ArkUI_CircleShapeOption* option, float centerY);
1643 
1644 /**
1645  * @brief Set the radius value of CircleShape option.
1646  *
1647  * @param option Pointer to the CircleShape option.
1648  * @param radius The radius value.
1649  * @since 20
1650  */
1651 void OH_ArkUI_RenderNodeUtils_SetCircleShapeOptionRadius(ArkUI_CircleShapeOption* option, float radius);
1652 
1653 /**
1654  * @brief Create a RoundRectShape option.
1655  *
1656  * @return A pointer to the RoundRectShape option.
1657  * @since 20
1658  */
1659 ArkUI_RoundRectShapeOption* OH_ArkUI_RenderNodeUtils_CreateRoundRectShapeOption();
1660 
1661 /**
1662  * @brief Dispose the RoundRectShape option.
1663  *
1664  * @param option Pointer to the RoundRectShape option.
1665  * @since 20
1666  */
1667 void OH_ArkUI_RenderNodeUtils_DisposeRoundRectShapeOption(ArkUI_RoundRectShapeOption* option);
1668 
1669 /**
1670  * @brief Set the edge value of RoundRectShape option.
1671  *
1672  * @param option Pointer to the RoundRectShape option.
1673  * @param top The top value of the RoundRectShape.
1674  * @param right The right value of the RoundRectShape.
1675  * @param bottom The bottom value of the RoundRectShape.
1676  * @param left The left value of the RoundRectShape.
1677  * @since 20
1678  */
1679 void OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionEdgeValue(
1680     ArkUI_RoundRectShapeOption* option, float top, float right, float bottom, float left);
1681 
1682 /**
1683  * @brief Set the coordinate value of the target corner.
1684  *
1685  * @param option Pointer to the RoundRectShape option.
1686  * @param x X-coordinate of the target corner (in pixels).
1687  * @param y Y-coordinate of the target corner (in pixels).
1688  * @param direction {@Link ArkUI_CornerDirection} The direction of the corner.
1689  * @since 20
1690  */
1691 void OH_ArkUI_RenderNodeUtils_SetRoundRectShapeOptionCornerXY(
1692     ArkUI_RoundRectShapeOption* option, float x, float y, ArkUI_CornerDirection direction);
1693 
1694 /**
1695  * @brief Create a CommandPath option.
1696  *
1697  * @return A pointer to the CommandPath option.
1698  * @since 20
1699  */
1700 ArkUI_CommandPathOption* OH_ArkUI_RenderNodeUtils_CreateCommandPathOption();
1701 
1702 /**
1703  * @brief Dispose the CommandPath option.
1704  *
1705  * @param option Pointer to the CommandPath option.
1706  * @since 20
1707  */
1708 void OH_ArkUI_RenderNodeUtils_DisposeCommandPathOption(ArkUI_CommandPathOption* option);
1709 
1710 /**
1711  * @brief Set the commands value of CommandPath option.
1712  *
1713  * @param option Pointer to the CommandPath option.
1714  * @param commands The commands value.
1715  * @since 20
1716  */
1717 void OH_ArkUI_RenderNodeUtils_SetCommandPathOptionCommands(ArkUI_CommandPathOption* option, char* commands);
1718 
1719 /**
1720  * @brief Create a mask option from a RectShape option.
1721  *
1722  * @param shape {@link ArkUI_RectShapeOption} Pointer to the RectShape option.
1723  * @return A pointer to the RenderNodeMask option.
1724  * @since 20
1725  */
1726 ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRectShape(
1727     ArkUI_RectShapeOption* shape);
1728 
1729 /**
1730  * @brief Create a mask option from a RoundRectShape option.
1731  *
1732  * @param shape {@link ArkUI_RoundRectShapeOption} Pointer to the RoundRectShape option.
1733  * @return A pointer to the RenderNodeMask option.
1734  * @since 20
1735  */
1736 ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromRoundRectShape(
1737     ArkUI_RoundRectShapeOption* shape);
1738 
1739 /**
1740  * @brief Create a mask option from a CircleShape option.
1741  *
1742  * @param shape {@link ArkUI_CircleShapeOption} Pointer to the CircleShape option.
1743  * @return A pointer to the RenderNodeMask option.
1744  * @since 20
1745  */
1746 ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCircleShape(
1747     ArkUI_CircleShapeOption* shape);
1748 
1749 /**
1750  * @brief Create a mask option from a OvalShape option.
1751  *
1752  * @param shape {@link ArkUI_RectShapeOption} Pointer to the OvalShape option.
1753  * @return A pointer to the RenderNodeMask option.
1754  * @since 20
1755  */
1756 ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromOvalShape(
1757     ArkUI_RectShapeOption* shape);
1758 
1759 /**
1760  * @brief Create a mask option from a CommandPath option.
1761  *
1762  * @param path {@link ArkUI_CommandPathOption} Pointer to the CommandPath option.
1763  * @return A pointer to the RenderNodeMask option.
1764  * @since 20
1765  */
1766 ArkUI_RenderNodeMaskOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeMaskOptionFromCommandPath(
1767     ArkUI_CommandPathOption* path);
1768 
1769 /**
1770  * @brief Dispose the RenderNodeMask option.
1771  *
1772  * @param option Pointer to the RenderNodeMask option.
1773  * @since 20
1774  */
1775 void OH_ArkUI_RenderNodeUtils_DisposeRenderNodeMaskOption(ArkUI_RenderNodeMaskOption* option);
1776 
1777 /**
1778  * @brief Set the fill color of RenderNodeMask option.
1779  *
1780  * @param mask Pointer to the RenderNodeMask option.
1781  * @param fillColor The fill color of the mask.
1782  * @return Error code.
1783  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1784  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1785  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1786  * @since 20
1787  */
1788 void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionFillColor(ArkUI_RenderNodeMaskOption* mask, uint32_t fillColor);
1789 
1790 /**
1791  * @brief Set the stroke color of RenderNodeMask option.
1792  *
1793  * @param mask Pointer to the RenderNodeMask option.
1794  * @param strokeColor The stroke color of the mask.
1795  * @return Error code.
1796  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1797  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1798  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1799  * @since 20
1800  */
1801 void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeColor(
1802     ArkUI_RenderNodeMaskOption* mask, uint32_t strokeColor);
1803 
1804 /**
1805  * @brief Set the stroke width of RenderNodeMask option.
1806  *
1807  * @param mask Pointer to the RenderNodeMask option.
1808  * @param strokeWidth The stroke width of the mask.
1809  * @return Error code.
1810  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
1811  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
1812  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
1813  * @since 20
1814  */
1815 void OH_ArkUI_RenderNodeUtils_SetRenderNodeMaskOptionStrokeWidth(ArkUI_RenderNodeMaskOption* mask, float strokeWidth);
1816 
1817 /**
1818  * @brief Create a clip option from a RectShape option.
1819  *
1820  * @param shape {@link ArkUI_RectShapeOption} Pointer to the RectShape option.
1821  * @return A pointer to the RenderNodeClip option.
1822  * @since 20
1823  */
1824 ArkUI_RenderNodeClipOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRectShape(
1825     ArkUI_RectShapeOption* shape);
1826 
1827 /**
1828  * @brief Create a clip option from a RoundRectShape option.
1829  *
1830  * @param shape {@link ArkUI_RoundRectShapeOption} Pointer to the RoundRectShape option.
1831  * @return A pointer to the RenderNodeClip option.
1832  * @since 20
1833  */
1834 ArkUI_RenderNodeClipOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromRoundRectShape(
1835     ArkUI_RoundRectShapeOption* shape);
1836 
1837 /**
1838  * @brief Create a clip option from a CircleShape option.
1839  *
1840  * @param shape {@link ArkUI_CircleShapeOption} Pointer to the CircleShape option.
1841  * @return A pointer to the RenderNodeClip option.
1842  * @since 20
1843  */
1844 ArkUI_RenderNodeClipOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCircleShape(
1845     ArkUI_CircleShapeOption* shape);
1846 
1847 /**
1848  * @brief Create a clip option from a OvalShape option.
1849  *
1850  * @param shape {@link ArkUI_RectShapeOption} Pointer to the OvalShape option.
1851  * @return A pointer to the RenderNodeClip option.
1852  * @since 20
1853  */
1854 ArkUI_RenderNodeClipOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromOvalShape(
1855     ArkUI_RectShapeOption* shape);
1856 
1857 /**
1858  * @brief Create a clip option from a CommandPath option.
1859  *
1860  * @param path {@link ArkUI_CommandPathOption} Pointer to the CommandPath option.
1861  * @return A pointer to the RenderNodeClip option.
1862  * @since 20
1863  */
1864 ArkUI_RenderNodeClipOption* OH_ArkUI_RenderNodeUtils_CreateRenderNodeClipOptionFromCommandPath(
1865     ArkUI_CommandPathOption* path);
1866 
1867 /**
1868  * @brief Dispose the RenderNodeClip option.
1869  *
1870  * @param option Pointer to the RenderNodeClip option.
1871  * @since 20
1872  */
1873 void OH_ArkUI_RenderNodeUtils_DisposeRenderNodeClipOption(ArkUI_RenderNodeClipOption* option);
1874 
1875 #ifdef __cplusplus
1876 };
1877 #endif
1878 
1879 #endif // ARKUI_NATIVE_RENDER_H
1880 /** @} */
1881