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 { DEFAULT, VIDEO }; 170 struct ContextParam { 171 ContextType type; 172 std::optional<std::string> surfaceName; 173 PatternType patternType = PatternType::DEFAULT; 174 }; 175 InitContext(bool isRoot,const std::optional<ContextParam> & param)176 virtual void InitContext(bool isRoot, const std::optional<ContextParam>& param) {} 177 InitContext(bool isRoot,const std::optional<ContextParam> & param,bool isLayoutNode)178 virtual void InitContext(bool isRoot, const std::optional<ContextParam>& param, bool isLayoutNode) {} 179 SetSurfaceChangedCallBack(const std::function<void (float,float,float,float)> & callback)180 virtual void SetSurfaceChangedCallBack( 181 const std::function<void(float, float, float, float)>& callback) {} RemoveSurfaceChangedCallBack()182 virtual void RemoveSurfaceChangedCallBack() {} 183 MarkNewFrameAvailable(void * nativeWindow)184 virtual void MarkNewFrameAvailable(void* nativeWindow) {} AddAttachCallBack(const std::function<void (int64_t,bool)> & attachCallback)185 virtual void AddAttachCallBack(const std::function<void(int64_t, bool)>& attachCallback) {} AddUpdateCallBack(const std::function<void (std::vector<float> &)> & updateCallback)186 virtual void AddUpdateCallBack(const std::function<void(std::vector<float>&)>& updateCallback) {} 187 StartRecording()188 virtual void StartRecording() {} StopRecordingIfNeeded()189 virtual void StopRecordingIfNeeded() {} 190 SetDrawContentAtLast(bool useDrawContentLastOrder)191 virtual void SetDrawContentAtLast(bool useDrawContentLastOrder) {} 192 ResetBlendBgColor()193 virtual void ResetBlendBgColor() {} 194 BlendBgColor(const Color & color)195 virtual void BlendBgColor(const Color& color) {} 196 ResetBlendBorderColor()197 virtual void ResetBlendBorderColor() {} 198 BlendBorderColor(const Color & color)199 virtual void BlendBorderColor(const Color& color) {} 200 201 // Paint focus state by component's setting. It will paint along the paintRect 202 virtual void PaintFocusState(const RoundRect& paintRect, const Color& paintColor, const Dimension& paintWidth, 203 bool isAccessibilityFocus = false) 204 {} 205 // Paint focus state by component's setting. It will paint along the frameRect(padding: focusPaddingVp) 206 virtual void PaintFocusState(const RoundRect& paintRect, const Dimension& focusPaddingVp, const Color& paintColor, 207 const Dimension& paintWidth, bool isAccessibilityFocus = false) 208 {} 209 // Paint focus state by default. It will paint along the component rect(padding: focusPaddingVp) PaintFocusState(const Dimension & focusPaddingVp,const Color & paintColor,const Dimension & paintWidth)210 virtual void PaintFocusState(const Dimension& focusPaddingVp, const Color& paintColor, const Dimension& paintWidth) 211 {} 212 ClearFocusState()213 virtual void ClearFocusState() {} 214 CreateBackgroundPixelMap(const RefPtr<FrameNode> & value)215 virtual void CreateBackgroundPixelMap(const RefPtr<FrameNode>& value) {} 216 UpdateBorderWidthF(const BorderWidthPropertyF & value)217 virtual void UpdateBorderWidthF(const BorderWidthPropertyF& value) {} 218 219 // clip node without padding SetClipToFrame(bool useClip)220 virtual void SetClipToFrame(bool useClip) {} 221 222 // clip node with padding SetClipToBounds(bool useClip)223 virtual void SetClipToBounds(bool useClip) {} SetClipBoundsWithCommands(const std::string & commands)224 virtual void SetClipBoundsWithCommands(const std::string& commands) {}; SetVisible(bool visible)225 virtual void SetVisible(bool visible) {} 226 MarkContentChanged(bool isChanged)227 virtual void MarkContentChanged(bool isChanged) {} MarkDrivenRender(bool flag)228 virtual void MarkDrivenRender(bool flag) {} MarkDrivenRenderItemIndex(int32_t index)229 virtual void MarkDrivenRenderItemIndex(int32_t index) {} MarkDrivenRenderFramePaintState(bool flag)230 virtual void MarkDrivenRenderFramePaintState(bool flag) {} 231 AnimateHoverEffectScale(bool isHovered)232 virtual void AnimateHoverEffectScale(bool isHovered) {} AnimateHoverEffectBoard(bool isHovered)233 virtual void AnimateHoverEffectBoard(bool isHovered) {} 234 UpdateTransition(const TransitionOptions & options)235 virtual void UpdateTransition(const TransitionOptions& options) {} UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect> & effect)236 virtual void UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect>& effect) {} GetOneCenterTransitionOption()237 const RefPtr<OneCenterTransitionOptionType>& GetOneCenterTransitionOption() 238 { 239 return oneCenterTransition_; 240 } UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType> & value)241 void UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType>& value) 242 { 243 oneCenterTransition_ = value; 244 } OnNodeDisappear(bool recursive)245 virtual void OnNodeDisappear(bool recursive) {} OnNodeAppear(bool recursive)246 virtual void OnNodeAppear(bool recursive) {} HasTransitionOutAnimation()247 virtual bool HasTransitionOutAnimation() const 248 { 249 return false; 250 } 251 HasDisappearTransition()252 virtual bool HasDisappearTransition() const 253 { 254 return false; 255 } 256 IsSynced()257 virtual bool IsSynced() const 258 { 259 return isSynced_; 260 } 261 TriggerPageTransition(PageTransitionType type,const std::function<void ()> & onFinish)262 virtual bool TriggerPageTransition(PageTransitionType type, const std::function<void()>& onFinish) 263 { 264 return false; 265 } 266 SetSharedTranslate(float xTranslate,float yTranslate)267 virtual void SetSharedTranslate(float xTranslate, float yTranslate) {} ResetSharedTranslate()268 virtual void ResetSharedTranslate() {} ResetPageTransitionEffect()269 virtual void ResetPageTransitionEffect() {} 270 AddChild(const RefPtr<RenderContext> & renderContext,int index)271 virtual void AddChild(const RefPtr<RenderContext>& renderContext, int index) {} RemoveChild(const RefPtr<RenderContext> & renderContext)272 virtual void RemoveChild(const RefPtr<RenderContext>& renderContext) {} ClearChildren()273 virtual void ClearChildren() {} SetBounds(float positionX,float positionY,float width,float height)274 virtual void SetBounds(float positionX, float positionY, float width, float height) {} SetContentRectToFrame(RectF rect)275 virtual void SetContentRectToFrame(RectF rect) {} SetSecurityLayer(bool isSecure)276 virtual void SetSecurityLayer(bool isSecure) {} 277 UpdateBackBlurRadius(const Dimension & radius)278 virtual void UpdateBackBlurRadius(const Dimension& radius) {} UpdateBackBlurStyle(const std::optional<BlurStyleOption> & bgBlurStyle)279 virtual void UpdateBackBlurStyle(const std::optional<BlurStyleOption>& bgBlurStyle) {} UpdateBackgroundEffect(const std::optional<EffectOption> & effectOption)280 virtual void UpdateBackgroundEffect(const std::optional<EffectOption>& effectOption) {} UpdateBackBlur(const Dimension & radius,const BlurOption & blurOption)281 virtual void UpdateBackBlur(const Dimension& radius, const BlurOption& blurOption) {} UpdateMotionBlur(const MotionBlurOption & motionBlurOption)282 virtual void UpdateMotionBlur(const MotionBlurOption& motionBlurOption) {} UpdateFrontBlur(const Dimension & radius,const BlurOption & blurOption)283 virtual void UpdateFrontBlur(const Dimension& radius, const BlurOption& blurOption) {} UpdateFrontBlurStyle(const std::optional<BlurStyleOption> & fgBlurStyle)284 virtual void UpdateFrontBlurStyle(const std::optional<BlurStyleOption>& fgBlurStyle) {} UpdateFrontBlurRadius(const Dimension & radius)285 virtual void UpdateFrontBlurRadius(const Dimension& radius) {} ResetBackBlurStyle()286 virtual void ResetBackBlurStyle() {} ClipWithRect(const RectF & rectF)287 virtual void ClipWithRect(const RectF& rectF) {} ClipWithRoundRect(const RoundRect & roundRect)288 virtual void ClipWithRoundRect(const RoundRect& roundRect) {} ClipWithOval(const RectF & rectF)289 virtual void ClipWithOval(const RectF& rectF) {} ClipWithCircle(const Circle & circle)290 virtual void ClipWithCircle(const Circle& circle) {} ClipWithRRect(const RectF & rectF,const RadiusF & radiusF)291 virtual void ClipWithRRect(const RectF& rectF, const RadiusF& radiusF) {} RemoveClipWithRRect()292 virtual void RemoveClipWithRRect() {} 293 294 // visual UpdateVisualEffect(const OHOS::Rosen::VisualEffect * visualEffect)295 virtual void UpdateVisualEffect(const OHOS::Rosen::VisualEffect* visualEffect) {} UpdateBackgroundFilter(const OHOS::Rosen::Filter * backgroundFilter)296 virtual void UpdateBackgroundFilter(const OHOS::Rosen::Filter* backgroundFilter) {} UpdateForegroundFilter(const OHOS::Rosen::Filter * foregroundFilter)297 virtual void UpdateForegroundFilter(const OHOS::Rosen::Filter* foregroundFilter) {} UpdateCompositingFilter(const OHOS::Rosen::Filter * compositingFilter)298 virtual void UpdateCompositingFilter(const OHOS::Rosen::Filter* compositingFilter) {} UpdateBrightnessBlender(const OHOS::Rosen::BrightnessBlender * brightnessBlender)299 virtual void UpdateBrightnessBlender(const OHOS::Rosen::BrightnessBlender* brightnessBlender) {} 300 OpacityAnimation(const AnimationOption & option,double begin,double end)301 virtual void OpacityAnimation(const AnimationOption& option, double begin, double end) {} ScaleAnimation(const AnimationOption & option,double begin,double end)302 virtual void ScaleAnimation(const AnimationOption& option, double begin, double end) {} 303 OnTransformTranslateUpdate(const TranslateOptions & value)304 virtual void OnTransformTranslateUpdate(const TranslateOptions& value) {} OnTransformScaleUpdate(const VectorF & value)305 virtual void OnTransformScaleUpdate(const VectorF& value) {} OnTransformCenterUpdate(const DimensionOffset & value)306 virtual void OnTransformCenterUpdate(const DimensionOffset& value) {} OnOffsetUpdate(const OffsetT<Dimension> & value)307 virtual void OnOffsetUpdate(const OffsetT<Dimension>& value) {} OnOffsetEdgesUpdate(const EdgesParam & value)308 virtual void OnOffsetEdgesUpdate(const EdgesParam& value) {} 309 310 // used in arkts_native_render_node_modifier set property directly to rsNode SetRotation(float rotationX,float rotationY,float rotationZ)311 virtual void SetRotation(float rotationX, float rotationY, float rotationZ) {} SetShadowColor(uint32_t color)312 virtual void SetShadowColor(uint32_t color) {} SetShadowOffset(float offsetX,float offsetY)313 virtual void SetShadowOffset(float offsetX, float offsetY) {} SetShadowAlpha(float alpha)314 virtual void SetShadowAlpha(float alpha) {} SetShadowElevation(float elevation)315 virtual void SetShadowElevation(float elevation) {} SetShadowRadius(float radius)316 virtual void SetShadowRadius(float radius) {} SetScale(float scaleX,float scaleY)317 virtual void SetScale(float scaleX, float scaleY) {} SetBackgroundColor(uint32_t colorValue)318 virtual void SetBackgroundColor(uint32_t colorValue) {} SetRenderPivot(float pivotX,float pivotY)319 virtual void SetRenderPivot(float pivotX, float pivotY) {} SetFrame(float positionX,float positionY,float width,float height)320 virtual void SetFrame(float positionX, float positionY, float width, float height) {} SetOpacity(float opacity)321 virtual void SetOpacity(float opacity) {} SetTranslate(float translateX,float translateY,float translateZ)322 virtual void SetTranslate(float translateX, float translateY, float translateZ) {} CleanTransition()323 virtual void CleanTransition() {} SetRectMask(const RectF & rect,const ShapeMaskProperty & property)324 virtual void SetRectMask(const RectF& rect, const ShapeMaskProperty& property) {} SetCircleMask(const Circle & circle,const ShapeMaskProperty & property)325 virtual void SetCircleMask(const Circle& circle, const ShapeMaskProperty& property) {} SetRoundRectMask(const RoundRect & roundRect,const ShapeMaskProperty & property)326 virtual void SetRoundRectMask(const RoundRect& roundRect, const ShapeMaskProperty& property) {} SetOvalMask(const RectF & rect,const ShapeMaskProperty & property)327 virtual void SetOvalMask(const RectF& rect, const ShapeMaskProperty& property) {} SetCommandPathMask(const std::string & commands,const ShapeMaskProperty & property)328 virtual void SetCommandPathMask(const std::string& commands, const ShapeMaskProperty& property) {} SetMarkNodeGroup(bool isNodeGroup)329 virtual void SetMarkNodeGroup(bool isNodeGroup) {} 330 GetPaintRectWithTransform()331 virtual RectF GetPaintRectWithTransform() 332 { 333 return {}; 334 } 335 336 virtual void SavePaintRect(bool isRound = true, uint8_t flag = 0) {} SyncPartialRsProperties()337 virtual void SyncPartialRsProperties() {} UpdatePaintRect(const RectF & paintRect)338 virtual void UpdatePaintRect(const RectF& paintRect) {} 339 GetPaintRectWithTranslate()340 virtual std::pair<RectF, bool> GetPaintRectWithTranslate() 341 { 342 return {}; 343 } 344 GetLocalTransformMatrix()345 virtual Matrix4 GetLocalTransformMatrix() 346 { 347 return Matrix4(); 348 } 349 GetPointWithRevert(PointF & point)350 virtual void GetPointWithRevert(PointF& point) {} 351 GetPointWithTransform(PointF & point)352 virtual void GetPointWithTransform(PointF& point) {} 353 GetPointTransform(PointF & point)354 virtual void GetPointTransform(PointF& point) {} 355 GetPointTransformRotate(PointF & point)356 virtual void GetPointTransformRotate(PointF& point) {} 357 GetPaintRectWithoutTransform()358 virtual RectF GetPaintRectWithoutTransform() 359 { 360 return {}; 361 } 362 363 // get position property GetPropertyOfPosition()364 virtual RectF GetPropertyOfPosition() 365 { 366 return {}; 367 } 368 369 // stop the property animation and get the current paint rect. GetShowingTranslateProperty()370 virtual OffsetF GetShowingTranslateProperty() 371 { 372 return OffsetF(); 373 } 374 CancelTranslateXYAnimation()375 virtual void CancelTranslateXYAnimation() {} 376 GetTranslateXYProperty()377 virtual OffsetF GetTranslateXYProperty() 378 { 379 return OffsetF(); 380 } 381 382 // update translateXY in backend. UpdateTranslateInXY(const OffsetF & offset)383 virtual void UpdateTranslateInXY(const OffsetF& offset) {} 384 SetTransitionOutCallback(std::function<void ()> && callback)385 virtual void SetTransitionOutCallback(std::function<void()>&& callback) {} 386 SetTransitionInCallback(std::function<void ()> && callback)387 virtual void SetTransitionInCallback(std::function<void()>&& callback) {} 388 SetTransitionUserCallback(TransitionFinishCallback && callback)389 virtual void SetTransitionUserCallback(TransitionFinishCallback&& callback) {} 390 391 virtual void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const; 392 393 virtual void FromJson(const std::unique_ptr<JsonValue>& json); 394 ClearDrawCommands()395 virtual void ClearDrawCommands() {} 396 DumpInfo()397 virtual void DumpInfo() {} DumpSimplifyInfo(std::unique_ptr<JsonValue> & json)398 virtual void DumpSimplifyInfo(std::unique_ptr<JsonValue>& json) {} DumpAdvanceInfo()399 virtual void DumpAdvanceInfo() {} 400 401 void ObscuredToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const; 402 403 void SetSharedTransitionOptions(const std::shared_ptr<SharedTransitionOption>& option); 404 const std::shared_ptr<SharedTransitionOption>& GetSharedTransitionOption() const; 405 void SetShareId(const ShareId& shareId); 406 const ShareId& GetShareId() const; 407 bool HasSharedTransition() const; 408 bool HasSharedTransitionOption() const; 409 SetIsModalRootNode(bool isModalRootNode)410 void SetIsModalRootNode(bool isModalRootNode) 411 { 412 isModalRootNode_ = isModalRootNode; 413 } 414 SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree)415 void SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree) 416 { 417 isNeedRebuildRSTree_ = isNeedRebuildRSTree; 418 } 419 GetBackBlurStyle()420 std::optional<BlurStyleOption> GetBackBlurStyle() const 421 { 422 return GetBackground() ? GetBackground()->propBlurStyleOption : std::nullopt; 423 } GetBackBlurRadius()424 std::optional<Dimension> GetBackBlurRadius() const 425 { 426 return GetBackground() ? GetBackground()->propBlurRadius : std::nullopt; 427 } GetBackgroundEffect()428 std::optional<EffectOption> GetBackgroundEffect() const 429 { 430 return GetBackground() ? GetBackground()->propEffectOption : std::nullopt; 431 } GetFrontBlurStyle()432 std::optional<BlurStyleOption> GetFrontBlurStyle() const 433 { 434 return GetForeground() ? GetForeground()->propBlurStyleOption : std::nullopt; 435 } GetFrontBlurRadius()436 std::optional<Dimension> GetFrontBlurRadius() const 437 { 438 return GetForeground() ? GetForeground()->propBlurRadius : std::nullopt; 439 } 440 AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier)441 virtual void AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier) {}; 442 DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase> & modifier)443 virtual void DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase>& modifier) {}; 444 PaintAccessibilityFocus()445 virtual void PaintAccessibilityFocus() {}; 446 UpdateAccessibilityRoundRect()447 virtual void UpdateAccessibilityRoundRect() {}; 448 ClearAccessibilityFocus()449 virtual void ClearAccessibilityFocus() {}; 450 451 virtual void OnAccessibilityFocusUpdate( 452 bool isAccessibilityFocus, const int64_t accessibilityIdForVirtualNode = -2100000) {}; OnAccessibilityFocusRectUpdate(RectT<int32_t> accessibilityFocusRect)453 virtual void OnAccessibilityFocusRectUpdate(RectT<int32_t> accessibilityFocusRect) {}; 454 OnMouseSelectUpdate(bool isSelected,const Color & fillColor,const Color & strokeColor)455 virtual void OnMouseSelectUpdate(bool isSelected, const Color& fillColor, const Color& strokeColor) {} UpdateMouseSelectWithRect(const RectF & rect,const Color & fillColor,const Color & strokeColor)456 virtual void UpdateMouseSelectWithRect(const RectF& rect, const Color& fillColor, const Color& strokeColor) {} 457 OnPositionUpdate(const OffsetT<Dimension> & value)458 virtual void OnPositionUpdate(const OffsetT<Dimension>& value) {} OnPositionEdgesUpdate(const EdgesParam & value)459 virtual void OnPositionEdgesUpdate(const EdgesParam& value) {} RecalculatePosition()460 virtual void RecalculatePosition() {} OnZIndexUpdate(int32_t value)461 virtual void OnZIndexUpdate(int32_t value) {} 462 OnBackgroundColorUpdate(const Color & value)463 virtual void OnBackgroundColorUpdate(const Color& value) {} OnOpacityUpdate(double opacity)464 virtual void OnOpacityUpdate(double opacity) {} OnDynamicRangeModeUpdate(DynamicRangeMode dynamicRangeMode)465 virtual void OnDynamicRangeModeUpdate(DynamicRangeMode dynamicRangeMode) {} SetAlphaOffscreen(bool isOffScreen)466 virtual void SetAlphaOffscreen(bool isOffScreen) {} OnSphericalEffectUpdate(double radio)467 virtual void OnSphericalEffectUpdate(double radio) {} OnPixelStretchEffectUpdate(const PixStretchEffectOption & option)468 virtual void OnPixelStretchEffectUpdate(const PixStretchEffectOption& option) {} OnLightUpEffectUpdate(double radio)469 virtual void OnLightUpEffectUpdate(double radio) {} OnClickEffectLevelUpdate(const ClickEffectInfo & info)470 virtual void OnClickEffectLevelUpdate(const ClickEffectInfo& info) {} OnRenderGroupUpdate(bool isRenderGroup)471 virtual void OnRenderGroupUpdate(bool isRenderGroup) {} UpdateRenderGroup(bool isRenderGroup,bool isForced,bool includeProperty)472 virtual void UpdateRenderGroup(bool isRenderGroup, bool isForced, bool includeProperty) {} OnSuggestedRenderGroupUpdate(bool isRenderGroup)473 virtual void OnSuggestedRenderGroupUpdate(bool isRenderGroup) {} OnDynamicDimDegreeUpdate(const float degree)474 virtual void OnDynamicDimDegreeUpdate(const float degree) {} OnRenderFitUpdate(RenderFit renderFit)475 virtual void OnRenderFitUpdate(RenderFit renderFit) {} OnNodeNameUpdate(const std::string & id)476 virtual void OnNodeNameUpdate(const std::string& id) {} OnParticleOptionArrayUpdate(const std::list<ParticleOption> & optionArray)477 virtual void OnParticleOptionArrayUpdate(const std::list<ParticleOption>& optionArray) {} 478 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SphericalEffect, double); 479 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PixelStretchEffect, PixStretchEffectOption); 480 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(LightUpEffect, double); 481 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(DynamicDimDegree, float); 482 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ParticleOptionArray, std::list<ParticleOption>); 483 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ClickEffectLevel, ClickEffectInfo); 484 virtual RefPtr<PixelMap> GetThumbnailPixelMap(bool needScale = false) 485 { 486 return nullptr; 487 } UpdateThumbnailPixelMapScale(float & scaleX,float & scaleY)488 virtual void UpdateThumbnailPixelMapScale(float& scaleX, float& scaleY) {} 489 CreateThumbnailPixelMapAsyncTask(bool needScale,std::function<void (const RefPtr<PixelMap>)> && callback)490 virtual bool CreateThumbnailPixelMapAsyncTask( 491 bool needScale, std::function<void(const RefPtr<PixelMap>)>&& callback) 492 { 493 return false; 494 } 495 SetActualForegroundColor(const Color & value)496 virtual void SetActualForegroundColor(const Color& value) {} 497 ResetSurface(int width,int height)498 virtual void ResetSurface(int width, int height) {} PaintDebugBoundary(bool flag)499 virtual void PaintDebugBoundary(bool flag) {} 500 // transform matrix 501 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(TransformMatrix, Matrix4); 502 503 // Transform 504 ACE_DEFINE_PROPERTY_GROUP(Transform, TransformProperty); 505 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformScale, VectorF); 506 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformCenter, DimensionOffset); 507 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformTranslate, TranslateOptions); 508 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformRotate, Vector5F); 509 510 // Foreground 511 ACE_DEFINE_PROPERTY_GROUP(Foreground, ForegroundProperty); 512 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Foreground, ForegroundEffect, float); 513 514 // Background 515 ACE_DEFINE_PROPERTY_GROUP(Background, BackgroundProperty); 516 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImage, ImageSourceInfo); 517 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageRepeat, ImageRepeat); 518 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageSize, BackgroundImageSize); 519 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImagePosition, BackgroundImagePosition); 520 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageResizableSlice, ImageResizableSlice); 521 522 // BorderImage 523 ACE_DEFINE_PROPERTY_GROUP(BdImage, BorderImageProperty); 524 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImage, RefPtr<BorderImage>); 525 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageSource, ImageSourceInfo); 526 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageSlice, bool); 527 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageWidth, bool); 528 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageOutset, bool); 529 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageRepeat, bool); 530 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageGradient, Gradient); 531 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderSourceFromImage, bool); 532 533 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(BackgroundColor, Color); 534 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Opacity, double); 535 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderGroup, bool); 536 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(NodeName, std::string); 537 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SuggestedRenderGroup, bool); 538 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColor, Color); 539 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColorStrategy, ForegroundColorStrategy); 540 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(DynamicRangeMode, DynamicRangeMode); 541 ACE_DEFINE_PROPERTY_GROUP_ITEM(ForegroundColorFlag, bool); 542 543 // CustomBackground 544 ACE_DEFINE_PROPERTY_GROUP(CustomBackground, CustomBackgroundProperty); 545 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundPixelMap, RefPtr<PixelMap>); 546 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundAlign, Alignment); 547 548 // Graphics 549 ACE_DEFINE_PROPERTY_GROUP(Graphics, GraphicsProperty); 550 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontBrightness, Dimension); 551 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontGrayScale, Dimension); 552 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontContrast, Dimension); 553 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSaturate, Dimension); 554 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSepia, Dimension); 555 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontInvert, InvertVariant); 556 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, SystemBarEffect, bool); 557 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontHueRotate, float); 558 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontColorBlend, Color); 559 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, LinearGradientBlur, NG::LinearGradientBlurPara); 560 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, Magnifier, MagnifierParams); 561 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpRate, float); 562 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpDegree, float); 563 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BgDynamicBrightnessOption, BrightnessOption); 564 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FgDynamicBrightnessOption, BrightnessOption); 565 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackShadow, Shadow); 566 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendMode, BlendMode); 567 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendApplyType, BlendApplyType); 568 569 // BorderRadius. 570 ACE_DEFINE_PROPERTY_GROUP(Border, BorderProperty); 571 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderRadius, BorderRadiusProperty); 572 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderWidth, BorderWidthProperty); 573 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderColor, BorderColorProperty); 574 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderStyle, BorderStyleProperty); 575 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, DashGap, BorderWidthProperty); 576 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, DashWidth, BorderWidthProperty); 577 578 // Outer Border 579 ACE_DEFINE_PROPERTY_GROUP(OuterBorder, OuterBorderProperty); 580 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderRadius, BorderRadiusProperty); 581 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderWidth, BorderWidthProperty); 582 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderColor, BorderColorProperty); 583 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderStyle, BorderStyleProperty); 584 585 // PointLight 586 ACE_DEFINE_PROPERTY_GROUP(PointLight, PointLightProperty); 587 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightPosition, TranslateOptions); 588 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIntensity, float); 589 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightColor, Color); 590 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIlluminated, uint32_t); 591 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, IlluminatedBorderWidth, Dimension); 592 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, Bloom, float); 593 594 // Transition Options 595 ACE_DEFINE_PROPERTY_GROUP(TransitionAppearing, TransitionOptions); 596 ACE_DEFINE_PROPERTY_GROUP(TransitionDisappearing, TransitionOptions); 597 598 // Position 599 ACE_DEFINE_PROPERTY_GROUP(PositionProperty, RenderPositionProperty); 600 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Position, OffsetT<Dimension>); 601 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Offset, OffsetT<Dimension>); 602 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, PositionEdges, EdgesParam); 603 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, OffsetEdges, EdgesParam); 604 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Anchor, OffsetT<Dimension>); 605 606 // zIndex 607 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ZIndex, int32_t); 608 609 // Clip 610 ACE_DEFINE_PROPERTY_GROUP(Clip, ClipProperty); 611 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipShape, RefPtr<BasicShape>); 612 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipEdge, bool); 613 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipMask, RefPtr<BasicShape>); 614 615 // ProgressMask 616 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ProgressMask, RefPtr<ProgressMaskProperty>); 617 618 // Gradient 619 ACE_DEFINE_PROPERTY_GROUP(Gradient, GradientProperty); 620 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LinearGradient, NG::Gradient); 621 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, SweepGradient, NG::Gradient); 622 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, RadialGradient, NG::Gradient); 623 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LastGradientType, NG::GradientType); 624 625 // Overlay 626 ACE_DEFINE_PROPERTY_GROUP(Overlay, OverlayProperty); 627 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Overlay, OverlayText, OverlayOptions) 628 629 // MotionPath 630 ACE_DEFINE_PROPERTY_GROUP(Motion, MotionPathProperty); 631 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Motion, MotionPath, MotionPathOption) 632 633 // accessibility 634 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP_FOR_VIRTUAL_NODE(AccessibilityFocus, bool); 635 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(AccessibilityFocusRect, RectT<int32_t>); 636 637 // useEffect 638 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseEffect, bool); 639 640 // useShadowBatching 641 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseShadowBatching, bool); 642 643 // freeze 644 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Freeze, bool); 645 646 // obscured 647 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Obscured, std::vector<ObscuredReasons>); 648 649 // renderFit 650 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderFit, RenderFit); 651 652 virtual void SetUsingContentRectForRenderFrame(bool value, bool adjustRSFrameByContentRect = false) {} SetFrameGravity(OHOS::Rosen::Gravity gravity)653 virtual void SetFrameGravity(OHOS::Rosen::Gravity gravity) {} 654 CalcExpectedFrameRate(const std::string & scene,float speed)655 virtual int32_t CalcExpectedFrameRate(const std::string& scene, float speed) 656 { 657 return 0; 658 } 659 IsUniRenderEnabled()660 virtual bool IsUniRenderEnabled() 661 { 662 return true; 663 } SetRenderFrameOffset(const OffsetF & offset)664 virtual void SetRenderFrameOffset(const OffsetF& offset) {} 665 DoTextureExport(uint64_t)666 virtual bool DoTextureExport(uint64_t /* surfaceId */) 667 { 668 return false; 669 } 670 StopTextureExport()671 virtual bool StopTextureExport() 672 { 673 return false; 674 } 675 SetSurfaceRotation(bool isLock)676 virtual void SetSurfaceRotation(bool isLock) {} SuggestOpIncNode(bool isOpincNode,bool isNeedCalculate)677 virtual void SuggestOpIncNode(bool isOpincNode, bool isNeedCalculate) {} 678 SetHandleChildBounds(bool value)679 void SetHandleChildBounds(bool value) { 680 handleChildBounds_ = value; 681 } 682 GetRevertMatrix()683 virtual Matrix4 GetRevertMatrix() 684 { 685 return Matrix4(); 686 } 687 688 // The additional opacity will be multiplied with the base opacity. SetOpacityMultiplier(float opacity)689 virtual void SetOpacityMultiplier(float opacity) {} 690 SetNeedAnimateFlag(bool isNeedAnimate)691 void SetNeedAnimateFlag(bool isNeedAnimate) 692 { 693 isNeedAnimate_ = isNeedAnimate; 694 } 695 IsDisappearing()696 virtual bool IsDisappearing() const 697 { 698 return false; 699 } 700 SetRenderFit(RenderFit renderFit)701 virtual void SetRenderFit(RenderFit renderFit) {} 702 703 protected: 704 RenderContext() = default; 705 std::shared_ptr<SharedTransitionOption> sharedTransitionOption_; 706 ShareId shareId_; 707 bool isModalRootNode_ = false; 708 bool isSynced_ = false; 709 bool isNeedRebuildRSTree_ = true; 710 bool handleChildBounds_ = false; 711 bool isNeedAnimate_ = true; 712 OnBackgroundImageUpdate(const ImageSourceInfo & imageSourceInfo)713 virtual void OnBackgroundImageUpdate(const ImageSourceInfo& imageSourceInfo) {} OnBackgroundImageRepeatUpdate(const ImageRepeat & imageRepeat)714 virtual void OnBackgroundImageRepeatUpdate(const ImageRepeat& imageRepeat) {} OnBackgroundImageSizeUpdate(const BackgroundImageSize & bgImgSize)715 virtual void OnBackgroundImageSizeUpdate(const BackgroundImageSize& bgImgSize) {} OnBackgroundImagePositionUpdate(const BackgroundImagePosition & bgImgPosition)716 virtual void OnBackgroundImagePositionUpdate(const BackgroundImagePosition& bgImgPosition) {} OnBackgroundImageResizableSliceUpdate(const ImageResizableSlice & slice)717 virtual void OnBackgroundImageResizableSliceUpdate(const ImageResizableSlice& slice) {} 718 OnForegroundColorUpdate(const Color & value)719 virtual void OnForegroundColorUpdate(const Color& value) {} OnForegroundColorStrategyUpdate(const ForegroundColorStrategy & value)720 virtual void OnForegroundColorStrategyUpdate(const ForegroundColorStrategy& value) {} OnForegroundEffectUpdate(float radius)721 virtual void OnForegroundEffectUpdate(float radius) {}; 722 OnBackgroundPixelMapUpdate(const RefPtr<PixelMap> & value)723 virtual void OnBackgroundPixelMapUpdate(const RefPtr<PixelMap>& value) {} OnBackgroundAlignUpdate(const Alignment & align)724 virtual void OnBackgroundAlignUpdate(const Alignment& align) {} 725 OnBorderImageUpdate(const RefPtr<BorderImage> & borderImage)726 virtual void OnBorderImageUpdate(const RefPtr<BorderImage>& borderImage) {} OnBorderImageSourceUpdate(const ImageSourceInfo & borderImageSourceInfo)727 virtual void OnBorderImageSourceUpdate(const ImageSourceInfo& borderImageSourceInfo) {} OnHasBorderImageSliceUpdate(bool tag)728 virtual void OnHasBorderImageSliceUpdate(bool tag) {} OnHasBorderImageWidthUpdate(bool tag)729 virtual void OnHasBorderImageWidthUpdate(bool tag) {} OnHasBorderImageOutsetUpdate(bool tag)730 virtual void OnHasBorderImageOutsetUpdate(bool tag) {} OnHasBorderImageRepeatUpdate(bool tag)731 virtual void OnHasBorderImageRepeatUpdate(bool tag) {} OnBorderImageGradientUpdate(const Gradient & gradient)732 virtual void OnBorderImageGradientUpdate(const Gradient& gradient) {} OnBorderSourceFromImageUpdate(bool sourceFromImage)733 virtual void OnBorderSourceFromImageUpdate(bool sourceFromImage) {} 734 OnBorderWidthUpdate(const BorderWidthProperty & value)735 virtual void OnBorderWidthUpdate(const BorderWidthProperty& value) {} OnBorderRadiusUpdate(const BorderRadiusProperty & value)736 virtual void OnBorderRadiusUpdate(const BorderRadiusProperty& value) {} OnBorderColorUpdate(const BorderColorProperty & value)737 virtual void OnBorderColorUpdate(const BorderColorProperty& value) {} OnBorderStyleUpdate(const BorderStyleProperty & value)738 virtual void OnBorderStyleUpdate(const BorderStyleProperty& value) {} OnDashGapUpdate(const BorderWidthProperty & value)739 virtual void OnDashGapUpdate(const BorderWidthProperty& value) {} OnDashWidthUpdate(const BorderWidthProperty & value)740 virtual void OnDashWidthUpdate(const BorderWidthProperty& value) {} 741 OnOuterBorderWidthUpdate(const BorderWidthProperty & value)742 virtual void OnOuterBorderWidthUpdate(const BorderWidthProperty& value) {} OnOuterBorderRadiusUpdate(const BorderRadiusProperty & value)743 virtual void OnOuterBorderRadiusUpdate(const BorderRadiusProperty& value) {} OnOuterBorderColorUpdate(const BorderColorProperty & value)744 virtual void OnOuterBorderColorUpdate(const BorderColorProperty& value) {} OnOuterBorderStyleUpdate(const BorderStyleProperty & value)745 virtual void OnOuterBorderStyleUpdate(const BorderStyleProperty& value) {} 746 OnLightPositionUpdate(const TranslateOptions & value)747 virtual void OnLightPositionUpdate(const TranslateOptions& value) {} OnLightIntensityUpdate(const float value)748 virtual void OnLightIntensityUpdate(const float value) {} OnLightColorUpdate(const Color & value)749 virtual void OnLightColorUpdate(const Color& value) {} OnLightIlluminatedUpdate(const uint32_t value)750 virtual void OnLightIlluminatedUpdate(const uint32_t value) {} OnIlluminatedBorderWidthUpdate(const Dimension & value)751 virtual void OnIlluminatedBorderWidthUpdate(const Dimension& value) {} OnBloomUpdate(const float value)752 virtual void OnBloomUpdate(const float value) {} 753 OnTransformRotateUpdate(const Vector5F & value)754 virtual void OnTransformRotateUpdate(const Vector5F& value) {} OnTransformMatrixUpdate(const Matrix4 & matrix)755 virtual void OnTransformMatrixUpdate(const Matrix4& matrix) {} 756 OnAnchorUpdate(const OffsetT<Dimension> & value)757 virtual void OnAnchorUpdate(const OffsetT<Dimension>& value) {} 758 OnClipShapeUpdate(const RefPtr<BasicShape> & basicShape)759 virtual void OnClipShapeUpdate(const RefPtr<BasicShape>& basicShape) {} OnClipEdgeUpdate(bool isClip)760 virtual void OnClipEdgeUpdate(bool isClip) {} OnClipMaskUpdate(const RefPtr<BasicShape> & basicShape)761 virtual void OnClipMaskUpdate(const RefPtr<BasicShape>& basicShape) {} 762 OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty> & progress)763 virtual void OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty>& progress) {} 764 OnLinearGradientUpdate(const NG::Gradient & value)765 virtual void OnLinearGradientUpdate(const NG::Gradient& value) {} OnSweepGradientUpdate(const NG::Gradient & value)766 virtual void OnSweepGradientUpdate(const NG::Gradient& value) {} OnRadialGradientUpdate(const NG::Gradient & value)767 virtual void OnRadialGradientUpdate(const NG::Gradient& value) {} OnLastGradientTypeUpdate(const NG::GradientType & value)768 virtual void OnLastGradientTypeUpdate(const NG::GradientType& value) {} 769 OnFrontBrightnessUpdate(const Dimension & value)770 virtual void OnFrontBrightnessUpdate(const Dimension& value) {} OnFrontGrayScaleUpdate(const Dimension & value)771 virtual void OnFrontGrayScaleUpdate(const Dimension& value) {} OnFrontContrastUpdate(const Dimension & value)772 virtual void OnFrontContrastUpdate(const Dimension& value) {} OnFrontSaturateUpdate(const Dimension & value)773 virtual void OnFrontSaturateUpdate(const Dimension& value) {} OnFrontSepiaUpdate(const Dimension & value)774 virtual void OnFrontSepiaUpdate(const Dimension& value) {} OnFrontInvertUpdate(const InvertVariant & value)775 virtual void OnFrontInvertUpdate(const InvertVariant& value) {} OnSystemBarEffectUpdate(bool systemBarEffect)776 virtual void OnSystemBarEffectUpdate(bool systemBarEffect) {} OnFrontHueRotateUpdate(float value)777 virtual void OnFrontHueRotateUpdate(float value) {} OnFrontColorBlendUpdate(const Color & value)778 virtual void OnFrontColorBlendUpdate(const Color& value) {} OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara & blurPara)779 virtual void OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara& blurPara) {} OnMagnifierUpdate(const MagnifierParams & magnifierParams)780 virtual void OnMagnifierUpdate(const MagnifierParams& magnifierParams) {} OnDynamicLightUpRateUpdate(const float rate)781 virtual void OnDynamicLightUpRateUpdate(const float rate) {} OnDynamicLightUpDegreeUpdate(const float degree)782 virtual void OnDynamicLightUpDegreeUpdate(const float degree) {} OnBgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption> & brightnessOption)783 virtual void OnBgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption>& brightnessOption) {} OnFgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption> & brightnessOption)784 virtual void OnFgDynamicBrightnessOptionUpdate(const std::optional<BrightnessOption>& brightnessOption) {} OnBackShadowUpdate(const Shadow & shadow)785 virtual void OnBackShadowUpdate(const Shadow& shadow) {} OnBackBlendModeUpdate(BlendMode blendMode)786 virtual void OnBackBlendModeUpdate(BlendMode blendMode) {} OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType)787 virtual void OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType) {} 788 OnOverlayTextUpdate(const OverlayOptions & overlay)789 virtual void OnOverlayTextUpdate(const OverlayOptions& overlay) {} OnMotionPathUpdate(const MotionPathOption & motionPath)790 virtual void OnMotionPathUpdate(const MotionPathOption& motionPath) {} OnUseEffectUpdate(bool useEffect)791 virtual void OnUseEffectUpdate(bool useEffect) {} OnUseShadowBatchingUpdate(bool useShadowBatching)792 virtual void OnUseShadowBatchingUpdate(bool useShadowBatching) {} OnFreezeUpdate(bool isFreezed)793 virtual void OnFreezeUpdate(bool isFreezed) {} OnObscuredUpdate(const std::vector<ObscuredReasons> & reasons)794 virtual void OnObscuredUpdate(const std::vector<ObscuredReasons>& reasons) {} 795 796 private: 797 friend class ViewAbstract; 798 std::function<void()> requestFrame_; 799 WeakPtr<FrameNode> host_; 800 RefPtr<OneCenterTransitionOptionType> oneCenterTransition_; 801 ACE_DISALLOW_COPY_AND_MOVE(RenderContext); 802 }; 803 } // namespace OHOS::Ace::NG 804 805 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H 806