1 /* 2 * Copyright (c) 2022 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 <functional> 20 21 #include "base/geometry/dimension.h" 22 #include "base/geometry/matrix4.h" 23 #include "base/geometry/ng/rect_t.h" 24 #include "base/geometry/ng/vector.h" 25 #include "base/memory/ace_type.h" 26 #include "base/utils/noncopyable.h" 27 #include "core/animation/page_transition_common.h" 28 #include "core/components/common/properties/color.h" 29 #include "core/components/common/properties/shared_transition_option.h" 30 #include "core/components_ng/property/border_property.h" 31 #include "core/components_ng/property/overlay_property.h" 32 #include "core/components_ng/property/property.h" 33 #include "core/components_ng/property/transition_property.h" 34 #include "core/components_ng/render/animation_utils.h" 35 #include "core/components_ng/render/canvas.h" 36 #include "core/components_ng/render/drawing_forward.h" 37 #include "core/components_ng/render/render_property.h" 38 #include "core/pipeline/base/constants.h" 39 40 namespace OHOS::Ace::NG { 41 class GeometryNode; 42 class RenderPropertyNode; 43 class FrameNode; 44 class Modifier; 45 46 using CanvasDrawFunction = std::function<void(RSCanvas& canvas)>; 47 48 // RenderContext is used for render node to paint. 49 class RenderContext : public virtual AceType { 50 DECLARE_ACE_TYPE(NG::RenderContext, AceType) 51 52 public: 53 ~RenderContext() override = default; 54 55 static RefPtr<RenderContext> Create(); 56 57 void SetRequestFrame(const std::function<void()>& requestFrame); 58 void RequestNextFrame() const; 59 60 void SetHostNode(const WeakPtr<FrameNode>& host); 61 RefPtr<FrameNode> GetHost() const; 62 SetNeedDebugBoundary(bool flag)63 virtual void SetNeedDebugBoundary(bool flag) {} NeedDebugBoundary()64 virtual bool NeedDebugBoundary() const 65 { 66 return false; 67 } 68 FlushContentDrawFunction(CanvasDrawFunction && contentDraw)69 virtual void FlushContentDrawFunction(CanvasDrawFunction&& contentDraw) {} 70 FlushForegroundDrawFunction(CanvasDrawFunction && foregroundDraw)71 virtual void FlushForegroundDrawFunction(CanvasDrawFunction&& foregroundDraw) {} 72 FlushOverlayDrawFunction(CanvasDrawFunction && overlayDraw)73 virtual void FlushOverlayDrawFunction(CanvasDrawFunction&& overlayDraw) {} 74 FlushContentModifier(const RefPtr<Modifier> & modifier)75 virtual void FlushContentModifier(const RefPtr<Modifier>& modifier) {} FlushForegroundModifier(const RefPtr<Modifier> & modifier)76 virtual void FlushForegroundModifier(const RefPtr<Modifier>& modifier) {} FlushOverlayModifier(const RefPtr<Modifier> & modifier)77 virtual void FlushOverlayModifier(const RefPtr<Modifier>& modifier) {} 78 RebuildFrame(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)79 virtual void RebuildFrame(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 80 AddFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)81 virtual void AddFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 82 RemoveFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)83 virtual void RemoveFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {}; 84 MoveFrame(FrameNode * self,const RefPtr<FrameNode> & child,int32_t index)85 virtual void MoveFrame(FrameNode* self, const RefPtr<FrameNode>& child, int32_t index) {} 86 SyncGeometryProperties(GeometryNode * geometryNode)87 virtual void SyncGeometryProperties(GeometryNode* geometryNode) {} 88 SyncGeometryProperties(const RectF & rectF)89 virtual void SyncGeometryProperties(const RectF& rectF) {} 90 OnModifyDone()91 virtual void OnModifyDone() {} 92 93 virtual void InitContext(bool isRoot, const std::optional<std::string>& surfaceName, bool useExternalNode = false) 94 {} 95 StartRecording()96 virtual void StartRecording() {} StopRecordingIfNeeded()97 virtual void StopRecordingIfNeeded() {} 98 SetDrawContentAtLast(bool useDrawContentLastOrder)99 virtual void SetDrawContentAtLast(bool useDrawContentLastOrder) {} 100 ResetBlendBgColor()101 virtual void ResetBlendBgColor() {} 102 BlendBgColor(const Color & color)103 virtual void BlendBgColor(const Color& color) {} 104 ResetBlendBorderColor()105 virtual void ResetBlendBorderColor() {} 106 BlendBorderColor(const Color & color)107 virtual void BlendBorderColor(const Color& color) {} 108 109 // Paint focus state by component's setting. It will paint along the paintRect 110 virtual void PaintFocusState(const RoundRect& paintRect, const Color& paintColor, const Dimension& paintWidth, 111 bool isAccessibilityFocus = false) 112 {} 113 // Paint focus state by component's setting. It will paint along the frameRect(padding: focusPaddingVp) 114 virtual void PaintFocusState(const RoundRect& paintRect, const Dimension& focusPaddingVp, const Color& paintColor, 115 const Dimension& paintWidth, bool isAccessibilityFocus = false) 116 {} 117 // Paint focus state by default. It will paint along the component rect(padding: focusPaddingVp) PaintFocusState(const Dimension & focusPaddingVp,const Color & paintColor,const Dimension & paintWidth)118 virtual void PaintFocusState(const Dimension& focusPaddingVp, const Color& paintColor, const Dimension& paintWidth) 119 {} 120 ClearFocusState()121 virtual void ClearFocusState() {} 122 UpdateBorderWidthF(const BorderWidthPropertyF & value)123 virtual void UpdateBorderWidthF(const BorderWidthPropertyF& value) {} 124 125 // clip node without padding SetClipToFrame(bool useClip)126 virtual void SetClipToFrame(bool useClip) {} 127 128 // clip node with padding SetClipToBounds(bool useClip)129 virtual void SetClipToBounds(bool useClip) {} SetClipBoundsWithCommands(const std::string & commands)130 virtual void SetClipBoundsWithCommands(const std::string& commands) {}; SetVisible(bool visible)131 virtual void SetVisible(bool visible) {} 132 133 virtual RefPtr<Canvas> GetCanvas() = 0; 134 135 virtual void Restore() = 0; 136 AnimateHoverEffectScale(bool isHovered)137 virtual void AnimateHoverEffectScale(bool isHovered) {} AnimateHoverEffectBoard(bool isHovered)138 virtual void AnimateHoverEffectBoard(bool isHovered) {} 139 UpdateTransition(const TransitionOptions & options)140 virtual void UpdateTransition(const TransitionOptions& options) {} OnNodeDisappear()141 virtual void OnNodeDisappear() {} OnNodeAppear()142 virtual void OnNodeAppear() {} 143 TriggerPageTransition(PageTransitionType type,const std::function<void ()> & onFinish)144 virtual bool TriggerPageTransition(PageTransitionType type, const std::function<void()>& onFinish) 145 { 146 return false; 147 } 148 SetSharedTranslate(float xTranslate,float yTranslate)149 virtual void SetSharedTranslate(float xTranslate, float yTranslate) {} ResetSharedTranslate()150 virtual void ResetSharedTranslate() {} ResetPageTransitionEffect()151 virtual void ResetPageTransitionEffect() {} 152 AddChild(const RefPtr<RenderContext> & renderContext,int index)153 virtual void AddChild(const RefPtr<RenderContext>& renderContext, int index) {} SetBounds(float positionX,float positionY,float width,float height)154 virtual void SetBounds(float positionX, float positionY, float width, float height) {} 155 UpdateBackBlurRadius(const Dimension & radius)156 virtual void UpdateBackBlurRadius(const Dimension& radius) {} UpdateBackBlurStyle(const BlurStyleOption & blurStyle)157 virtual void UpdateBackBlurStyle(const BlurStyleOption& blurStyle) {} 158 ClipWithRect(const RectF & rectF)159 virtual void ClipWithRect(const RectF& rectF) {} 160 OpacityAnimation(const AnimationOption & option,double begin,double end)161 virtual void OpacityAnimation(const AnimationOption& option, double begin, double end) {} ScaleAnimation(const AnimationOption & option,double begin,double end)162 virtual void ScaleAnimation(const AnimationOption& option, double begin, double end) {} 163 OnTransformTranslateUpdate(const TranslateOptions & value)164 virtual void OnTransformTranslateUpdate(const TranslateOptions& value) {} OnTransformScaleUpdate(const VectorF & value)165 virtual void OnTransformScaleUpdate(const VectorF& value) {} OnTransformCenterUpdate(const DimensionOffset & value)166 virtual void OnTransformCenterUpdate(const DimensionOffset& value) {} OnOffsetUpdate(const OffsetT<Dimension> & value)167 virtual void OnOffsetUpdate(const OffsetT<Dimension>& value) {} 168 GetPaintRectWithTransform()169 virtual RectF GetPaintRectWithTransform() 170 { 171 return {}; 172 } 173 GetPointWithTransform(PointF & point)174 virtual void GetPointWithTransform(PointF& point) 175 { 176 } 177 GetPaintRectWithoutTransform()178 virtual RectF GetPaintRectWithoutTransform() 179 { 180 return {}; 181 } 182 183 virtual void ToJsonValue(std::unique_ptr<JsonValue>& json) const; 184 ClearDrawCommands()185 virtual void ClearDrawCommands() {} 186 NotifyTransition(const AnimationOption & option,const TransitionOptions & transOptions,bool isTransitionIn)187 virtual void NotifyTransition( 188 const AnimationOption& option, const TransitionOptions& transOptions, bool isTransitionIn) 189 {} 190 DumpInfo()191 virtual void DumpInfo() const {} 192 SetSharedTransitionOptions(const std::shared_ptr<SharedTransitionOption> & option)193 void SetSharedTransitionOptions(const std::shared_ptr<SharedTransitionOption>& option) 194 { 195 sharedTransitionOption_ = option; 196 } GetSharedTransitionOption()197 const std::shared_ptr<SharedTransitionOption>& GetSharedTransitionOption() const 198 { 199 return sharedTransitionOption_; 200 } SetShareId(const ShareId & shareId)201 void SetShareId(const ShareId& shareId) 202 { 203 shareId_ = shareId; 204 } GetShareId()205 const ShareId& GetShareId() const 206 { 207 return shareId_; 208 } HasSharedTransition()209 bool HasSharedTransition() const 210 { 211 return !shareId_.empty(); 212 } HasSharedTransitionOption()213 bool HasSharedTransitionOption() const 214 { 215 return sharedTransitionOption_ != nullptr; 216 } 217 GetBackBlurStyle()218 std::optional<BlurStyleOption> GetBackBlurStyle() const 219 { 220 return GetBackground() ? GetBackground()->propBlurStyleOption : std::nullopt; 221 } GetBackBlurRadius()222 std::optional<Dimension> GetBackBlurRadius() const 223 { 224 return GetBackground() ? GetBackground()->propBlurRadius : std::nullopt; 225 } 226 PaintAccessibilityFocus()227 virtual void PaintAccessibilityFocus() {}; 228 ClearAccessibilityFocus()229 virtual void ClearAccessibilityFocus() {}; 230 OnAccessibilityFocusUpdate(bool isAccessibilityFocus)231 virtual void OnAccessibilityFocusUpdate(bool isAccessibilityFocus) {}; 232 OnMouseSelectUpdate(bool isSelected,const Color & fillColor,const Color & strokeColor)233 virtual void OnMouseSelectUpdate(bool isSelected, const Color& fillColor, const Color& strokeColor) {} UpdateMouseSelectWithRect(const RectF & rect,const Color & fillColor,const Color & strokeColor)234 virtual void UpdateMouseSelectWithRect(const RectF& rect, const Color& fillColor, const Color& strokeColor) {} 235 OnPositionUpdate(const OffsetT<Dimension> & value)236 virtual void OnPositionUpdate(const OffsetT<Dimension>& value) {} OnZIndexUpdate(int32_t value)237 virtual void OnZIndexUpdate(int32_t value) {} 238 OnBackgroundColorUpdate(const Color & value)239 virtual void OnBackgroundColorUpdate(const Color& value) {} 240 241 // transform matrix 242 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(TransformMatrix, Matrix4); 243 244 // Transform 245 ACE_DEFINE_PROPERTY_GROUP(Transform, TransformProperty); 246 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformScale, VectorF); 247 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformCenter, DimensionOffset); 248 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformTranslate, TranslateOptions); 249 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformRotate, Vector4F); 250 251 // Background 252 ACE_DEFINE_PROPERTY_GROUP(Background, BackgroundProperty); 253 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImage, ImageSourceInfo); 254 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageRepeat, ImageRepeat); 255 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageSize, BackgroundImageSize); 256 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImagePosition, BackgroundImagePosition); 257 258 // BorderImage 259 ACE_DEFINE_PROPERTY_GROUP(BdImage, BorderImageProperty); 260 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImage, RefPtr<BorderImage>); 261 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageSource, ImageSourceInfo); 262 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageSlice, bool); 263 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageWidth, bool); 264 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageOutset, bool); 265 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageRepeat, bool); 266 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageGradient, Gradient); 267 268 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(BackgroundColor, Color); 269 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Opacity, double); 270 271 // Graphics 272 ACE_DEFINE_PROPERTY_GROUP(Graphics, GraphicsProperty); 273 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontBrightness, Dimension); 274 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontGrayScale, Dimension); 275 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontContrast, Dimension); 276 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSaturate, Dimension); 277 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSepia, Dimension); 278 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontInvert, Dimension); 279 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontHueRotate, float); 280 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontColorBlend, Color); 281 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontBlurRadius, Dimension); 282 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackShadow, Shadow); 283 284 // BorderRadius. 285 ACE_DEFINE_PROPERTY_GROUP(Border, BorderProperty); 286 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderRadius, BorderRadiusProperty); 287 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderWidth, BorderWidthProperty); 288 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderColor, BorderColorProperty); 289 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderStyle, BorderStyleProperty); 290 291 // Transition Options 292 ACE_DEFINE_PROPERTY_GROUP(TransitionAppearing, TransitionOptions); 293 ACE_DEFINE_PROPERTY_GROUP(TransitionDisappearing, TransitionOptions); 294 295 // Position 296 ACE_DEFINE_PROPERTY_GROUP(PositionProperty, RenderPositionProperty); 297 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Position, OffsetT<Dimension>); 298 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Offset, OffsetT<Dimension>); 299 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Anchor, OffsetT<Dimension>); 300 301 // zIndex 302 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ZIndex, int32_t); 303 304 // Clip 305 ACE_DEFINE_PROPERTY_GROUP(Clip, ClipProperty); 306 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipShape, RefPtr<BasicShape>); 307 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipEdge, bool); 308 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipMask, RefPtr<BasicShape>); 309 310 // Gradient 311 ACE_DEFINE_PROPERTY_GROUP(Gradient, GradientProperty); 312 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LinearGradient, NG::Gradient); 313 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, SweepGradient, NG::Gradient); 314 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, RadialGradient, NG::Gradient); 315 316 // Overlay 317 ACE_DEFINE_PROPERTY_GROUP(Overlay, OverlayProperty); 318 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Overlay, OverlayText, OverlayOptions) 319 320 // MotionPath 321 ACE_DEFINE_PROPERTY_GROUP(Motion, MotionPathProperty); 322 ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Motion, MotionPath, MotionPathOption) 323 324 // accessibility 325 ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(AccessibilityFocus, bool); 326 327 protected: 328 RenderContext() = default; 329 std::shared_ptr<SharedTransitionOption> sharedTransitionOption_; 330 ShareId shareId_; 331 OnBackgroundImageUpdate(const ImageSourceInfo & imageSourceInfo)332 virtual void OnBackgroundImageUpdate(const ImageSourceInfo& imageSourceInfo) {} OnBackgroundImageRepeatUpdate(const ImageRepeat & imageRepeat)333 virtual void OnBackgroundImageRepeatUpdate(const ImageRepeat& imageRepeat) {} OnBackgroundImageSizeUpdate(const BackgroundImageSize & bgImgSize)334 virtual void OnBackgroundImageSizeUpdate(const BackgroundImageSize& bgImgSize) {} OnBackgroundImagePositionUpdate(const BackgroundImagePosition & bgImgPosition)335 virtual void OnBackgroundImagePositionUpdate(const BackgroundImagePosition& bgImgPosition) {} 336 OnBorderImageUpdate(const RefPtr<BorderImage> & borderImage)337 virtual void OnBorderImageUpdate(const RefPtr<BorderImage>& borderImage) {} OnBorderImageSourceUpdate(const ImageSourceInfo & borderImageSourceInfo)338 virtual void OnBorderImageSourceUpdate(const ImageSourceInfo& borderImageSourceInfo) {} OnHasBorderImageSliceUpdate(bool tag)339 virtual void OnHasBorderImageSliceUpdate(bool tag) {} OnHasBorderImageWidthUpdate(bool tag)340 virtual void OnHasBorderImageWidthUpdate(bool tag) {} OnHasBorderImageOutsetUpdate(bool tag)341 virtual void OnHasBorderImageOutsetUpdate(bool tag) {} OnHasBorderImageRepeatUpdate(bool tag)342 virtual void OnHasBorderImageRepeatUpdate(bool tag) {} OnBorderImageGradientUpdate(const Gradient & gradient)343 virtual void OnBorderImageGradientUpdate(const Gradient& gradient) {} 344 OnBorderWidthUpdate(const BorderWidthProperty & value)345 virtual void OnBorderWidthUpdate(const BorderWidthProperty& value) {} OnBorderRadiusUpdate(const BorderRadiusProperty & value)346 virtual void OnBorderRadiusUpdate(const BorderRadiusProperty& value) {} OnBorderColorUpdate(const BorderColorProperty & value)347 virtual void OnBorderColorUpdate(const BorderColorProperty& value) {} OnBorderStyleUpdate(const BorderStyleProperty & value)348 virtual void OnBorderStyleUpdate(const BorderStyleProperty& value) {} OnOpacityUpdate(double opacity)349 virtual void OnOpacityUpdate(double opacity) {} 350 OnTransformRotateUpdate(const Vector4F & value)351 virtual void OnTransformRotateUpdate(const Vector4F& value) {} OnTransformMatrixUpdate(const Matrix4 & matrix)352 virtual void OnTransformMatrixUpdate(const Matrix4& matrix) {} 353 OnAnchorUpdate(const OffsetT<Dimension> & value)354 virtual void OnAnchorUpdate(const OffsetT<Dimension>& value) {} 355 OnClipShapeUpdate(const RefPtr<BasicShape> & basicShape)356 virtual void OnClipShapeUpdate(const RefPtr<BasicShape>& basicShape) {} OnClipEdgeUpdate(bool isClip)357 virtual void OnClipEdgeUpdate(bool isClip) {} OnClipMaskUpdate(const RefPtr<BasicShape> & basicShape)358 virtual void OnClipMaskUpdate(const RefPtr<BasicShape>& basicShape) {} 359 OnLinearGradientUpdate(const NG::Gradient & value)360 virtual void OnLinearGradientUpdate(const NG::Gradient& value) {} OnSweepGradientUpdate(const NG::Gradient & value)361 virtual void OnSweepGradientUpdate(const NG::Gradient& value) {} OnRadialGradientUpdate(const NG::Gradient & value)362 virtual void OnRadialGradientUpdate(const NG::Gradient& value) {} 363 OnFrontBrightnessUpdate(const Dimension & value)364 virtual void OnFrontBrightnessUpdate(const Dimension& value) {} OnFrontGrayScaleUpdate(const Dimension & value)365 virtual void OnFrontGrayScaleUpdate(const Dimension& value) {} OnFrontContrastUpdate(const Dimension & value)366 virtual void OnFrontContrastUpdate(const Dimension& value) {} OnFrontSaturateUpdate(const Dimension & value)367 virtual void OnFrontSaturateUpdate(const Dimension& value) {} OnFrontSepiaUpdate(const Dimension & value)368 virtual void OnFrontSepiaUpdate(const Dimension& value) {} OnFrontInvertUpdate(const Dimension & value)369 virtual void OnFrontInvertUpdate(const Dimension& value) {} OnFrontHueRotateUpdate(float value)370 virtual void OnFrontHueRotateUpdate(float value) {} OnFrontColorBlendUpdate(const Color & value)371 virtual void OnFrontColorBlendUpdate(const Color& value) {} OnFrontBlurRadiusUpdate(const Dimension & value)372 virtual void OnFrontBlurRadiusUpdate(const Dimension& value) {} OnBackShadowUpdate(const Shadow & shadow)373 virtual void OnBackShadowUpdate(const Shadow& shadow) {} 374 OnOverlayTextUpdate(const OverlayOptions & overlay)375 virtual void OnOverlayTextUpdate(const OverlayOptions& overlay) {} OnMotionPathUpdate(const MotionPathOption & motionPath)376 virtual void OnMotionPathUpdate(const MotionPathOption& motionPath) {} 377 378 private: 379 std::function<void()> requestFrame_; 380 WeakPtr<FrameNode> host_; 381 bool needDebugBoundary_ = false; 382 383 ACE_DISALLOW_COPY_AND_MOVE(RenderContext); 384 }; 385 } // namespace OHOS::Ace::NG 386 387 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H 388