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