• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 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 #ifndef ROSEN_RENDER_SERVICE_BASE_COMMAND_RS_NODE_COMMAND_H
17 #define ROSEN_RENDER_SERVICE_BASE_COMMAND_RS_NODE_COMMAND_H
18 
19 #include "command/rs_command_templates.h"
20 #include "common/rs_macros.h"
21 #include "modifier_ng/rs_modifier_ng_type.h"
22 #include "pipeline/rs_render_node.h"
23 
24 namespace OHOS {
25 namespace Rosen {
26 //Each command HAVE TO have UNIQUE ID in ALL HISTORY
27 //If a command is not used and you want to delete it,
28 //just COMMENT it - and never use this value anymore
29 enum RSNodeCommandType : uint16_t {
30     ADD_MODIFIER = 0x0000,
31     REMOVE_MODIFIER = 0x0001,
32 
33     UPDATE_MODIFIER_BOOL = 0x0100,
34     UPDATE_MODIFIER_FLOAT = 0x0101,
35     UPDATE_MODIFIER_INT = 0x0102,
36     UPDATE_MODIFIER_COLOR = 0x0103,
37     UPDATE_MODIFIER_GRAVITY = 0x0104,
38     UPDATE_MODIFIER_MATRIX3F = 0x0105,
39     UPDATE_MODIFIER_QUATERNION = 0x0106,
40     // 0x0107 deleted, do not use this value never.
41     UPDATE_MODIFIER_IMAGE_PTR = 0x0108,
42     UPDATE_MODIFIER_MASK_PTR = 0x0109,
43     UPDATE_MODIFIER_PATH_PTR = 0x010A,
44     UPDATE_MODIFIER_DYNAMIC_BRIGHTNESS = 0x010B,
45     UPDATE_MODIFIER_GRADIENT_BLUR_PTR = 0x010C,
46     UPDATE_MODIFIER_EMITTER_UPDATER_PTR = 0x010D,
47     UPDATE_MODIFIER_NOISE_FIELD_PTR = 0x010E,
48     UPDATE_MODIFIER_SHADER_PTR = 0x010F,
49     UPDATE_MODIFIER_VECTOR2F = 0x0110,
50     UPDATE_MODIFIER_VECTOR3F = 0x0111,
51     UPDATE_MODIFIER_VECTOR4_BORDER_STYLE = 0x0112,
52     UPDATE_MODIFIER_VECTOR4_COLOR = 0x0113,
53     UPDATE_MODIFIER_VECTOR4F = 0x0114,
54     UPDATE_MODIFIER_RRECT = 0x0115,
55     // 0x0116 deleted, do not use this value never.
56     UPDATE_MODIFIER_DRAWING_MATRIX = 0x0117,
57     UPDATE_MODIFIER_COMPLEX_SHADER_PARAM = 0X0118,
58     UPDATE_MODIFIER_UI_FILTER_PTR = 0X0119,
59     UPDATE_MODIFIER_DRAW_CMD_LIST_NG = 0x0120,
60     UPDATE_MODIFIER_NG_FILTER_BASE_PTR = 0X0121,
61     UPDATE_MODIFIER_NG_SHADER_BASE_PTR = 0X0122,
62     UPDATE_MODIFIER_NG_MASK_BASE_PTR = 0X0123,
63 
64     SET_FREEZE = 0x0200,
65     SET_DRAW_REGION = 0x0201,
66     SET_OUT_OF_PARENT = 0x0202,
67     SET_TAKE_SURFACE_CAPTURE_FOR_UI_FLAG = 0x0203,
68     SET_UIFIRST_SWITCH = 0x0204,
69     SET_ENABLE_HDR_EFFECT = 0x0205,
70     SET_NEED_USE_CMDLIST_DRAW_REGION = 0x0206,
71 
72     REGISTER_GEOMETRY_TRANSITION = 0x0300,
73     UNREGISTER_GEOMETRY_TRANSITION = 0x0301,
74 
75     MARK_NODE_GROUP = 0x0400,
76     MARK_NODE_SINGLE_FRAME_COMPOSER = 0x0401,
77     MARK_SUGGEST_OPINC_NODE = 0x0402,
78 
79     MARK_UIFIRST_NODE = 0x0500,
80     MARK_UIFIRST_NODE_FORCE = 0x0501,
81 
82     SET_NODE_NAME = 0x0600,
83     UPDATE_MODIFIER_MOTION_BLUR_PTR = 0x0601,
84     UPDATE_MODIFIER_MAGNIFIER_PTR = 0x0602,
85     UPDATE_MODIFIER_WATER_RIPPLE = 0x0603,
86     UPDATE_MODIFIER_FLY_OUT = 0x0604,
87     REMOVE_ALL_MODIFIERS = 0x0605,
88 
89     DUMP_CLIENT_NODE_TREE = 0x0700,
90     COMMIT_DUMP_CLIENT_NODE_TREE = 0x0701,
91 
92     SET_UICONTEXT_TOKEN = 0x0800,
93 
94     SET_DRAW_NODE_TYPE = 0x0900,
95 
96     UPDATE_OCCLUSION_CULLING_STATUS = 0x0a00,
97 
98     ADD_MODIFIER_NG = 0x0b00,
99     REMOVE_MODIFIER_NG = 0x0b01,
100     MODIFIER_NG_ATTACH_PROPERTY = 0x0b02,
101     MODIFIER_NG_DETACH_PROPERTY = 0x0b03,
102     REMOVE_ALL_MODIFIERS_NG = 0x0b04,
103 
104     MARK_REPAINT_BOUNDARY = 0x0c00,
105 };
106 
107 class RSB_EXPORT RSNodeCommandHelper {
108 public:
109     template<typename T>
UpdateProperty(RSContext & context,NodeId nodeId,T value,PropertyId id,PropertyUpdateType type)110     static void UpdateProperty(RSContext& context, NodeId nodeId, T value, PropertyId id, PropertyUpdateType type)
111     {
112         auto& nodeMap = context.GetNodeMap();
113         auto node = nodeMap.GetRenderNode<RSRenderNode>(nodeId);
114         if (!node) {
115             return;
116         }
117         if (type == UPDATE_TYPE_FORCE_OVERWRITE) {
118             node->GetAnimationManager().CancelAnimationByPropertyId(id);
119         }
120         if (auto property = node->GetProperty(id)) {
121             std::static_pointer_cast<RSRenderProperty<T>>(property)->Set(value, type);
122         }
123     }
124 
125     static void UpdateModifierNGDrawCmdList(
126         RSContext& context, NodeId nodeId, Drawing::DrawCmdListPtr value, PropertyId propertyId);
127     static void SetFreeze(RSContext& context, NodeId nodeId, bool isFreeze);
128     static void SetNodeName(RSContext& context, NodeId nodeId, std::string& nodeName);
129     static void MarkNodeGroup(RSContext& context, NodeId nodeId, bool isNodeGroup, bool isForced,
130         bool includeProperty);
131     static void MarkRepaintBoundary(RSContext& context, NodeId nodeId, bool isRepaintBoundary);
132     static void MarkNodeSingleFrameComposer(RSContext& context, NodeId nodeId, bool isNodeFasterDraw, pid_t pid);
133     static void MarkSuggestOpincNode(RSContext& context, NodeId nodeId, bool isOpincNode, bool isNeedCalculate);
134 
135     static void MarkUifirstNode(RSContext& context, NodeId nodeId, bool isUifirstNode);
136     static void ForceUifirstNode(RSContext& context, NodeId nodeId, bool isForceFlag, bool isUifirstEnable);
137     static void SetUIFirstSwitch(RSContext& context, NodeId nodeId, RSUIFirstSwitch uiFirstSwitch);
138     static void SetDrawRegion(RSContext& context, NodeId nodeId, std::shared_ptr<RectF> rect);
139     static void SetOutOfParent(RSContext& context, NodeId nodeId, OutOfParentType outOfParent);
140     static void SetTakeSurfaceForUIFlag(RSContext& context, NodeId nodeId);
141     static void SetNeedUseCmdlistDrawRegion(RSContext &context, NodeId nodeId, bool needUseCmdlistDrawRegion);
142 
143     static void RegisterGeometryTransitionPair(RSContext& context, NodeId inNodeId, NodeId outNodeId,
144         const bool isInSameWindow);
145     static void UnregisterGeometryTransitionPair(RSContext& context, NodeId inNodeId, NodeId outNodeId);
146 
147     using DumpNodeTreeProcessor = std::function<void(NodeId, pid_t, uint64_t, uint32_t)>;
148     static void DumpClientNodeTree(RSContext& context, NodeId nodeId, pid_t pid, uint64_t token, uint32_t taskId);
149     static RSB_EXPORT void SetDumpNodeTreeProcessor(DumpNodeTreeProcessor processor);
150 
151     using CommitDumpNodeTreeProcessor = std::function<void(NodeId, pid_t, uint32_t, const std::string&)>;
152     static void CommitDumpClientNodeTree(RSContext& context, NodeId nodeId, pid_t pid, uint32_t taskId,
153         const std::string& result);
154     static RSB_EXPORT void SetCommitDumpNodeTreeProcessor(CommitDumpNodeTreeProcessor processor);
155     static void SetUIToken(RSContext& context, NodeId nodeId, uint64_t token);
156     static void SetDrawNodeType(RSContext& context, NodeId nodeId, DrawNodeType nodeType);
157     static void UpdateOcclusionCullingStatus(RSContext& context, NodeId nodeId,
158         bool enable, NodeId keyOcclusionNodeId);
159 
160     static void AddModifierNG(
161         RSContext& context, NodeId nodeId, const std::shared_ptr<ModifierNG::RSRenderModifier>& modifier);
162     static void RemoveModifierNG(RSContext& context, NodeId nodeId, ModifierNG::RSModifierType type, ModifierId id);
163     static void ModifierNGAttachProperty(RSContext& context, NodeId nodeId, ModifierId modifierId,
164         ModifierNG::RSModifierType modifierType, ModifierNG::RSPropertyType propertyType,
165         std::shared_ptr<RSRenderPropertyBase> prop);
166     static void ModifierNGDetachProperty(RSContext& context, NodeId nodeId, ModifierId modifierId,
167         ModifierNG::RSModifierType modifierType, ModifierNG::RSPropertyType type);
168     static void RemoveAllModifiersNG(RSContext& context, NodeId nodeId);
169 };
170 
171 ADD_COMMAND(RSUpdatePropertyBool,
172     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_BOOL,
173         RSNodeCommandHelper::UpdateProperty<bool>, NodeId, bool, PropertyId, PropertyUpdateType))
174 ADD_COMMAND(RSUpdatePropertyFloat,
175     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_FLOAT,
176         RSNodeCommandHelper::UpdateProperty<float>, NodeId, float, PropertyId, PropertyUpdateType))
177 ADD_COMMAND(RSUpdatePropertyInt,
178     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_INT,
179         RSNodeCommandHelper::UpdateProperty<int>, NodeId, int, PropertyId, PropertyUpdateType))
180 ADD_COMMAND(RSUpdatePropertyColor,
181     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_COLOR,
182         RSNodeCommandHelper::UpdateProperty<Color>, NodeId, Color, PropertyId, PropertyUpdateType))
183 ADD_COMMAND(RSUpdatePropertyGravity,
184     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_GRAVITY,
185         RSNodeCommandHelper::UpdateProperty<Gravity>, NodeId, Gravity, PropertyId, PropertyUpdateType))
186 ADD_COMMAND(RSUpdatePropertyMatrix3f,
187     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_MATRIX3F,
188         RSNodeCommandHelper::UpdateProperty<Matrix3f>, NodeId, Matrix3f, PropertyId, PropertyUpdateType))
189 ADD_COMMAND(RSUpdatePropertyQuaternion,
190     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_QUATERNION,
191         RSNodeCommandHelper::UpdateProperty<Quaternion>, NodeId, Quaternion, PropertyId, PropertyUpdateType))
192 ADD_COMMAND(RSUpdatePropertyNGFilterBase,
193     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_NG_FILTER_BASE_PTR,
194         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSNGRenderFilterBase>>,
195         NodeId, std::shared_ptr<RSNGRenderFilterBase>, PropertyId, PropertyUpdateType))
196 ADD_COMMAND(RSUpdatePropertyNGShaderBase,
197     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_NG_SHADER_BASE_PTR,
198         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSNGRenderShaderBase>>,
199         NodeId, std::shared_ptr<RSNGRenderShaderBase>, PropertyId, PropertyUpdateType))
200 ADD_COMMAND(RSUpdatePropertyNGMaskBase,
201     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_NG_MASK_BASE_PTR,
202         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSNGRenderMaskBase>>,
203         NodeId, std::shared_ptr<RSNGRenderMaskBase>, PropertyId, PropertyUpdateType))
204 ADD_COMMAND(RSUpdatePropertyImage,
205     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_IMAGE_PTR,
206         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSImage>>,
207         NodeId, std::shared_ptr<RSImage>, PropertyId, PropertyUpdateType))
208 ADD_COMMAND(RSUpdatePropertyMask,
209     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_MASK_PTR,
210         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSMask>>,
211         NodeId, std::shared_ptr<RSMask>, PropertyId, PropertyUpdateType))
212 ADD_COMMAND(RSUpdatePropertyPath,
213     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_PATH_PTR,
214         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSPath>>,
215         NodeId, std::shared_ptr<RSPath>, PropertyId, PropertyUpdateType))
216 ADD_COMMAND(RSUpdatePropertyDynamicBrightness,
217     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_DYNAMIC_BRIGHTNESS,
218         RSNodeCommandHelper::UpdateProperty<RSDynamicBrightnessPara>,
219         NodeId, RSDynamicBrightnessPara, PropertyId, PropertyUpdateType))
220 ADD_COMMAND(RSUpdatePropertyWaterRipple,
221     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_WATER_RIPPLE,
222         RSNodeCommandHelper::UpdateProperty<RSWaterRipplePara>,
223         NodeId, RSWaterRipplePara, PropertyId, PropertyUpdateType))
224 ADD_COMMAND(RSUpdatePropertyFlyOut,
225     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_FLY_OUT,
226         RSNodeCommandHelper::UpdateProperty<RSFlyOutPara>, NodeId, RSFlyOutPara, PropertyId, PropertyUpdateType))
227 ADD_COMMAND(RSUpdatePropertyLinearGradientBlurPara,
228     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_GRADIENT_BLUR_PTR,
229         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSLinearGradientBlurPara>>,
230         NodeId, std::shared_ptr<RSLinearGradientBlurPara>, PropertyId, PropertyUpdateType))
231 ADD_COMMAND(RSUpdatePropertyMotionBlurPara,
232     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_MOTION_BLUR_PTR,
233         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<MotionBlurParam>>,
234         NodeId, std::shared_ptr<MotionBlurParam>, PropertyId, PropertyUpdateType))
235 ADD_COMMAND(RSUpdatePropertyMagnifierPara,
236     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_MAGNIFIER_PTR,
237         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSMagnifierParams>>,
238         NodeId, std::shared_ptr<RSMagnifierParams>, PropertyId, PropertyUpdateType))
239 ADD_COMMAND(RSUpdatePropertyEmitterUpdater,
240     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_EMITTER_UPDATER_PTR,
241         RSNodeCommandHelper::UpdateProperty<std::vector<std::shared_ptr<EmitterUpdater>>>,
242         NodeId, std::vector<std::shared_ptr<EmitterUpdater>>, PropertyId, PropertyUpdateType))
243 ADD_COMMAND(RSUpdatePropertyParticleNoiseFields,
244     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_NOISE_FIELD_PTR,
245         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<ParticleNoiseFields>>,
246         NodeId, std::shared_ptr<ParticleNoiseFields>, PropertyId, PropertyUpdateType))
247 ADD_COMMAND(RSUpdatePropertyShader,
248     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_SHADER_PTR,
249         RSNodeCommandHelper::UpdateProperty<std::shared_ptr<RSShader>>,
250         NodeId, std::shared_ptr<RSShader>, PropertyId, PropertyUpdateType))
251 ADD_COMMAND(RSUpdatePropertyVector2f,
252     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_VECTOR2F,
253         RSNodeCommandHelper::UpdateProperty<Vector2f>, NodeId, Vector2f, PropertyId, PropertyUpdateType))
254 ADD_COMMAND(RSUpdatePropertyVector3f,
255     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_VECTOR3F, RSNodeCommandHelper::UpdateProperty<Vector3f>,
256         NodeId, Vector3f, PropertyId, PropertyUpdateType))
257 ADD_COMMAND(RSUpdatePropertyBorderStyle,
258     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_VECTOR4_BORDER_STYLE,
259         RSNodeCommandHelper::UpdateProperty<Vector4<uint32_t>>,
260         NodeId, Vector4<uint32_t>, PropertyId, PropertyUpdateType))
261 ADD_COMMAND(RSUpdatePropertyVector4Color,
262     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_VECTOR4_COLOR,
263         RSNodeCommandHelper::UpdateProperty<Vector4<Color>>, NodeId, Vector4<Color>, PropertyId, PropertyUpdateType))
264 ADD_COMMAND(RSUpdatePropertyVector4f,
265     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_VECTOR4F,
266         RSNodeCommandHelper::UpdateProperty<Vector4f>, NodeId, Vector4f, PropertyId, PropertyUpdateType))
267 ADD_COMMAND(RSUpdatePropertyRRect,
268     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_RRECT,
269         RSNodeCommandHelper::UpdateProperty<RRect>, NodeId, RRect, PropertyId, PropertyUpdateType))
270 ADD_COMMAND(RSUpdatePropertyDrawingMatrix,
271     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_DRAWING_MATRIX,
272         RSNodeCommandHelper::UpdateProperty<Drawing::Matrix>, NodeId, Drawing::Matrix, PropertyId, PropertyUpdateType))
273 ADD_COMMAND(RSUpdatePropertyComplexShaderParam,
274     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_COMPLEX_SHADER_PARAM,
275         RSNodeCommandHelper::UpdateProperty<std::vector<float>>,
276         NodeId, std::vector<float>, PropertyId, PropertyUpdateType))
277 
278 ADD_COMMAND(RSSetFreeze,
279     ARG(PERMISSION_APP, RS_NODE, SET_FREEZE,
280         RSNodeCommandHelper::SetFreeze, NodeId, bool))
281 ADD_COMMAND(RSSetNodeName,
282     ARG(PERMISSION_APP, RS_NODE, SET_NODE_NAME,
283         RSNodeCommandHelper::SetNodeName, NodeId, std::string))
284 ADD_COMMAND(RSSetUIContextToken,
285     ARG(PERMISSION_APP, BASE_NODE, SET_UICONTEXT_TOKEN,
286         RSNodeCommandHelper::SetUIToken, NodeId, uint64_t))
287 ADD_COMMAND(RSMarkNodeGroup,
288     ARG(PERMISSION_APP, RS_NODE, MARK_NODE_GROUP,
289         RSNodeCommandHelper::MarkNodeGroup, NodeId, bool, bool, bool))
290 ADD_COMMAND(RSMarkRepaintBoundary,
291     ARG(PERMISSION_APP, RS_NODE, MARK_REPAINT_BOUNDARY,
292         RSNodeCommandHelper::MarkRepaintBoundary, NodeId, bool))
293 ADD_COMMAND(RSMarkNodeSingleFrameComposer,
294     ARG(PERMISSION_APP, RS_NODE, MARK_NODE_SINGLE_FRAME_COMPOSER,
295         RSNodeCommandHelper::MarkNodeSingleFrameComposer, NodeId, bool, pid_t))
296 ADD_COMMAND(RSMarkSuggestOpincNode,
297     ARG(PERMISSION_APP, RS_NODE, MARK_SUGGEST_OPINC_NODE,
298         RSNodeCommandHelper::MarkSuggestOpincNode, NodeId, bool, bool))
299 
300 ADD_COMMAND(RSMarkUifirstNode,
301     ARG(PERMISSION_APP, RS_NODE, MARK_UIFIRST_NODE,
302         RSNodeCommandHelper::MarkUifirstNode, NodeId, bool))
303 
304 ADD_COMMAND(RSForceUifirstNode,
305     ARG(PERMISSION_APP, RS_NODE, MARK_UIFIRST_NODE_FORCE,
306         RSNodeCommandHelper::ForceUifirstNode, NodeId, bool, bool))
307 
308 ADD_COMMAND(RSSetUIFirstSwitch,
309     ARG(PERMISSION_APP, RS_NODE, SET_UIFIRST_SWITCH,
310         RSNodeCommandHelper::SetUIFirstSwitch, NodeId, RSUIFirstSwitch))
311 
312 ADD_COMMAND(RSSetDrawRegion,
313     ARG(PERMISSION_APP, RS_NODE, SET_DRAW_REGION,
314         RSNodeCommandHelper::SetDrawRegion, NodeId, std::shared_ptr<RectF>))
315 ADD_COMMAND(RSSetOutOfParent,
316     ARG(PERMISSION_APP, RS_NODE, SET_OUT_OF_PARENT,
317         RSNodeCommandHelper::SetOutOfParent, NodeId, OutOfParentType))
318 
319 ADD_COMMAND(RSSetTakeSurfaceForUIFlag,
320     ARG(PERMISSION_APP, RS_NODE, SET_TAKE_SURFACE_CAPTURE_FOR_UI_FLAG,
321         RSNodeCommandHelper::SetTakeSurfaceForUIFlag, NodeId))
322 
323 ADD_COMMAND(RSSetNeedUseCmdlistDrawRegion,
324     ARG(PERMISSION_APP, RS_NODE, SET_NEED_USE_CMDLIST_DRAW_REGION,
325         RSNodeCommandHelper::SetNeedUseCmdlistDrawRegion, NodeId, bool))
326 
327 ADD_COMMAND(RSRegisterGeometryTransitionNodePair,
328     ARG(PERMISSION_APP, RS_NODE, REGISTER_GEOMETRY_TRANSITION,
329         RSNodeCommandHelper::RegisterGeometryTransitionPair, NodeId, NodeId, bool))
330 ADD_COMMAND(RSUnregisterGeometryTransitionNodePair,
331     ARG(PERMISSION_APP, RS_NODE, UNREGISTER_GEOMETRY_TRANSITION,
332         RSNodeCommandHelper::UnregisterGeometryTransitionPair, NodeId, NodeId))
333 
334 ADD_COMMAND(RSDumpClientNodeTree,
335     ARG(PERMISSION_APP, RS_NODE, DUMP_CLIENT_NODE_TREE,
336         RSNodeCommandHelper::DumpClientNodeTree, NodeId, pid_t, uint64_t, uint32_t))
337 ADD_COMMAND(RSCommitDumpClientNodeTree,
338     ARG(PERMISSION_APP, RS_NODE, COMMIT_DUMP_CLIENT_NODE_TREE,
339         RSNodeCommandHelper::CommitDumpClientNodeTree, NodeId, pid_t, uint32_t, std::string))
340 ADD_COMMAND(RSSetDrawNodeType,
341     ARG(PERMISSION_APP, RS_NODE, SET_DRAW_NODE_TYPE,
342         RSNodeCommandHelper::SetDrawNodeType, NodeId, DrawNodeType))
343 ADD_COMMAND(RSUpdateOcclusionCullingStatus,
344     ARG(PERMISSION_APP, RS_NODE, UPDATE_OCCLUSION_CULLING_STATUS,
345         RSNodeCommandHelper::UpdateOcclusionCullingStatus, NodeId, bool, NodeId))
346 
347 ADD_COMMAND(RSAddModifierNG,
348     ARG(PERMISSION_APP, RS_NODE, ADD_MODIFIER_NG,
349         RSNodeCommandHelper::AddModifierNG, NodeId, std::shared_ptr<ModifierNG::RSRenderModifier>))
350 ADD_COMMAND(RSRemoveModifierNG,
351     ARG(PERMISSION_APP, RS_NODE, REMOVE_MODIFIER_NG,
352         RSNodeCommandHelper::RemoveModifierNG, NodeId, ModifierNG::RSModifierType, ModifierId))
353 ADD_COMMAND(RSModifierNGAttachProperty,
354     ARG(PERMISSION_APP, RS_NODE, MODIFIER_NG_ATTACH_PROPERTY, RSNodeCommandHelper::ModifierNGAttachProperty, NodeId,
355         ModifierId, ModifierNG::RSModifierType, ModifierNG::RSPropertyType, std::shared_ptr<RSRenderPropertyBase>))
356 ADD_COMMAND(RSUpdatePropertyDrawCmdListNG,
357     ARG(PERMISSION_APP, RS_NODE, UPDATE_MODIFIER_DRAW_CMD_LIST_NG, RSNodeCommandHelper::UpdateModifierNGDrawCmdList,
358         NodeId, Drawing::DrawCmdListPtr, PropertyId))
359 ADD_COMMAND(RSModifierNGDetachProperty,
360     ARG(PERMISSION_APP, RS_NODE, MODIFIER_NG_DETACH_PROPERTY, RSNodeCommandHelper::ModifierNGDetachProperty, NodeId,
361         ModifierId, ModifierNG::RSModifierType, ModifierNG::RSPropertyType))
362 ADD_COMMAND(RSRemoveAllModifiersNG,
363     ARG(PERMISSION_APP, RS_NODE, REMOVE_ALL_MODIFIERS_NG,
364         RSNodeCommandHelper::RemoveAllModifiersNG, NodeId))
365 } // namespace Rosen
366 } // namespace OHOS
367 #endif // ROSEN_RENDER_SERVICE_BASE_COMMAND_RS_NODE_COMMAND_H
368