1 /* 2 * Copyright (c) 2022-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 FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H 18 19 #include <cstdint> 20 #include <functional> 21 22 #include "base/geometry/dimension.h" 23 #include "base/geometry/matrix4.h" 24 #include "base/geometry/ng/offset_t.h" 25 #include "base/geometry/ng/rect_t.h" 26 #include "base/geometry/ng/vector.h" 27 #include "base/memory/ace_type.h" 28 #include "base/utils/noncopyable.h" 29 #include "core/animation/page_transition_common.h" 30 #include "core/components/common/layout/constants.h" 31 #include "core/components/common/layout/position_param.h" 32 #include "core/components/common/properties/color.h" 33 #include "core/components/common/properties/shared_transition_option.h" 34 #include "core/components_ng/base/modifier.h" 35 #include "core/components_ng/pattern/render_node/render_node_properties.h" 36 #include "core/components_ng/property/border_property.h" 37 #include "core/components_ng/property/overlay_property.h" 38 #include "core/components_ng/property/particle_property.h" 39 #include "core/components_ng/property/progress_mask_property.h" 40 #include "core/components_ng/property/property.h" 41 #include "core/components_ng/property/particle_property_animation.h" 42 #include "core/components_ng/property/transition_property.h" 43 #include "core/components_ng/render/animation_utils.h" 44 #include "core/components_ng/render/drawing_forward.h" 45 #include "core/components_ng/render/render_property.h" 46 47 namespace OHOS::Rosen { 48 class DrawCmdList; 49 class VisualEffect; 50 class Filter; 51 enum class Gravity; 52 class BrightnessBlender; 53 } 54 55 namespace OHOS::Ace::NG { 56 57 typedef enum { 58 OPINC_INVALID, 59 OPINC_NODE, 60 OPINC_SUGGESTED_OR_EXCLUDED, 61 OPINC_PARENT_POSSIBLE, 62 OPINC_NODE_POSSIBLE, 63 } OPINC_TYPE_E; 64 65 class GeometryNode; 66 class RenderPropertyNode; 67 class FrameNode; 68 class InspectorFilter; 69 class Modifier; 70 71 using CanvasDrawFunction = std::function<void(RSCanvas& canvas)>; 72 using TransitionFinishCallback = std::function<void(bool)>; 73 74 inline constexpr int32_t ZINDEX_DEFAULT_VALUE = 0; 75 76 // RenderContext is used for render node to paint. 77 class ACE_FORCE_EXPORT RenderContext : public virtual AceType { 78 DECLARE_ACE_TYPE(NG::RenderContext, AceType) 79 80 public: 81 ~RenderContext() override = default; 82 83 static RefPtr<RenderContext> Create(); 84 85 void SetRequestFrame(const std::function<void()>& requestFrame); 86 void RequestNextFrame() const; 87 88 virtual void SetHostNode(const WeakPtr<FrameNode>& host); 89 RefPtr<FrameNode> GetHost() const; 90 FrameNode* GetUnsafeHost() const; 91 SetNeedDebugBoundary(bool flag)92 virtual void SetNeedDebugBoundary(bool flag) {} NeedDebugBoundary()93 virtual bool NeedDebugBoundary() const 94 { 95 return false; 96 } 97 FlushContentDrawFunction(CanvasDrawFunction && contentDraw)98 virtual void FlushContentDrawFunction(CanvasDrawFunction&& contentDraw) {} 99 FlushForegroundDrawFunction(CanvasDrawFunction && foregroundDraw)100 virtual void FlushForegroundDrawFunction(CanvasDrawFunction&& foregroundDraw) {} 101 FlushOverlayDrawFunction(CanvasDrawFunction && overlayDraw)102 virtual void FlushOverlayDrawFunction(CanvasDrawFunction&& overlayDraw) {} 103 FlushContentModifier(const RefPtr<Modifier> & modifier)104 virtual void FlushContentModifier(const RefPtr<Modifier>& modifier) {} FlushForegroundModifier(const RefPtr<Modifier> & modifier)105 virtual void FlushForegroundModifier(const RefPtr<Modifier>& modifier) {} FlushOverlayModifier(const RefPtr<Modifier> & modifier)106 virtual void FlushOverlayModifier(const RefPtr<Modifier>& modifier) {} 107 RebuildFrame(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)108 virtual void RebuildFrame(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 109 AddFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)110 virtual void AddFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 111 RemoveFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)112 virtual void RemoveFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 113 MoveFrame(FrameNode * self,const RefPtr<FrameNode> & child,int32_t index)114 virtual void MoveFrame(FrameNode* self, const RefPtr<FrameNode>& child, int32_t index) {} 115 116 virtual void SyncGeometryProperties(GeometryNode* geometryNode, bool isRound = true, uint8_t flag = 0) {} 117 SyncGeometryProperties(const RectF & rectF)118 virtual void SyncGeometryProperties(const RectF& rectF) {} 119 SetBorderRadius(const BorderRadiusProperty & value)120 virtual void SetBorderRadius(const BorderRadiusProperty& value) {} 121 SetBorderStyle(const BorderStyleProperty & value)122 virtual void SetBorderStyle(const BorderStyleProperty& value) {}; 123 SetBorderColor(const BorderColorProperty & value)124 virtual void SetBorderColor(const BorderColorProperty& value) {}; 125 SetBorderWidth(const BorderWidthProperty & value)126 virtual void SetBorderWidth(const BorderWidthProperty& value) {}; 127 SetDashGap(const BorderWidthProperty & value)128 virtual void SetDashGap(const BorderWidthProperty& value) {}; 129 SetDashWidth(const BorderWidthProperty & value)130 virtual void SetDashWidth(const BorderWidthProperty& value) {}; 131 SetOuterBorderRadius(const BorderRadiusProperty & value)132 virtual void SetOuterBorderRadius(const BorderRadiusProperty& value) {}; 133 SetOuterBorderStyle(const BorderStyleProperty & value)134 virtual void SetOuterBorderStyle(const BorderStyleProperty& value) {}; 135 SetOuterBorderColor(const BorderColorProperty & value)136 virtual void SetOuterBorderColor(const BorderColorProperty& value) {}; 137 SetOuterBorderWidth(const BorderWidthProperty & value)138 virtual void SetOuterBorderWidth(const BorderWidthProperty& value) {}; 139 140 // draw self and children in sandbox origin at parent's absolute position in root, drawing in sandbox 141 // will be unaffected by parent's transition. 142 virtual void SetSandBox(const std::optional<OffsetF>& parentPosition, bool force = false) {}; 143 HasSandBox()144 virtual bool HasSandBox() const 145 { 146 return false; 147 } 148 SetFrameWithoutAnimation(const RectF & paintRect)149 virtual void SetFrameWithoutAnimation(const RectF& paintRect) {}; 150 RegisterSharedTransition(const RefPtr<RenderContext> & other)151 virtual void RegisterSharedTransition(const RefPtr<RenderContext>& other) {} UnregisterSharedTransition(const RefPtr<RenderContext> & other)152 virtual void UnregisterSharedTransition(const RefPtr<RenderContext>& other) {} 153 OnModifyDone()154 virtual void OnModifyDone() {} 155 156 enum class ContextType : int8_t { 157 CANVAS, 158 ROOT, 159 SURFACE, 160 EFFECT, 161 EXTERNAL, 162 INCREMENTAL_CANVAS, 163 HARDWARE_SURFACE, 164 #ifdef RENDER_EXTRACT_SUPPORTED 165 HARDWARE_TEXTURE, 166 #endif 167 }; 168 169 enum class PatternType : int8_t { 170 DEFAULT, 171 VIDEO, 172 #ifdef PLATFORM_VIEW_SUPPORTED 173 PLATFORM_VIEW, 174 #endif 175 }; 176 struct ContextParam { 177 ContextType type; 178 std::optional<std::string> surfaceName; 179 PatternType patternType = PatternType::DEFAULT; 180 }; 181 InitContext(bool isRoot,const std::optional<ContextParam> & param)182 virtual void InitContext(bool isRoot, const std::optional<ContextParam>& param) {} 183 InitContext(bool isRoot,const std::optional<ContextParam> & param,bool isLayoutNode)184 virtual void InitContext(bool isRoot, const std::optional<ContextParam>& param, bool isLayoutNode) {} 185 SetSurfaceChangedCallBack(const std::function<void (float,float,float,float)> & callback)186 virtual void SetSurfaceChangedCallBack( 187 const std::function<void(float, float, float, float)>& callback) {} RemoveSurfaceChangedCallBack()188 virtual void RemoveSurfaceChangedCallBack() {} 189 MarkNewFrameAvailable(void * nativeWindow)190 virtual void MarkNewFrameAvailable(void* nativeWindow) {} AddAttachCallBack(const std::function<void (int64_t,bool)> & attachCallback)191 virtual void AddAttachCallBack(const std::function<void(int64_t, bool)>& attachCallback) {} AddUpdateCallBack(const std::function<void (std::vector<float> &)> & updateCallback)192 virtual void AddUpdateCallBack(const std::function<void(std::vector<float>&)>& updateCallback) {} AddInitTypeCallBack(const std::function<void (int32_t &)> & initTypeCallback)193 virtual void AddInitTypeCallBack(const std::function<void(int32_t&)>& initTypeCallback) {} 194 StartRecording()195 virtual void StartRecording() {} StopRecordingIfNeeded()196 virtual void StopRecordingIfNeeded() {} 197 SetDrawContentAtLast(bool useDrawContentLastOrder)198 virtual void SetDrawContentAtLast(bool useDrawContentLastOrder) {} 199 ResetBlendBgColor()200 virtual void ResetBlendBgColor() {} 201 BlendBgColor(const Color & color)202 virtual void BlendBgColor(const Color& color) {} 203 ResetBlendBorderColor()204 virtual void ResetBlendBorderColor() {} 205 BlendBorderColor(const Color & color)206 virtual void BlendBorderColor(const Color& color) {} 207 208 // Paint focus state by component's setting. It will paint along the paintRect 209 virtual void PaintFocusState(const RoundRect& paintRect, const Color& paintColor, const Dimension& paintWidth, 210 bool isAccessibilityFocus = false) 211 {} 212 // Paint focus state by component's setting. It will paint along the frameRect(padding: focusPaddingVp) 213 virtual void PaintFocusState(const RoundRect& paintRect, const Dimension& focusPaddingVp, const Color& paintColor, 214 const Dimension& paintWidth, bool isAccessibilityFocus = false) 215 {} 216 // Paint focus state by default. It will paint along the component rect(padding: focusPaddingVp) PaintFocusState(const Dimension & focusPaddingVp,const Color & paintColor,const Dimension & paintWidth)217 virtual void PaintFocusState(const Dimension& focusPaddingVp, const Color& paintColor, const Dimension& paintWidth) 218 {} 219 ClearFocusState()220 virtual void ClearFocusState() {} 221 CreateBackgroundPixelMap(const RefPtr<FrameNode> & value)222 virtual void CreateBackgroundPixelMap(const RefPtr<FrameNode>& value) {} 223 UpdateBorderWidthF(const BorderWidthPropertyF & value)224 virtual void UpdateBorderWidthF(const BorderWidthPropertyF& value) {} 225 226 // clip node without padding SetClipToFrame(bool useClip)227 virtual void SetClipToFrame(bool useClip) {} 228 229 // clip node with padding SetClipToBounds(bool useClip)230 virtual void SetClipToBounds(bool useClip) {} SetClipBoundsWithCommands(const std::string & commands)231 virtual void SetClipBoundsWithCommands(const std::string& commands) {}; SetVisible(bool visible)232 virtual void SetVisible(bool visible) {} 233 MarkContentChanged(bool isChanged)234 virtual void MarkContentChanged(bool isChanged) {} MarkDrivenRender(bool flag)235 virtual void MarkDrivenRender(bool flag) {} MarkDrivenRenderItemIndex(int32_t index)236 virtual void MarkDrivenRenderItemIndex(int32_t index) {} MarkDrivenRenderFramePaintState(bool flag)237 virtual void MarkDrivenRenderFramePaintState(bool flag) {} 238 AnimateHoverEffectScale(bool isHovered)239 virtual void AnimateHoverEffectScale(bool isHovered) {} AnimateHoverEffectBoard(bool isHovered)240 virtual void AnimateHoverEffectBoard(bool isHovered) {} 241 UpdateTransition(const TransitionOptions & options)242 virtual void UpdateTransition(const TransitionOptions& options) {} UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect> & effect)243 virtual void UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect>& effect) {} GetOneCenterTransitionOption()244 const RefPtr<OneCenterTransitionOptionType>& GetOneCenterTransitionOption() 245 { 246 return oneCenterTransition_; 247 } UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType> & value)248 void UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType>& value) 249 { 250 oneCenterTransition_ = value; 251 } OnNodeDisappear(bool recursive)252 virtual void OnNodeDisappear(bool recursive) {} OnNodeAppear(bool recursive)253 virtual void OnNodeAppear(bool recursive) {} HasTransitionOutAnimation()254 virtual bool HasTransitionOutAnimation() const 255 { 256 return false; 257 } 258 HasDisappearTransition()259 virtual bool HasDisappearTransition() const 260 { 261 return false; 262 } 263 IsSynced()264 virtual bool IsSynced() const 265 { 266 return isSynced_; 267 } 268 TriggerPageTransition(PageTransitionType type,const std::function<void ()> & onFinish)269 virtual bool TriggerPageTransition(PageTransitionType type, const std::function<void()>& onFinish) 270 { 271 return false; 272 } 273 SetSharedTranslate(float xTranslate,float yTranslate)274 virtual void SetSharedTranslate(float xTranslate, float yTranslate) {} ResetSharedTranslate()275 virtual void ResetSharedTranslate() {} ResetPageTransitionEffect()276 virtual void ResetPageTransitionEffect() {} 277 AddChild(const RefPtr<RenderContext> & renderContext,int index)278 virtual void AddChild(const RefPtr<RenderContext>& renderContext, int index) {} RemoveChild(const RefPtr<RenderContext> & renderContext)279 virtual void RemoveChild(const RefPtr<RenderContext>& renderContext) {} ClearChildren()280 virtual void ClearChildren() {} SetBounds(float positionX,float positionY,float width,float height)281 virtual void SetBounds(float positionX, float positionY, float width, float height) {} SetContentRectToFrame(RectF rect)282 virtual void SetContentRectToFrame(RectF rect) {} SetSecurityLayer(bool isSecure)283 virtual void SetSecurityLayer(bool isSecure) {} 284 UpdateBackBlurRadius(const Dimension & radius)285 virtual void UpdateBackBlurRadius(const Dimension& radius) {} UpdateBackBlurStyle(const std::optional<BlurStyleOption> & bgBlurStyle)286 virtual void UpdateBackBlurStyle(const std::optional<BlurStyleOption>& bgBlurStyle) {} UpdateBackgroundEffect(const std::optional<EffectOption> & effectOption)287 virtual void UpdateBackgroundEffect(const std::optional<EffectOption>& effectOption) {} UpdateBackBlur(const Dimension & radius,const BlurOption & blurOption)288 virtual void UpdateBackBlur(const Dimension& radius, const BlurOption& blurOption) {} UpdateMotionBlur(const MotionBlurOption & motionBlurOption)289 virtual void UpdateMotionBlur(const MotionBlurOption& motionBlurOption) {} UpdateFrontBlur(const Dimension & radius,const BlurOption & blurOption)290 virtual void UpdateFrontBlur(const Dimension& radius, const BlurOption& blurOption) {} UpdateFrontBlurStyle(const std::optional<BlurStyleOption> & fgBlurStyle)291 virtual void UpdateFrontBlurStyle(const std::optional<BlurStyleOption>& fgBlurStyle) {} UpdateFrontBlurRadius(const Dimension & radius)292 virtual void UpdateFrontBlurRadius(const Dimension& radius) {} ResetBackBlurStyle()293 virtual void ResetBackBlurStyle() {} ClipWithRect(const RectF & rectF)294 virtual void ClipWithRect(const RectF& rectF) {} ClipWithRoundRect(const RoundRect & roundRect)295 virtual void ClipWithRoundRect(const RoundRect& roundRect) {} ClipWithOval(const RectF & rectF)296 virtual void ClipWithOval(const RectF& rectF) {} ClipWithCircle(const Circle & circle)297 virtual void ClipWithCircle(const Circle& circle) {} ClipWithRRect(const RectF & rectF,const RadiusF & radiusF)298 virtual void ClipWithRRect(const RectF& rectF, const RadiusF& radiusF) {} RemoveClipWithRRect()299 virtual void RemoveClipWithRRect() {} UpdateWindowFocusState(bool isFocused)300 virtual void UpdateWindowFocusState(bool isFocused) {} 301 /** 302 * @brief Only clip the content & foreground layer by @c rect. 303 * @param rect - offset of @c rect is relative to FrameRect. 304 */ SetContentClip(const std::variant<RectF,RefPtr<ShapeRect>> & rect)305 virtual void SetContentClip(const std::variant<RectF, RefPtr<ShapeRect>>& rect) {} 306 307 // visual UpdateVisualEffect(const OHOS::Rosen::VisualEffect * visualEffect)308 virtual void UpdateVisualEffect(const OHOS::Rosen::VisualEffect* visualEffect) {} UpdateBackgroundFilter(const OHOS::Rosen::Filter * backgroundFilter)309 virtual void UpdateBackgroundFilter(const OHOS::Rosen::Filter* backgroundFilter) {} UpdateForegroundFilter(const OHOS::Rosen::Filter * foregroundFilter)310 virtual void UpdateForegroundFilter(const OHOS::Rosen::Filter* foregroundFilter) {} UpdateCompositingFilter(const OHOS::Rosen::Filter * compositingFilter)311 virtual void UpdateCompositingFilter(const OHOS::Rosen::Filter* compositingFilter) {} UpdateBrightnessBlender(const OHOS::Rosen::BrightnessBlender * brightnessBlender)312 virtual void UpdateBrightnessBlender(const OHOS::Rosen::BrightnessBlender* brightnessBlender) {} 313 OpacityAnimation(const AnimationOption & option,double begin,double end)314 virtual void OpacityAnimation(const AnimationOption& option, double begin, double end) {} ScaleAnimation(const AnimationOption & option,double begin,double end)315 virtual void ScaleAnimation(const AnimationOption& option, double begin, double end) {} 316 OnTransformTranslateUpdate(const TranslateOptions & value)317 virtual void OnTransformTranslateUpdate(const TranslateOptions& value) {} OnTransformScaleUpdate(const VectorF & value)318 virtual void OnTransformScaleUpdate(const VectorF& value) {} OnTransformCenterUpdate(const DimensionOffset & value)319 virtual void OnTransformCenterUpdate(const DimensionOffset& value) {} OnOffsetUpdate(const OffsetT<Dimension> & value)320 virtual void OnOffsetUpdate(const OffsetT<Dimension>& value) {} OnOffsetEdgesUpdate(const EdgesParam & value)321 virtual void OnOffsetEdgesUpdate(const EdgesParam& value) {} 322 323 // used in arkts_native_render_node_modifier set property directly to rsNode SetRotation(float rotationX,float rotationY,float rotationZ)324 virtual void SetRotation(float rotationX, float rotationY, float rotationZ) {} SetShadowColor(uint32_t color)325 virtual void SetShadowColor(uint32_t color) {} SetShadowOffset(float offsetX,float offsetY)326 virtual void SetShadowOffset(float offsetX, float offsetY) {} SetShadowAlpha(float alpha)327 virtual void SetShadowAlpha(float alpha) {} SetShadowElevation(float elevation)328 virtual void SetShadowElevation(float elevation) {} SetShadowRadius(float radius)329 virtual void SetShadowRadius(float radius) {} SetScale(float scaleX,float scaleY)330 virtual void SetScale(float scaleX, float scaleY) {} SetBackgroundColor(uint32_t colorValue)331 virtual void SetBackgroundColor(uint32_t colorValue) {} SetRenderPivot(float pivotX,float pivotY)332 virtual void SetRenderPivot(float pivotX, float pivotY) {} SetFrame(float positionX,float positionY,float width,float height)333 virtual void SetFrame(float positionX, float positionY, float width, float height) {} SetOpacity(float opacity)334 virtual void SetOpacity(float opacity) {} SetTranslate(float translateX,float translateY,float translateZ)335 virtual void SetTranslate(float translateX, float translateY, float translateZ) {} CleanTransition()336 virtual void CleanTransition() {} SetRectMask(const RectF & rect,const ShapeMaskProperty & property)337 virtual void SetRectMask(const RectF& rect, const ShapeMaskProperty& property) {} SetCircleMask(const Circle & circle,const ShapeMaskProperty & property)338 virtual void SetCircleMask(const Circle& circle, const ShapeMaskProperty& property) {} SetRoundRectMask(const RoundRect & roundRect,const ShapeMaskProperty & property)339 virtual void SetRoundRectMask(const RoundRect& roundRect, const ShapeMaskProperty& property) {} SetOvalMask(const RectF & rect,const ShapeMaskProperty & property)340 virtual void SetOvalMask(const RectF& rect, const ShapeMaskProperty& property) {} SetCommandPathMask(const std::string & commands,const ShapeMaskProperty & property)341 virtual void SetCommandPathMask(const std::string& commands, const ShapeMaskProperty& property) {} SetMarkNodeGroup(bool isNodeGroup)342 virtual void SetMarkNodeGroup(bool isNodeGroup) {} 343 GetPaintRectWithTransform()344 virtual RectF GetPaintRectWithTransform() 345 { 346 return {}; 347 } 348 349 virtual void SavePaintRect(bool isRound = true, uint16_t flag = 0) {} SyncPartialRsProperties()350 virtual void SyncPartialRsProperties() {} UpdatePaintRect(const RectF & paintRect)351 virtual void UpdatePaintRect(const RectF& paintRect) {} 352 GetPaintRectWithTranslate()353 virtual std::pair<RectF, bool> GetPaintRectWithTranslate() 354 { 355 return {}; 356 } 357 GetLocalTransformMatrix()358 virtual Matrix4 GetLocalTransformMatrix() 359 { 360 return Matrix4(); 361 } 362 GetPointWithRevert(PointF & point)363 virtual void GetPointWithRevert(PointF& point) {} 364 GetPointWithTransform(PointF & point)365 virtual void GetPointWithTransform(PointF& point) {} 366 GetPointTransform(PointF & point)367 virtual void GetPointTransform(PointF& point) {} 368 GetPointTransformRotate(PointF & point)369 virtual void GetPointTransformRotate(PointF& point) {} 370 GetPaintRectWithoutTransform()371 virtual RectF GetPaintRectWithoutTransform() 372 { 373 return {}; 374 } 375 376 // get position property GetPropertyOfPosition()377 virtual RectF GetPropertyOfPosition() 378 { 379 return {}; 380 } 381 382 // stop the property animation and get the current paint rect. GetShowingTranslateProperty()383 virtual OffsetF GetShowingTranslateProperty() 384 { 385 return OffsetF(); 386 } 387 CancelTranslateXYAnimation()388 virtual void CancelTranslateXYAnimation() {} 389 GetTranslateXYProperty()390 virtual OffsetF GetTranslateXYProperty() 391 { 392 return OffsetF(); 393 } 394 395 // update translateXY in backend. UpdateTranslateInXY(const OffsetF & offset)396 virtual void UpdateTranslateInXY(const OffsetF& offset) {} 397 SetTransitionOutCallback(std::function<void ()> && callback)398 virtual void SetTransitionOutCallback(std::function<void()>&& callback) {} 399 SetTransitionInCallback(std::function<void ()> && callback)400 virtual void SetTransitionInCallback(std::function<void()>&& callback) {} 401 SetTransitionUserCallback(TransitionFinishCallback && callback)402 virtual void SetTransitionUserCallback(TransitionFinishCallback&& callback) {} 403 404 virtual void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const; 405 406 virtual void FromJson(const std::unique_ptr<JsonValue>& json); 407 ClearDrawCommands()408 virtual void ClearDrawCommands() {} 409 DumpInfo()410 virtual void DumpInfo() {} DumpSimplifyInfo(std::unique_ptr<JsonValue> & json)411 virtual void DumpSimplifyInfo(std::unique_ptr<JsonValue>& json) {} DumpAdvanceInfo()412 virtual void DumpAdvanceInfo() {} 413 414 void ObscuredToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const; 415 416 void SetSharedTransitionOptions(const std::shared_ptr<SharedTransitionOption>& option); 417 const std::shared_ptr<SharedTransitionOption>& GetSharedTransitionOption() const; 418 void SetShareId(const ShareId& shareId); 419 const ShareId& GetShareId() const; 420 bool HasSharedTransition() const; 421 bool HasSharedTransitionOption() const; 422 SetIsModalRootNode(bool isModalRootNode)423 void SetIsModalRootNode(bool isModalRootNode) 424 { 425 isModalRootNode_ = isModalRootNode; 426 } 427 SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree)428 void SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree) 429 { 430 isNeedRebuildRSTree_ = isNeedRebuildRSTree; 431 } 432 GetBackBlurStyle()433 std::optional<BlurStyleOption> GetBackBlurStyle() const 434 { 435 return GetBackground() ? GetBackground()->propBlurStyleOption : std::nullopt; 436 } GetBackBlurRadius()437 std::optional<Dimension> GetBackBlurRadius() const 438 { 439 return GetBackground() ? GetBackground()->propBlurRadius : std::nullopt; 440 } GetBackgroundEffect()441 std::optional<EffectOption> GetBackgroundEffect() const 442 { 443 return GetBackground() ? GetBackground()->propEffectOption : std::nullopt; 444 } GetFrontBlurStyle()445 std::optional<BlurStyleOption> GetFrontBlurStyle() const 446 { 447 return GetForeground() ? GetForeground()->propBlurStyleOption : std::nullopt; 448 } GetFrontBlurRadius()449 std::optional<Dimension> GetFrontBlurRadius() const 450 { 451 return GetForeground() ? GetForeground()->propBlurRadius : std::nullopt; 452 } 453 AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier)454 virtual void AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier) {}; 455 DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase> & modifier)456 virtual void DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase>& modifier) {}; 457 PaintAccessibilityFocus()458 virtual void PaintAccessibilityFocus() {}; 459 UpdateAccessibilityRoundRect()460 virtual void UpdateAccessibilityRoundRect() {}; 461 ClearAccessibilityFocus()462 virtual void ClearAccessibilityFocus() {}; 463 464 virtual void OnAccessibilityFocusUpdate( 465 bool isAccessibilityFocus, const int64_t accessibilityIdForVirtualNode = -2100000) {}; OnAccessibilityFocusRectUpdate(RectT<int32_t> accessibilityFocusRect)466 virtual void OnAccessibilityFocusRectUpdate(RectT<int32_t> accessibilityFocusRect) {}; 467 OnMouseSelectUpdate(bool isSelected,const Color & fillColor,const Color & strokeColor)468 virtual void OnMouseSelectUpdate(bool isSelected, const Color& fillColor, const Color& strokeColor) {} UpdateMouseSelectWithRect(const RectF & rect,const Color & fillColor,const Color & strokeColor)469 virtual void UpdateMouseSelectWithRect(const RectF& rect, const Color& fillColor, const Color& strokeColor) {} 470 OnPositionUpdate(const OffsetT<Dimension> & value)471 virtual void OnPositionUpdate(const OffsetT<Dimension>& value) {} OnPositionEdgesUpdate(const EdgesParam & value)472 virtual void OnPositionEdgesUpdate(const EdgesParam& value) {} RecalculatePosition()473 virtual void RecalculatePosition() {} OnZIndexUpdate(int32_t value)474 virtual void OnZIndexUpdate(int32_t value) {} 475 OnBackgroundColorUpdate(const Color & value)476 virtual void OnBackgroundColorUpdate(const Color& value) {} OnOpacityUpdate(double opacity)477 virtual void OnOpacityUpdate(double opacity) {} OnDynamicRangeModeUpdate(DynamicRangeMode dynamicRangeMode)478 virtual void OnDynamicRangeModeUpdate(DynamicRangeMode dynamicRangeMode) {} SetAlphaOffscreen(bool isOffScreen)479 virtual void SetAlphaOffscreen(bool isOffScreen) {} OnSphericalEffectUpdate(double radio)480 virtual void OnSphericalEffectUpdate(double radio) {} OnPixelStretchEffectUpdate(const PixStretchEffectOption & option)481 virtual void OnPixelStretchEffectUpdate(const PixStretchEffectOption& option) {} OnLightUpEffectUpdate(double radio)482 virtual void OnLightUpEffectUpdate(double radio) {} OnClickEffectLevelUpdate(const ClickEffectInfo & info)483 virtual void OnClickEffectLevelUpdate(const ClickEffectInfo& info) {} OnRenderGroupUpdate(bool isRenderGroup)484 virtual void OnRenderGroupUpdate(bool isRenderGroup) {} UpdateRenderGroup(bool isRenderGroup,bool isForced,bool includeProperty)485 virtual void UpdateRenderGroup(bool isRenderGroup, bool isForced, bool includeProperty) {} OnSuggestedRenderGroupUpdate(bool isRenderGroup)486 virtual void OnSuggestedRenderGroupUpdate(bool isRenderGroup) {} OnDynamicDimDegreeUpdate(const float degree)487 virtual void OnDynamicDimDegreeUpdate(const float degree) {} OnRenderFitUpdate(RenderFit renderFit)488 virtual void OnRenderFitUpdate(RenderFit renderFit) {} OnNodeNameUpdate(const std::string & id)489 virtual void OnNodeNameUpdate(const std::string& id) {} OnParticleOptionArrayUpdate(const std::list<ParticleOption> & optionArray)490 virtual void OnParticleOptionArrayUpdate(const std::list<ParticleOption>& optionArray) {} 491 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SphericalEffect, double); 492 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PixelStretchEffect, PixStretchEffectOption); 493 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(LightUpEffect, double); 494 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(DynamicDimDegree, float); 495 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ParticleOptionArray, std::list<ParticleOption>); 496 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ClickEffectLevel, ClickEffectInfo); 497 virtual RefPtr<PixelMap> GetThumbnailPixelMap(bool needScale = false) 498 { 499 return nullptr; 500 } UpdateThumbnailPixelMapScale(float & scaleX,float & scaleY)501 virtual void UpdateThumbnailPixelMapScale(float& scaleX, float& scaleY) {} 502 CreateThumbnailPixelMapAsyncTask(bool needScale,std::function<void (const RefPtr<PixelMap>)> && callback)503 virtual bool CreateThumbnailPixelMapAsyncTask( 504 bool needScale, std::function<void(const RefPtr<PixelMap>)>&& callback) 505 { 506 return false; 507 } 508 SetActualForegroundColor(const Color & value)509 virtual void SetActualForegroundColor(const Color& value) {} 510 ResetSurface(int width,int height)511 virtual void ResetSurface(int width, int height) {} PaintDebugBoundary(bool flag)512 virtual void PaintDebugBoundary(bool flag) {} 513 // transform matrix 514 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(TransformMatrix, Matrix4); 515 516 // Transform 517 ACE_DEFINE_PROPERTY_GROUP(Transform, TransformProperty); 518 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformScale, VectorF); 519 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformCenter, DimensionOffset); 520 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformTranslate, TranslateOptions); 521 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformRotate, Vector5F); 522 523 // Foreground 524 ACE_DEFINE_PROPERTY_GROUP(Foreground, ForegroundProperty); 525 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Foreground, ForegroundEffect, float); 526 527 // Background 528 ACE_DEFINE_PROPERTY_GROUP(Background, BackgroundProperty); 529 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImage, ImageSourceInfo); 530 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageRepeat, ImageRepeat); 531 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageSize, BackgroundImageSize); 532 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImagePosition, BackgroundImagePosition); 533 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageResizableSlice, ImageResizableSlice); 534 535 // BorderImage 536 ACE_DEFINE_PROPERTY_GROUP(BdImage, BorderImageProperty); 537 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImage, RefPtr<BorderImage>); 538 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageSource, ImageSourceInfo); 539 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageSlice, bool); 540 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageWidth, bool); 541 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageOutset, bool); 542 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageRepeat, bool); 543 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageGradient, Gradient); 544 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderSourceFromImage, bool); 545 546 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(BackgroundColor, Color); 547 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Opacity, double); 548 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderGroup, bool); 549 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(NodeName, std::string); 550 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SuggestedRenderGroup, bool); 551 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColor, Color); 552 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColorStrategy, ForegroundColorStrategy); 553 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(DynamicRangeMode, DynamicRangeMode); 554 ACE_DEFINE_PROPERTY_GROUP_ITEM(ForegroundColorFlag, bool); 555 556 // CustomBackground 557 ACE_DEFINE_PROPERTY_GROUP(CustomBackground, CustomBackgroundProperty); 558 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundPixelMap, RefPtr<PixelMap>); 559 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundAlign, Alignment); 560 561 // Graphics 562 ACE_DEFINE_PROPERTY_GROUP(Graphics, GraphicsProperty); 563 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontBrightness, Dimension); 564 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontGrayScale, Dimension); 565 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontContrast, Dimension); 566 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSaturate, Dimension); 567 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSepia, Dimension); 568 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontInvert, InvertVariant); 569 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, SystemBarEffect, bool); 570 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontHueRotate, float); 571 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontColorBlend, Color); 572 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, LinearGradientBlur, NG::LinearGradientBlurPara); 573 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, Magnifier, MagnifierParams); 574 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpRate, float); 575 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpDegree, float); 576 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BgDynamicBrightnessOption, BrightnessOption); 577 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FgDynamicBrightnessOption, BrightnessOption); 578 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackShadow, Shadow); 579 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendMode, BlendMode); 580 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendApplyType, BlendApplyType); 581 582 // BorderRadius. 583 ACE_DEFINE_PROPERTY_GROUP(Border, BorderProperty); 584 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderRadius, BorderRadiusProperty); 585 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderWidth, BorderWidthProperty); 586 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderColor, BorderColorProperty); 587 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderStyle, BorderStyleProperty); 588 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, DashGap, BorderWidthProperty); 589 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, DashWidth, BorderWidthProperty); 590 591 // Outer Border 592 ACE_DEFINE_PROPERTY_GROUP(OuterBorder, OuterBorderProperty); 593 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderRadius, BorderRadiusProperty); 594 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderWidth, BorderWidthProperty); 595 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderColor, BorderColorProperty); 596 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderStyle, BorderStyleProperty); 597 598 // PointLight 599 ACE_DEFINE_PROPERTY_GROUP(PointLight, PointLightProperty); 600 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightPosition, TranslateOptions); 601 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIntensity, float); 602 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightColor, Color); 603 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIlluminated, uint32_t); 604 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, IlluminatedBorderWidth, Dimension); 605 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, Bloom, float); 606 607 // Transition Options 608 ACE_DEFINE_PROPERTY_GROUP(TransitionAppearing, TransitionOptions); 609 ACE_DEFINE_PROPERTY_GROUP(TransitionDisappearing, TransitionOptions); 610 611 // Position 612 ACE_DEFINE_PROPERTY_GROUP(PositionProperty, RenderPositionProperty); 613 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Position, OffsetT<Dimension>); 614 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Offset, OffsetT<Dimension>); 615 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, PositionEdges, EdgesParam); 616 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, OffsetEdges, EdgesParam); 617 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Anchor, OffsetT<Dimension>); 618 619 // zIndex 620 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ZIndex, int32_t); 621 622 // Clip 623 ACE_DEFINE_PROPERTY_GROUP(Clip, ClipProperty); 624 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipShape, RefPtr<BasicShape>); 625 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipEdge, bool); 626 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipMask, RefPtr<BasicShape>); 627 628 // ProgressMask 629 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ProgressMask, RefPtr<ProgressMaskProperty>); 630 631 // Gradient 632 ACE_DEFINE_PROPERTY_GROUP(Gradient, GradientProperty); 633 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LinearGradient, NG::Gradient); 634 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, SweepGradient, NG::Gradient); 635 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, RadialGradient, NG::Gradient); 636 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LastGradientType, NG::GradientType); 637 638 // Overlay 639 ACE_DEFINE_PROPERTY_GROUP(Overlay, OverlayProperty); 640 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Overlay, OverlayText, OverlayOptions) 641 642 // MotionPath 643 ACE_DEFINE_PROPERTY_GROUP(Motion, MotionPathProperty); 644 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Motion, MotionPath, MotionPathOption) 645 646 // accessibility 647 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP_FOR_VIRTUAL_NODE(AccessibilityFocus, bool); 648 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(AccessibilityFocusRect, RectT<int32_t>); 649 650 // useEffect 651 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseEffect, bool); 652 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseEffectType, EffectType); 653 654 // useShadowBatching 655 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseShadowBatching, bool); 656 657 // freeze 658 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Freeze, bool); 659 660 // obscured 661 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Obscured, std::vector<ObscuredReasons>); 662 663 // renderFit 664 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderFit, RenderFit); 665 666 virtual void SetUsingContentRectForRenderFrame(bool value, bool adjustRSFrameByContentRect = false) {} SetFrameGravity(OHOS::Rosen::Gravity gravity)667 virtual void SetFrameGravity(OHOS::Rosen::Gravity gravity) {} 668 CalcExpectedFrameRate(const std::string & scene,float speed)669 virtual int32_t CalcExpectedFrameRate(const std::string& scene, float speed) 670 { 671 return 0; 672 } 673 IsUniRenderEnabled()674 virtual bool IsUniRenderEnabled() 675 { 676 return true; 677 } SetRenderFrameOffset(const OffsetF & offset)678 virtual void SetRenderFrameOffset(const OffsetF& offset) {} 679 DoTextureExport(uint64_t)680 virtual bool DoTextureExport(uint64_t /* surfaceId */) 681 { 682 return false; 683 } 684 StopTextureExport()685 virtual bool StopTextureExport() 686 { 687 return false; 688 } 689 SetSurfaceRotation(bool isLock)690 virtual void SetSurfaceRotation(bool isLock) {} SuggestOpIncNode(bool isOpincNode,bool isNeedCalculate)691 virtual void SuggestOpIncNode(bool isOpincNode, bool isNeedCalculate) {} 692 SetHandleChildBounds(bool value)693 void SetHandleChildBounds(bool value) { 694 handleChildBounds_ = value; 695 } 696 GetRevertMatrix()697 virtual Matrix4 GetRevertMatrix() 698 { 699 return Matrix4(); 700 } 701 702 // The additional opacity will be multiplied with the base opacity. SetOpacityMultiplier(float opacity)703 virtual void SetOpacityMultiplier(float opacity) {} 704 SetNeedAnimateFlag(bool isNeedAnimate)705 void SetNeedAnimateFlag(bool isNeedAnimate) 706 { 707 isNeedAnimate_ = isNeedAnimate; 708 } 709 GetNodeId()710 virtual uint64_t GetNodeId() const 711 { 712 return 0; 713 } 714 IsDisappearing()715 virtual bool IsDisappearing() const 716 { 717 return false; 718 } 719 SetRenderFit(RenderFit renderFit)720 virtual void SetRenderFit(RenderFit renderFit) {} 721 UpdateWindowBlur()722 virtual void UpdateWindowBlur() {} 723 724 protected: 725 RenderContext() = default; 726 std::shared_ptr<SharedTransitionOption> sharedTransitionOption_; 727 ShareId shareId_; 728 bool isModalRootNode_ = false; 729 bool isSynced_ = false; 730 bool isNeedRebuildRSTree_ = true; 731 bool handleChildBounds_ = false; 732 bool isNeedAnimate_ = true; 733 OnBackgroundImageUpdate(const ImageSourceInfo & imageSourceInfo)734 virtual void OnBackgroundImageUpdate(const ImageSourceInfo& imageSourceInfo) {} OnBackgroundImageRepeatUpdate(const ImageRepeat & imageRepeat)735 virtual void OnBackgroundImageRepeatUpdate(const ImageRepeat& imageRepeat) {} OnBackgroundImageSizeUpdate(const BackgroundImageSize & bgImgSize)736 virtual void OnBackgroundImageSizeUpdate(const BackgroundImageSize& bgImgSize) {} OnBackgroundImagePositionUpdate(const BackgroundImagePosition & bgImgPosition)737 virtual void OnBackgroundImagePositionUpdate(const BackgroundImagePosition& bgImgPosition) {} OnBackgroundImageResizableSliceUpdate(const ImageResizableSlice & slice)738 virtual void OnBackgroundImageResizableSliceUpdate(const ImageResizableSlice& slice) {} 739 OnForegroundColorUpdate(const Color & value)740 virtual void OnForegroundColorUpdate(const Color& value) {} OnForegroundColorStrategyUpdate(const ForegroundColorStrategy & value)741 virtual void OnForegroundColorStrategyUpdate(const ForegroundColorStrategy& value) {} OnForegroundEffectUpdate(float radius)742 virtual void OnForegroundEffectUpdate(float radius) {}; 743 OnBackgroundPixelMapUpdate(const RefPtr<PixelMap> & value)744 virtual void OnBackgroundPixelMapUpdate(const RefPtr<PixelMap>& value) {} OnBackgroundAlignUpdate(const Alignment & align)745 virtual void OnBackgroundAlignUpdate(const Alignment& align) {} 746 OnBorderImageUpdate(const RefPtr<BorderImage> & borderImage)747 virtual void OnBorderImageUpdate(const RefPtr<BorderImage>& borderImage) {} OnBorderImageSourceUpdate(const ImageSourceInfo & borderImageSourceInfo)748 virtual void OnBorderImageSourceUpdate(const ImageSourceInfo& borderImageSourceInfo) {} OnHasBorderImageSliceUpdate(bool tag)749 virtual void OnHasBorderImageSliceUpdate(bool tag) {} OnHasBorderImageWidthUpdate(bool tag)750 virtual void OnHasBorderImageWidthUpdate(bool tag) {} OnHasBorderImageOutsetUpdate(bool tag)751 virtual void OnHasBorderImageOutsetUpdate(bool tag) {} OnHasBorderImageRepeatUpdate(bool tag)752 virtual void OnHasBorderImageRepeatUpdate(bool tag) {} OnBorderImageGradientUpdate(const Gradient & gradient)753 virtual void OnBorderImageGradientUpdate(const Gradient& gradient) {} OnBorderSourceFromImageUpdate(bool sourceFromImage)754 virtual void OnBorderSourceFromImageUpdate(bool sourceFromImage) {} 755 OnBorderWidthUpdate(const BorderWidthProperty & value)756 virtual void OnBorderWidthUpdate(const BorderWidthProperty& value) {} OnBorderRadiusUpdate(const BorderRadiusProperty & value)757 virtual void OnBorderRadiusUpdate(const BorderRadiusProperty& value) {} OnBorderColorUpdate(const BorderColorProperty & value)758 virtual void OnBorderColorUpdate(const BorderColorProperty& value) {} OnBorderStyleUpdate(const BorderStyleProperty & value)759 virtual void OnBorderStyleUpdate(const BorderStyleProperty& value) {} OnDashGapUpdate(const BorderWidthProperty & value)760 virtual void OnDashGapUpdate(const BorderWidthProperty& value) {} OnDashWidthUpdate(const BorderWidthProperty & value)761 virtual void OnDashWidthUpdate(const BorderWidthProperty& value) {} 762 OnOuterBorderWidthUpdate(const BorderWidthProperty & value)763 virtual void OnOuterBorderWidthUpdate(const BorderWidthProperty& value) {} OnOuterBorderRadiusUpdate(const BorderRadiusProperty & value)764 virtual void OnOuterBorderRadiusUpdate(const BorderRadiusProperty& value) {} OnOuterBorderColorUpdate(const BorderColorProperty & value)765 virtual void OnOuterBorderColorUpdate(const BorderColorProperty& value) {} OnOuterBorderStyleUpdate(const BorderStyleProperty & value)766 virtual void OnOuterBorderStyleUpdate(const BorderStyleProperty& value) {} 767 OnLightPositionUpdate(const TranslateOptions & value)768 virtual void OnLightPositionUpdate(const TranslateOptions& value) {} OnLightIntensityUpdate(const float value)769 virtual void OnLightIntensityUpdate(const float value) {} OnLightColorUpdate(const Color & value)770 virtual void OnLightColorUpdate(const Color& value) {} OnLightIlluminatedUpdate(const uint32_t value)771 virtual void OnLightIlluminatedUpdate(const uint32_t value) {} OnIlluminatedBorderWidthUpdate(const Dimension & value)772 virtual void OnIlluminatedBorderWidthUpdate(const Dimension& value) {} OnBloomUpdate(const float value)773 virtual void OnBloomUpdate(const float value) {} 774 OnTransformRotateUpdate(const Vector5F & value)775 virtual void OnTransformRotateUpdate(const Vector5F& value) {} OnTransformMatrixUpdate(const Matrix4 & matrix)776 virtual void OnTransformMatrixUpdate(const Matrix4& matrix) {} 777 OnAnchorUpdate(const OffsetT<Dimension> & value)778 virtual void OnAnchorUpdate(const OffsetT<Dimension>& value) {} 779 OnClipShapeUpdate(const RefPtr<BasicShape> & basicShape)780 virtual void OnClipShapeUpdate(const RefPtr<BasicShape>& basicShape) {} OnClipEdgeUpdate(bool isClip)781 virtual void OnClipEdgeUpdate(bool isClip) {} OnClipMaskUpdate(const RefPtr<BasicShape> & basicShape)782 virtual void OnClipMaskUpdate(const RefPtr<BasicShape>& basicShape) {} 783 OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty> & progress)784 virtual void OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty>& progress) {} 785 OnLinearGradientUpdate(const NG::Gradient & value)786 virtual void OnLinearGradientUpdate(const NG::Gradient& value) {} OnSweepGradientUpdate(const NG::Gradient & value)787 virtual void OnSweepGradientUpdate(const NG::Gradient& value) {} OnRadialGradientUpdate(const NG::Gradient & value)788 virtual void OnRadialGradientUpdate(const NG::Gradient& value) {} OnLastGradientTypeUpdate(const NG::GradientType & value)789 virtual void OnLastGradientTypeUpdate(const NG::GradientType& value) {} 790 OnFrontBrightnessUpdate(const Dimension & value)791 virtual void OnFrontBrightnessUpdate(const Dimension& value) {} OnFrontGrayScaleUpdate(const Dimension & value)792 virtual void OnFrontGrayScaleUpdate(const Dimension& value) {} OnFrontContrastUpdate(const Dimension & value)793 virtual void OnFrontContrastUpdate(const Dimension& value) {} OnFrontSaturateUpdate(const Dimension & value)794 virtual void OnFrontSaturateUpdate(const Dimension& value) {} OnFrontSepiaUpdate(const Dimension & value)795 virtual void OnFrontSepiaUpdate(const Dimension& value) {} OnFrontInvertUpdate(const InvertVariant & value)796 virtual void OnFrontInvertUpdate(const InvertVariant& value) {} OnSystemBarEffectUpdate(bool systemBarEffect)797 virtual void OnSystemBarEffectUpdate(bool systemBarEffect) {} OnFrontHueRotateUpdate(float value)798 virtual void OnFrontHueRotateUpdate(float value) {} OnFrontColorBlendUpdate(const Color & value)799 virtual void OnFrontColorBlendUpdate(const Color& value) {} OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara & blurPara)800 virtual void OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara& blurPara) {} OnMagnifierUpdate(const MagnifierParams & magnifierParams)801 virtual void OnMagnifierUpdate(const MagnifierParams& magnifierParams) {} OnDynamicLightUpRateUpdate(const float rate)802 virtual void OnDynamicLightUpRateUpdate(const float rate) {} OnDynamicLightUpDegreeUpdate(const float degree)803 virtual void OnDynamicLightUpDegreeUpdate(const float degree) {} OnBgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption> & brightnessOption)804 virtual void OnBgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption>& brightnessOption) {} OnFgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption> & brightnessOption)805 virtual void OnFgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption>& brightnessOption) {} OnBackShadowUpdate(const Shadow & shadow)806 virtual void OnBackShadowUpdate(const Shadow& shadow) {} OnBackBlendModeUpdate(BlendMode blendMode)807 virtual void OnBackBlendModeUpdate(BlendMode blendMode) {} OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType)808 virtual void OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType) {} 809 OnOverlayTextUpdate(const OverlayOptions & overlay)810 virtual void OnOverlayTextUpdate(const OverlayOptions& overlay) {} OnMotionPathUpdate(const MotionPathOption & motionPath)811 virtual void OnMotionPathUpdate(const MotionPathOption& motionPath) {} OnUseEffectUpdate(bool useEffect)812 virtual void OnUseEffectUpdate(bool useEffect) {} OnUseEffectTypeUpdate(EffectType effectType)813 virtual void OnUseEffectTypeUpdate(EffectType effectType) {} GetStatusByEffectTypeAndWindow()814 virtual bool GetStatusByEffectTypeAndWindow() { return false; } OnUseShadowBatchingUpdate(bool useShadowBatching)815 virtual void OnUseShadowBatchingUpdate(bool useShadowBatching) {} OnFreezeUpdate(bool isFreezed)816 virtual void OnFreezeUpdate(bool isFreezed) {} OnObscuredUpdate(const std::vector<ObscuredReasons> & reasons)817 virtual void OnObscuredUpdate(const std::vector<ObscuredReasons>& reasons) {} 818 819 private: 820 friend class ViewAbstract; 821 std::function<void()> requestFrame_; 822 WeakPtr<FrameNode> host_; 823 RefPtr<OneCenterTransitionOptionType> oneCenterTransition_; 824 ACE_DISALLOW_COPY_AND_MOVE(RenderContext); 825 }; 826 } // namespace OHOS::Ace::NG 827 828 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H 829