• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/properties/color.h"
32 #include "core/components/common/properties/shared_transition_option.h"
33 #include "core/components_ng/base/modifier.h"
34 #include "core/components_ng/pattern/render_node/render_node_properties.h"
35 #include "core/components_ng/property/border_property.h"
36 #include "core/components_ng/property/overlay_property.h"
37 #include "core/components_ng/property/particle_property.h"
38 #include "core/components_ng/property/progress_mask_property.h"
39 #include "core/components_ng/property/property.h"
40 #include "core/components_ng/property/particle_property_animation.h"
41 #include "core/components_ng/property/transition_property.h"
42 #include "core/components_ng/render/animation_utils.h"
43 #include "core/components_ng/render/drawing_forward.h"
44 #include "core/components_ng/render/render_property.h"
45 
46 namespace OHOS::Rosen {
47 class DrawCmdList;
48 enum class Gravity;
49 }
50 
51 namespace OHOS::Ace::NG {
52 class GeometryNode;
53 class RenderPropertyNode;
54 class FrameNode;
55 class Modifier;
56 
57 using CanvasDrawFunction = std::function<void(RSCanvas& canvas)>;
58 
59 inline constexpr int32_t ZINDEX_DEFAULT_VALUE = 0;
60 
61 // RenderContext is used for render node to paint.
62 class RenderContext : public virtual AceType {
63     DECLARE_ACE_TYPE(NG::RenderContext, AceType)
64 
65 public:
66     ~RenderContext() override = default;
67 
68     static RefPtr<RenderContext> Create();
69 
70     void SetRequestFrame(const std::function<void()>& requestFrame);
71     void RequestNextFrame() const;
72 
73     virtual void SetHostNode(const WeakPtr<FrameNode>& host);
74     RefPtr<FrameNode> GetHost() const;
75 
SetNeedDebugBoundary(bool flag)76     virtual void SetNeedDebugBoundary(bool flag) {}
NeedDebugBoundary()77     virtual bool NeedDebugBoundary() const
78     {
79         return false;
80     }
81 
FlushContentDrawFunction(CanvasDrawFunction && contentDraw)82     virtual void FlushContentDrawFunction(CanvasDrawFunction&& contentDraw) {}
83 
FlushForegroundDrawFunction(CanvasDrawFunction && foregroundDraw)84     virtual void FlushForegroundDrawFunction(CanvasDrawFunction&& foregroundDraw) {}
85 
FlushOverlayDrawFunction(CanvasDrawFunction && overlayDraw)86     virtual void FlushOverlayDrawFunction(CanvasDrawFunction&& overlayDraw) {}
87 
FlushContentModifier(const RefPtr<Modifier> & modifier)88     virtual void FlushContentModifier(const RefPtr<Modifier>& modifier) {}
FlushForegroundModifier(const RefPtr<Modifier> & modifier)89     virtual void FlushForegroundModifier(const RefPtr<Modifier>& modifier) {}
FlushOverlayModifier(const RefPtr<Modifier> & modifier)90     virtual void FlushOverlayModifier(const RefPtr<Modifier>& modifier) {}
91 
RebuildFrame(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)92     virtual void RebuildFrame(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {};
93 
AddFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)94     virtual void AddFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {};
95 
RemoveFrameChildren(FrameNode * self,const std::list<RefPtr<FrameNode>> & children)96     virtual void RemoveFrameChildren(FrameNode* self, const std::list<RefPtr<FrameNode>>& children) {};
97 
MoveFrame(FrameNode * self,const RefPtr<FrameNode> & child,int32_t index)98     virtual void MoveFrame(FrameNode* self, const RefPtr<FrameNode>& child, int32_t index) {}
99 
100     virtual void SyncGeometryProperties(GeometryNode* geometryNode, bool isRound = true, uint8_t flag = 0) {}
101 
SyncGeometryProperties(const RectF & rectF)102     virtual void SyncGeometryProperties(const RectF& rectF) {}
103 
SetBorderRadius(const BorderRadiusProperty & value)104     virtual void SetBorderRadius(const BorderRadiusProperty& value) {}
105 
SetBorderStyle(const BorderStyleProperty & value)106     virtual void SetBorderStyle(const BorderStyleProperty& value) {};
107 
SetBorderColor(const BorderColorProperty & value)108     virtual void SetBorderColor(const BorderColorProperty& value) {};
109 
SetBorderWidth(const BorderWidthProperty & value)110     virtual void SetBorderWidth(const BorderWidthProperty& value) {};
111 
SetOuterBorderRadius(const BorderRadiusProperty & value)112     virtual void SetOuterBorderRadius(const BorderRadiusProperty& value) {};
113 
SetOuterBorderStyle(const BorderStyleProperty & value)114     virtual void SetOuterBorderStyle(const BorderStyleProperty& value) {};
115 
SetOuterBorderColor(const BorderColorProperty & value)116     virtual void SetOuterBorderColor(const BorderColorProperty& value) {};
117 
SetOuterBorderWidth(const BorderWidthProperty & value)118     virtual void SetOuterBorderWidth(const BorderWidthProperty& value) {};
119 
120     // draw self and children in sandbox origin at parent's absolute position in root, drawing in sandbox
121     // will be unaffected by parent's transition.
122     virtual void SetSandBox(const std::optional<OffsetF>& parentPosition, bool force = false) {};
123 
HasSandBox()124     virtual bool HasSandBox() const
125     {
126         return false;
127     }
128 
SetFrameWithoutAnimation(const RectF & paintRect)129     virtual void SetFrameWithoutAnimation(const RectF& paintRect) {};
130 
RegisterSharedTransition(const RefPtr<RenderContext> & other)131     virtual void RegisterSharedTransition(const RefPtr<RenderContext>& other) {}
UnregisterSharedTransition(const RefPtr<RenderContext> & other)132     virtual void UnregisterSharedTransition(const RefPtr<RenderContext>& other) {}
133 
OnModifyDone()134     virtual void OnModifyDone() {}
135 
136     enum class ContextType : int8_t { CANVAS, ROOT, SURFACE, EFFECT, EXTERNAL, INCREMENTAL_CANVAS, HARDWARE_SURFACE };
137     enum class PatternType : int8_t { DEFAULT, VIDEO };
138     struct ContextParam {
139         ContextType type;
140         std::optional<std::string> surfaceName;
141         PatternType patternType = PatternType::DEFAULT;
142     };
InitContext(bool isRoot,const std::optional<ContextParam> & param)143     virtual void InitContext(bool isRoot, const std::optional<ContextParam>& param) {}
144 
SetSurfaceChangedCallBack(const std::function<void (float,float,float,float)> & callback)145     virtual void SetSurfaceChangedCallBack(
146         const std::function<void(float, float, float, float)>& callback) {}
RemoveSurfaceChangedCallBack()147     virtual void RemoveSurfaceChangedCallBack() {}
148 
MarkNewFrameAvailable(void * nativeWindow)149     virtual void MarkNewFrameAvailable(void* nativeWindow) {}
AddAttachCallBack(const std::function<void (int64_t,bool)> & attachCallback)150     virtual void AddAttachCallBack(const std::function<void(int64_t, bool)>& attachCallback) {}
AddUpdateCallBack(const std::function<void (std::vector<float> &)> & updateCallback)151     virtual void AddUpdateCallBack(const std::function<void(std::vector<float>&)>& updateCallback) {}
152 
StartRecording()153     virtual void StartRecording() {}
StopRecordingIfNeeded()154     virtual void StopRecordingIfNeeded() {}
155 
SetDrawContentAtLast(bool useDrawContentLastOrder)156     virtual void SetDrawContentAtLast(bool useDrawContentLastOrder) {}
157 
ResetBlendBgColor()158     virtual void ResetBlendBgColor() {}
159 
BlendBgColor(const Color & color)160     virtual void BlendBgColor(const Color& color) {}
161 
ResetBlendBorderColor()162     virtual void ResetBlendBorderColor() {}
163 
BlendBorderColor(const Color & color)164     virtual void BlendBorderColor(const Color& color) {}
165 
166     // Paint focus state by component's setting. It will paint along the paintRect
167     virtual void PaintFocusState(const RoundRect& paintRect, const Color& paintColor, const Dimension& paintWidth,
168         bool isAccessibilityFocus = false)
169     {}
170     // Paint focus state by component's setting. It will paint along the frameRect(padding: focusPaddingVp)
171     virtual void PaintFocusState(const RoundRect& paintRect, const Dimension& focusPaddingVp, const Color& paintColor,
172         const Dimension& paintWidth, bool isAccessibilityFocus = false)
173     {}
174     // Paint focus state by default. It will paint along the component rect(padding: focusPaddingVp)
PaintFocusState(const Dimension & focusPaddingVp,const Color & paintColor,const Dimension & paintWidth)175     virtual void PaintFocusState(const Dimension& focusPaddingVp, const Color& paintColor, const Dimension& paintWidth)
176     {}
177 
ClearFocusState()178     virtual void ClearFocusState() {}
179 
CreateBackgroundPixelMap(const RefPtr<FrameNode> & value)180     virtual void CreateBackgroundPixelMap(const RefPtr<FrameNode>& value) {}
181 
UpdateBorderWidthF(const BorderWidthPropertyF & value)182     virtual void UpdateBorderWidthF(const BorderWidthPropertyF& value) {}
183 
184     // clip node without padding
SetClipToFrame(bool useClip)185     virtual void SetClipToFrame(bool useClip) {}
186 
187     // clip node with padding
SetClipToBounds(bool useClip)188     virtual void SetClipToBounds(bool useClip) {}
SetClipBoundsWithCommands(const std::string & commands)189     virtual void SetClipBoundsWithCommands(const std::string& commands) {};
SetVisible(bool visible)190     virtual void SetVisible(bool visible) {}
191 
MarkContentChanged(bool isChanged)192     virtual void MarkContentChanged(bool isChanged) {}
MarkDrivenRender(bool flag)193     virtual void MarkDrivenRender(bool flag) {}
MarkDrivenRenderItemIndex(int32_t index)194     virtual void MarkDrivenRenderItemIndex(int32_t index) {}
MarkDrivenRenderFramePaintState(bool flag)195     virtual void MarkDrivenRenderFramePaintState(bool flag) {}
196 
AnimateHoverEffectScale(bool isHovered)197     virtual void AnimateHoverEffectScale(bool isHovered) {}
AnimateHoverEffectBoard(bool isHovered)198     virtual void AnimateHoverEffectBoard(bool isHovered) {}
199 
UpdateTransition(const TransitionOptions & options)200     virtual void UpdateTransition(const TransitionOptions& options) {}
UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect> & effect)201     virtual void UpdateChainedTransition(const RefPtr<NG::ChainedTransitionEffect>& effect) {}
GetOneCenterTransitionOption()202     const RefPtr<OneCenterTransitionOptionType>& GetOneCenterTransitionOption()
203     {
204         return oneCenterTransition_;
205     }
UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType> & value)206     void UpdateOneCenterTransitionOption(const RefPtr<OneCenterTransitionOptionType>& value)
207     {
208         oneCenterTransition_ = value;
209     }
OnNodeDisappear(bool recursive)210     virtual void OnNodeDisappear(bool recursive) {}
OnNodeAppear(bool recursive)211     virtual void OnNodeAppear(bool recursive) {}
HasTransitionOutAnimation()212     virtual bool HasTransitionOutAnimation() const
213     {
214         return false;
215     }
216 
HasDisappearTransition()217     virtual bool HasDisappearTransition() const
218     {
219         return false;
220     }
221 
IsSynced()222     virtual bool IsSynced() const
223     {
224         return isSynced_;
225     }
226 
TriggerPageTransition(PageTransitionType type,const std::function<void ()> & onFinish)227     virtual bool TriggerPageTransition(PageTransitionType type, const std::function<void()>& onFinish)
228     {
229         return false;
230     }
231 
SetSharedTranslate(float xTranslate,float yTranslate)232     virtual void SetSharedTranslate(float xTranslate, float yTranslate) {}
ResetSharedTranslate()233     virtual void ResetSharedTranslate() {}
ResetPageTransitionEffect()234     virtual void ResetPageTransitionEffect() {}
235 
AddChild(const RefPtr<RenderContext> & renderContext,int index)236     virtual void AddChild(const RefPtr<RenderContext>& renderContext, int index) {}
RemoveChild(const RefPtr<RenderContext> & renderContext)237     virtual void RemoveChild(const RefPtr<RenderContext>& renderContext) {}
ClearChildren()238     virtual void ClearChildren() {}
SetBounds(float positionX,float positionY,float width,float height)239     virtual void SetBounds(float positionX, float positionY, float width, float height) {}
SetContentRectToFrame(RectF rect)240     virtual void SetContentRectToFrame(RectF rect) {}
241 
UpdateBackBlurRadius(const Dimension & radius)242     virtual void UpdateBackBlurRadius(const Dimension& radius) {}
UpdateBackBlurStyle(const std::optional<BlurStyleOption> & bgBlurStyle)243     virtual void UpdateBackBlurStyle(const std::optional<BlurStyleOption>& bgBlurStyle) {}
UpdateBackgroundEffect(const std::optional<EffectOption> & effectOption)244     virtual void UpdateBackgroundEffect(const std::optional<EffectOption>& effectOption) {}
UpdateBackBlur(const Dimension & radius,const BlurOption & blurOption)245     virtual void UpdateBackBlur(const Dimension& radius, const BlurOption& blurOption) {}
UpdateFrontBlur(const Dimension & radius,const BlurOption & blurOption)246     virtual void UpdateFrontBlur(const Dimension& radius, const BlurOption& blurOption) {}
UpdateFrontBlurStyle(const std::optional<BlurStyleOption> & fgBlurStyle)247     virtual void UpdateFrontBlurStyle(const std::optional<BlurStyleOption>& fgBlurStyle) {}
UpdateFrontBlurRadius(const Dimension & radius)248     virtual void UpdateFrontBlurRadius(const Dimension& radius) {}
ResetBackBlurStyle()249     virtual void ResetBackBlurStyle() {}
ClipWithRect(const RectF & rectF)250     virtual void ClipWithRect(const RectF& rectF) {}
ClipWithRRect(const RectF & rectF,const RadiusF & radiusF)251     virtual void ClipWithRRect(const RectF& rectF, const RadiusF& radiusF) {}
252 
OpacityAnimation(const AnimationOption & option,double begin,double end)253     virtual void OpacityAnimation(const AnimationOption& option, double begin, double end) {}
ScaleAnimation(const AnimationOption & option,double begin,double end)254     virtual void ScaleAnimation(const AnimationOption& option, double begin, double end) {}
255 
OnTransformTranslateUpdate(const TranslateOptions & value)256     virtual void OnTransformTranslateUpdate(const TranslateOptions& value) {}
OnTransformScaleUpdate(const VectorF & value)257     virtual void OnTransformScaleUpdate(const VectorF& value) {}
OnTransformCenterUpdate(const DimensionOffset & value)258     virtual void OnTransformCenterUpdate(const DimensionOffset& value) {}
OnOffsetUpdate(const OffsetT<Dimension> & value)259     virtual void OnOffsetUpdate(const OffsetT<Dimension>& value) {}
260 
261     // used in arkts_native_render_node_modifier set property directly to rsNode
SetRotation(float rotationX,float rotationY,float rotationZ)262     virtual void SetRotation(float rotationX, float rotationY, float rotationZ) {}
SetShadowColor(uint32_t color)263     virtual void SetShadowColor(uint32_t color) {}
SetShadowOffset(float offsetX,float offsetY)264     virtual void SetShadowOffset(float offsetX, float offsetY) {}
SetShadowAlpha(float alpha)265     virtual void SetShadowAlpha(float alpha) {}
SetShadowElevation(float elevation)266     virtual void SetShadowElevation(float elevation) {}
SetShadowRadius(float radius)267     virtual void SetShadowRadius(float radius) {}
SetScale(float scaleX,float scaleY)268     virtual void SetScale(float scaleX, float scaleY) {}
SetBackgroundColor(uint32_t colorValue)269     virtual void SetBackgroundColor(uint32_t colorValue) {}
SetRenderPivot(float pivotX,float pivotY)270     virtual void SetRenderPivot(float pivotX, float pivotY) {}
SetFrame(float positionX,float positionY,float width,float height)271     virtual void SetFrame(float positionX, float positionY, float width, float height) {}
SetOpacity(float opacity)272     virtual void SetOpacity(float opacity) {}
SetTranslate(float translateX,float translateY,float translateZ)273     virtual void SetTranslate(float translateX, float translateY, float translateZ) {}
274 
SetRectMask(const RectF & rect,const ShapeMaskProperty & property)275     virtual void SetRectMask(const RectF& rect, const ShapeMaskProperty& property) {}
SetCircleMask(const Circle & circle,const ShapeMaskProperty & property)276     virtual void SetCircleMask(const Circle& circle, const ShapeMaskProperty& property) {}
SetRoundRectMask(const RoundRect & roundRect,const ShapeMaskProperty & property)277     virtual void SetRoundRectMask(const RoundRect& roundRect, const ShapeMaskProperty& property) {}
SetOvalMask(const RectF & rect,const ShapeMaskProperty & property)278     virtual void SetOvalMask(const RectF& rect, const ShapeMaskProperty& property) {}
SetCommandPathMask(const std::string & commands,const ShapeMaskProperty & property)279     virtual void SetCommandPathMask(const std::string& commands, const ShapeMaskProperty& property) {}
280 
GetPaintRectWithTransform()281     virtual RectF GetPaintRectWithTransform()
282     {
283         return {};
284     }
285 
286     virtual void SavePaintRect(bool isRound = true, uint8_t flag = 0) {}
SyncPartialRsProperties()287     virtual void SyncPartialRsProperties() {}
288 
GetPaintRectWithTranslate()289     virtual std::pair<RectF, bool> GetPaintRectWithTranslate()
290     {
291         return {};
292     }
293 
GetLocalTransformMatrix()294     virtual Matrix4 GetLocalTransformMatrix()
295     {
296         return Matrix4();
297     }
298 
GetPointWithRevert(PointF & point)299     virtual void GetPointWithRevert(PointF& point) {}
300 
GetPointWithTransform(PointF & point)301     virtual void GetPointWithTransform(PointF& point) {}
302 
GetPointTransform(PointF & point)303     virtual void GetPointTransform(PointF& point) {}
304 
GetPaintRectWithoutTransform()305     virtual RectF GetPaintRectWithoutTransform()
306     {
307         return {};
308     }
309 
310     // get position property
GetPropertyOfPosition()311     virtual RectF GetPropertyOfPosition()
312     {
313         return {};
314     }
315 
316     // stop the property animation and get the current paint rect.
GetShowingTranslateProperty()317     virtual OffsetF GetShowingTranslateProperty()
318     {
319         return OffsetF();
320     }
321 
CancelTranslateXYAnimation()322     virtual void CancelTranslateXYAnimation() {}
323 
GetTranslateXYProperty()324     virtual OffsetF GetTranslateXYProperty()
325     {
326         return OffsetF();
327     }
328 
329     // update translateXY in backend.
UpdateTranslateInXY(const OffsetF & offset)330     virtual void UpdateTranslateInXY(const OffsetF& offset) {}
331 
SetTransitionOutCallback(std::function<void ()> && callback)332     virtual void SetTransitionOutCallback(std::function<void()>&& callback) {}
333 
334     virtual void ToJsonValue(std::unique_ptr<JsonValue>& json) const;
335 
336     virtual void FromJson(const std::unique_ptr<JsonValue>& json);
337 
ClearDrawCommands()338     virtual void ClearDrawCommands() {}
339 
DumpInfo()340     virtual void DumpInfo() {}
341 
DumpAdvanceInfo()342     virtual void DumpAdvanceInfo() {}
343 
344     void ObscuredToJsonValue(std::unique_ptr<JsonValue>& json) const;
345 
346     void SetSharedTransitionOptions(const std::shared_ptr<SharedTransitionOption>& option);
347     const std::shared_ptr<SharedTransitionOption>& GetSharedTransitionOption() const;
348     void SetShareId(const ShareId& shareId);
349     const ShareId& GetShareId() const;
350     bool HasSharedTransition() const;
351     bool HasSharedTransitionOption() const;
352 
SetIsModalRootNode(bool isModalRootNode)353     void SetIsModalRootNode(bool isModalRootNode)
354     {
355         isModalRootNode_ = isModalRootNode;
356     }
357 
SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree)358     void SetIsNeedRebuildRSTree(bool isNeedRebuildRSTree)
359     {
360         isNeedRebuildRSTree_ = isNeedRebuildRSTree;
361     }
362 
GetBackBlurStyle()363     std::optional<BlurStyleOption> GetBackBlurStyle() const
364     {
365         return GetBackground() ? GetBackground()->propBlurStyleOption : std::nullopt;
366     }
GetBackBlurRadius()367     std::optional<Dimension> GetBackBlurRadius() const
368     {
369         return GetBackground() ? GetBackground()->propBlurRadius : std::nullopt;
370     }
GetBackgroundEffect()371     std::optional<EffectOption> GetBackgroundEffect() const
372     {
373         return GetBackground() ? GetBackground()->propEffectOption : std::nullopt;
374     }
GetFrontBlurStyle()375     std::optional<BlurStyleOption> GetFrontBlurStyle() const
376     {
377         return GetForeground() ? GetForeground()->propBlurStyleOption : std::nullopt;
378     }
GetFrontBlurRadius()379     std::optional<Dimension> GetFrontBlurRadius() const
380     {
381         return GetForeground() ? GetForeground()->propBlurRadius : std::nullopt;
382     }
383 
AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier)384     virtual void AttachNodeAnimatableProperty(RefPtr<NodeAnimatablePropertyBase> modifier) {};
385 
DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase> & modifier)386     virtual void DetachNodeAnimatableProperty(const RefPtr<NodeAnimatablePropertyBase>& modifier) {};
387 
PaintAccessibilityFocus()388     virtual void PaintAccessibilityFocus() {};
389 
ClearAccessibilityFocus()390     virtual void ClearAccessibilityFocus() {};
391 
OnAccessibilityFocusUpdate(bool isAccessibilityFocus)392     virtual void OnAccessibilityFocusUpdate(bool isAccessibilityFocus) {};
393 
OnMouseSelectUpdate(bool isSelected,const Color & fillColor,const Color & strokeColor)394     virtual void OnMouseSelectUpdate(bool isSelected, const Color& fillColor, const Color& strokeColor) {}
UpdateMouseSelectWithRect(const RectF & rect,const Color & fillColor,const Color & strokeColor)395     virtual void UpdateMouseSelectWithRect(const RectF& rect, const Color& fillColor, const Color& strokeColor) {}
396 
OnPositionUpdate(const OffsetT<Dimension> & value)397     virtual void OnPositionUpdate(const OffsetT<Dimension>& value) {}
OnZIndexUpdate(int32_t value)398     virtual void OnZIndexUpdate(int32_t value) {}
399 
OnBackgroundColorUpdate(const Color & value)400     virtual void OnBackgroundColorUpdate(const Color& value) {}
OnOpacityUpdate(double opacity)401     virtual void OnOpacityUpdate(double opacity) {}
SetAlphaOffscreen(bool isOffScreen)402     virtual void SetAlphaOffscreen(bool isOffScreen) {}
OnSphericalEffectUpdate(double radio)403     virtual void OnSphericalEffectUpdate(double radio) {}
OnPixelStretchEffectUpdate(const PixStretchEffectOption & option)404     virtual void OnPixelStretchEffectUpdate(const PixStretchEffectOption& option) {}
OnLightUpEffectUpdate(double radio)405     virtual void OnLightUpEffectUpdate(double radio) {}
OnClickEffectLevelUpdate(const ClickEffectInfo & info)406     virtual void OnClickEffectLevelUpdate(const ClickEffectInfo& info) {}
OnRenderGroupUpdate(bool isRenderGroup)407     virtual void OnRenderGroupUpdate(bool isRenderGroup) {}
OnSuggestedRenderGroupUpdate(bool isRenderGroup)408     virtual void OnSuggestedRenderGroupUpdate(bool isRenderGroup) {}
OnRenderFitUpdate(RenderFit renderFit)409     virtual void OnRenderFitUpdate(RenderFit renderFit) {}
OnParticleOptionArrayUpdate(const std::list<ParticleOption> & optionArray)410     virtual void OnParticleOptionArrayUpdate(const std::list<ParticleOption>& optionArray) {}
411     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SphericalEffect, double);
412     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PixelStretchEffect, PixStretchEffectOption);
413     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(LightUpEffect, double);
414     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ParticleOptionArray, std::list<ParticleOption>);
415     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ClickEffectLevel, ClickEffectInfo);
416     virtual RefPtr<PixelMap> GetThumbnailPixelMap(bool needScale = false)
417     {
418         return nullptr;
419     }
UpdateThumbnailPixelMapScale(float & scaleX,float & scaleY)420     virtual void UpdateThumbnailPixelMapScale(float& scaleX, float& scaleY) {}
421 
SetActualForegroundColor(const Color & value)422     virtual void SetActualForegroundColor(const Color& value) {}
423 
ResetSurface()424     virtual void ResetSurface() {}
425     // transform matrix
426     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(TransformMatrix, Matrix4);
427 
428     // Transform
429     ACE_DEFINE_PROPERTY_GROUP(Transform, TransformProperty);
430     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformScale, VectorF);
431     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformCenter, DimensionOffset);
432     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformTranslate, TranslateOptions);
433     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Transform, TransformRotate, Vector5F);
434 
435     // Foreground
436     ACE_DEFINE_PROPERTY_GROUP(Foreground, ForegroundProperty);
437 
438     // Background
439     ACE_DEFINE_PROPERTY_GROUP(Background, BackgroundProperty);
440     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImage, ImageSourceInfo);
441     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageRepeat, ImageRepeat);
442     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImageSize, BackgroundImageSize);
443     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Background, BackgroundImagePosition, BackgroundImagePosition);
444 
445     // BorderImage
446     ACE_DEFINE_PROPERTY_GROUP(BdImage, BorderImageProperty);
447     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImage, RefPtr<BorderImage>);
448     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageSource, ImageSourceInfo);
449     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageSlice, bool);
450     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageWidth, bool);
451     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageOutset, bool);
452     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, HasBorderImageRepeat, bool);
453     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(BdImage, BorderImageGradient, Gradient);
454 
455     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(BackgroundColor, Color);
456     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Opacity, double);
457     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderGroup, bool);
458     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(SuggestedRenderGroup, bool);
459     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColor, Color);
460     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ForegroundColorStrategy, ForegroundColorStrategy);
461     ACE_DEFINE_PROPERTY_GROUP_ITEM(ForegroundColorFlag, bool);
462 
463     // CustomBackground
464     ACE_DEFINE_PROPERTY_GROUP(CustomBackground, CustomBackgroundProperty);
465     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundPixelMap, RefPtr<PixelMap>);
466     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(CustomBackground, BackgroundAlign, Alignment);
467 
468     // Graphics
469     ACE_DEFINE_PROPERTY_GROUP(Graphics, GraphicsProperty);
470     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontBrightness, Dimension);
471     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontGrayScale, Dimension);
472     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontContrast, Dimension);
473     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSaturate, Dimension);
474     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontSepia, Dimension);
475     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontInvert, InvertVariant);
476     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, SystemBarEffect, bool);
477     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontHueRotate, float);
478     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, FrontColorBlend, Color);
479     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, LinearGradientBlur, NG::LinearGradientBlurPara);
480     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpRate, float);
481     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, DynamicLightUpDegree, float);
482     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackShadow, Shadow);
483     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendMode, BlendMode);
484     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Graphics, BackBlendApplyType, BlendApplyType);
485 
486     // BorderRadius.
487     ACE_DEFINE_PROPERTY_GROUP(Border, BorderProperty);
488     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderRadius, BorderRadiusProperty);
489     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderWidth, BorderWidthProperty);
490     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderColor, BorderColorProperty);
491     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Border, BorderStyle, BorderStyleProperty);
492 
493     // Outer Border
494     ACE_DEFINE_PROPERTY_GROUP(OuterBorder, OuterBorderProperty);
495     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderRadius, BorderRadiusProperty);
496     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderWidth, BorderWidthProperty);
497     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderColor, BorderColorProperty);
498     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(OuterBorder, OuterBorderStyle, BorderStyleProperty);
499 
500     // PointLight
501     ACE_DEFINE_PROPERTY_GROUP(PointLight, PointLightProperty);
502     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightPosition, TranslateOptions);
503     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIntensity, float);
504     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, LightIlluminated, uint32_t);
505     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, IlluminatedBorderWidth, Dimension);
506     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PointLight, Bloom, float);
507 
508     // Transition Options
509     ACE_DEFINE_PROPERTY_GROUP(TransitionAppearing, TransitionOptions);
510     ACE_DEFINE_PROPERTY_GROUP(TransitionDisappearing, TransitionOptions);
511 
512     // Position
513     ACE_DEFINE_PROPERTY_GROUP(PositionProperty, RenderPositionProperty);
514     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Position, OffsetT<Dimension>);
515     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Offset, OffsetT<Dimension>);
516     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(PositionProperty, Anchor, OffsetT<Dimension>);
517 
518     // zIndex
519     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ZIndex, int32_t);
520 
521     // Clip
522     ACE_DEFINE_PROPERTY_GROUP(Clip, ClipProperty);
523     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipShape, RefPtr<BasicShape>);
524     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipEdge, bool);
525     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Clip, ClipMask, RefPtr<BasicShape>);
526 
527     // ProgressMask
528     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ProgressMask, RefPtr<ProgressMaskProperty>);
529 
530     // Gradient
531     ACE_DEFINE_PROPERTY_GROUP(Gradient, GradientProperty);
532     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, LinearGradient, NG::Gradient);
533     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, SweepGradient, NG::Gradient);
534     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Gradient, RadialGradient, NG::Gradient);
535 
536     // Overlay
537     ACE_DEFINE_PROPERTY_GROUP(Overlay, OverlayProperty);
538     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Overlay, OverlayText, OverlayOptions)
539 
540     // MotionPath
541     ACE_DEFINE_PROPERTY_GROUP(Motion, MotionPathProperty);
542     ACE_DEFINE_PROPERTY_FUNC_WITH_GROUP(Motion, MotionPath, MotionPathOption)
543 
544     // accessibility
545     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(AccessibilityFocus, bool);
546 
547     // useEffect
548     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseEffect, bool);
549 
550     // useShadowBatching
551     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(UseShadowBatching, bool);
552 
553     // freeze
554     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Freeze, bool);
555 
556     // obscured
557     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(Obscured, std::vector<ObscuredReasons>);
558 
559     // renderFit
560     ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(RenderFit, RenderFit);
561 
SetUsingContentRectForRenderFrame(bool value)562     virtual void SetUsingContentRectForRenderFrame(bool value) {}
GetTrans()563     virtual std::vector<double> GetTrans()
564     {
565         return std::vector<double>();
566     }
SetFrameGravity(OHOS::Rosen::Gravity gravity)567     virtual void SetFrameGravity(OHOS::Rosen::Gravity gravity) {}
568 
CalcExpectedFrameRate(const std::string & scene,float speed)569     virtual int32_t CalcExpectedFrameRate(const std::string& scene, float speed)
570     {
571         return 0;
572     }
573 
IsUniRenderEnabled()574     virtual bool IsUniRenderEnabled()
575     {
576         return true;
577     }
SetRenderFrameOffset(const OffsetF & offset)578     virtual void SetRenderFrameOffset(const OffsetF& offset) {}
579 
DoTextureExport(uint64_t)580     virtual bool DoTextureExport(uint64_t /* surfaceId */)
581     {
582         return false;
583     }
584 
StopTextureExport()585     virtual bool StopTextureExport()
586     {
587         return false;
588     }
589 
590 protected:
591     RenderContext() = default;
592     std::shared_ptr<SharedTransitionOption> sharedTransitionOption_;
593     ShareId shareId_;
594     bool isModalRootNode_ = false;
595     bool isSynced_ = false;
596     bool isNeedRebuildRSTree_ = true;
597 
OnBackgroundImageUpdate(const ImageSourceInfo & imageSourceInfo)598     virtual void OnBackgroundImageUpdate(const ImageSourceInfo& imageSourceInfo) {}
OnBackgroundImageRepeatUpdate(const ImageRepeat & imageRepeat)599     virtual void OnBackgroundImageRepeatUpdate(const ImageRepeat& imageRepeat) {}
OnBackgroundImageSizeUpdate(const BackgroundImageSize & bgImgSize)600     virtual void OnBackgroundImageSizeUpdate(const BackgroundImageSize& bgImgSize) {}
OnBackgroundImagePositionUpdate(const BackgroundImagePosition & bgImgPosition)601     virtual void OnBackgroundImagePositionUpdate(const BackgroundImagePosition& bgImgPosition) {}
602 
OnForegroundColorUpdate(const Color & value)603     virtual void OnForegroundColorUpdate(const Color& value) {}
OnForegroundColorStrategyUpdate(const ForegroundColorStrategy & value)604     virtual void OnForegroundColorStrategyUpdate(const ForegroundColorStrategy& value) {}
605 
OnBackgroundPixelMapUpdate(const RefPtr<PixelMap> & value)606     virtual void OnBackgroundPixelMapUpdate(const RefPtr<PixelMap>& value) {}
OnBackgroundAlignUpdate(const Alignment & align)607     virtual void OnBackgroundAlignUpdate(const Alignment& align) {}
608 
OnBorderImageUpdate(const RefPtr<BorderImage> & borderImage)609     virtual void OnBorderImageUpdate(const RefPtr<BorderImage>& borderImage) {}
OnBorderImageSourceUpdate(const ImageSourceInfo & borderImageSourceInfo)610     virtual void OnBorderImageSourceUpdate(const ImageSourceInfo& borderImageSourceInfo) {}
OnHasBorderImageSliceUpdate(bool tag)611     virtual void OnHasBorderImageSliceUpdate(bool tag) {}
OnHasBorderImageWidthUpdate(bool tag)612     virtual void OnHasBorderImageWidthUpdate(bool tag) {}
OnHasBorderImageOutsetUpdate(bool tag)613     virtual void OnHasBorderImageOutsetUpdate(bool tag) {}
OnHasBorderImageRepeatUpdate(bool tag)614     virtual void OnHasBorderImageRepeatUpdate(bool tag) {}
OnBorderImageGradientUpdate(const Gradient & gradient)615     virtual void OnBorderImageGradientUpdate(const Gradient& gradient) {}
616 
OnBorderWidthUpdate(const BorderWidthProperty & value)617     virtual void OnBorderWidthUpdate(const BorderWidthProperty& value) {}
OnBorderRadiusUpdate(const BorderRadiusProperty & value)618     virtual void OnBorderRadiusUpdate(const BorderRadiusProperty& value) {}
OnBorderColorUpdate(const BorderColorProperty & value)619     virtual void OnBorderColorUpdate(const BorderColorProperty& value) {}
OnBorderStyleUpdate(const BorderStyleProperty & value)620     virtual void OnBorderStyleUpdate(const BorderStyleProperty& value) {}
621 
OnOuterBorderWidthUpdate(const BorderWidthProperty & value)622     virtual void OnOuterBorderWidthUpdate(const BorderWidthProperty& value) {}
OnOuterBorderRadiusUpdate(const BorderRadiusProperty & value)623     virtual void OnOuterBorderRadiusUpdate(const BorderRadiusProperty& value) {}
OnOuterBorderColorUpdate(const BorderColorProperty & value)624     virtual void OnOuterBorderColorUpdate(const BorderColorProperty& value) {}
OnOuterBorderStyleUpdate(const BorderStyleProperty & value)625     virtual void OnOuterBorderStyleUpdate(const BorderStyleProperty& value) {}
626 
OnLightPositionUpdate(const TranslateOptions & value)627     virtual void OnLightPositionUpdate(const TranslateOptions& value) {}
OnLightIntensityUpdate(const float value)628     virtual void OnLightIntensityUpdate(const float value) {}
OnLightIlluminatedUpdate(const uint32_t value)629     virtual void OnLightIlluminatedUpdate(const uint32_t value) {}
OnIlluminatedBorderWidthUpdate(const Dimension & value)630     virtual void OnIlluminatedBorderWidthUpdate(const Dimension& value) {}
OnBloomUpdate(const float value)631     virtual void OnBloomUpdate(const float value) {}
632 
OnTransformRotateUpdate(const Vector5F & value)633     virtual void OnTransformRotateUpdate(const Vector5F& value) {}
OnTransformMatrixUpdate(const Matrix4 & matrix)634     virtual void OnTransformMatrixUpdate(const Matrix4& matrix) {}
635 
OnAnchorUpdate(const OffsetT<Dimension> & value)636     virtual void OnAnchorUpdate(const OffsetT<Dimension>& value) {}
637 
OnClipShapeUpdate(const RefPtr<BasicShape> & basicShape)638     virtual void OnClipShapeUpdate(const RefPtr<BasicShape>& basicShape) {}
OnClipEdgeUpdate(bool isClip)639     virtual void OnClipEdgeUpdate(bool isClip) {}
OnClipMaskUpdate(const RefPtr<BasicShape> & basicShape)640     virtual void OnClipMaskUpdate(const RefPtr<BasicShape>& basicShape) {}
641 
OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty> & progress)642     virtual void OnProgressMaskUpdate(const RefPtr<ProgressMaskProperty>& progress) {}
643 
OnLinearGradientUpdate(const NG::Gradient & value)644     virtual void OnLinearGradientUpdate(const NG::Gradient& value) {}
OnSweepGradientUpdate(const NG::Gradient & value)645     virtual void OnSweepGradientUpdate(const NG::Gradient& value) {}
OnRadialGradientUpdate(const NG::Gradient & value)646     virtual void OnRadialGradientUpdate(const NG::Gradient& value) {}
647 
OnFrontBrightnessUpdate(const Dimension & value)648     virtual void OnFrontBrightnessUpdate(const Dimension& value) {}
OnFrontGrayScaleUpdate(const Dimension & value)649     virtual void OnFrontGrayScaleUpdate(const Dimension& value) {}
OnFrontContrastUpdate(const Dimension & value)650     virtual void OnFrontContrastUpdate(const Dimension& value) {}
OnFrontSaturateUpdate(const Dimension & value)651     virtual void OnFrontSaturateUpdate(const Dimension& value) {}
OnFrontSepiaUpdate(const Dimension & value)652     virtual void OnFrontSepiaUpdate(const Dimension& value) {}
OnFrontInvertUpdate(const InvertVariant & value)653     virtual void OnFrontInvertUpdate(const InvertVariant& value) {}
OnSystemBarEffectUpdate(bool systemBarEffect)654     virtual void OnSystemBarEffectUpdate(bool systemBarEffect) {}
OnFrontHueRotateUpdate(float value)655     virtual void OnFrontHueRotateUpdate(float value) {}
OnFrontColorBlendUpdate(const Color & value)656     virtual void OnFrontColorBlendUpdate(const Color& value) {}
OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara & blurPara)657     virtual void OnLinearGradientBlurUpdate(const NG::LinearGradientBlurPara& blurPara) {}
OnDynamicLightUpRateUpdate(const float rate)658     virtual void OnDynamicLightUpRateUpdate(const float rate) {}
OnDynamicLightUpDegreeUpdate(const float degree)659     virtual void OnDynamicLightUpDegreeUpdate(const float degree) {}
OnBackShadowUpdate(const Shadow & shadow)660     virtual void OnBackShadowUpdate(const Shadow& shadow) {}
OnBackBlendModeUpdate(BlendMode blendMode)661     virtual void OnBackBlendModeUpdate(BlendMode blendMode) {}
OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType)662     virtual void OnBackBlendApplyTypeUpdate(BlendApplyType blendApplyType) {}
663 
OnOverlayTextUpdate(const OverlayOptions & overlay)664     virtual void OnOverlayTextUpdate(const OverlayOptions& overlay) {}
OnMotionPathUpdate(const MotionPathOption & motionPath)665     virtual void OnMotionPathUpdate(const MotionPathOption& motionPath) {}
OnUseEffectUpdate(bool useEffect)666     virtual void OnUseEffectUpdate(bool useEffect) {}
OnUseShadowBatchingUpdate(bool useShadowBatching)667     virtual void OnUseShadowBatchingUpdate(bool useShadowBatching) {}
OnFreezeUpdate(bool isFreezed)668     virtual void OnFreezeUpdate(bool isFreezed) {}
OnObscuredUpdate(const std::vector<ObscuredReasons> & reasons)669     virtual void OnObscuredUpdate(const std::vector<ObscuredReasons>& reasons) {}
670 
671 private:
672     friend class ViewAbstract;
673     std::function<void()> requestFrame_;
674     WeakPtr<FrameNode> host_;
675     RefPtr<OneCenterTransitionOptionType> oneCenterTransition_;
676     ACE_DISALLOW_COPY_AND_MOVE(RenderContext);
677 };
678 } // namespace OHOS::Ace::NG
679 
680 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PAINTS_RENDER_CONTEXT_H
681