• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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