1 /* 2 * Copyright (c) 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_PATTERN_CANVAS_RENDERER_CANVAS_RENDERER_MODEL_NG_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_CANVAS_RENDERER_CANVAS_RENDERER_MODEL_NG_H 18 19 #include "core/components_ng/pattern/canvas_renderer/canvas_renderer_model.h" 20 #include "frameworks/base/utils/macros.h" 21 22 namespace OHOS::Ace::NG { 23 class ACE_EXPORT CanvasRendererModelNG : public OHOS::Ace::CanvasRendererModel { 24 public: 25 void SetFillText(const BaseInfo& baseInfo, const FillTextInfo& fillTextInfo) override; 26 void SetStrokeText(const BaseInfo& baseInfo, const FillTextInfo& fillTextInfo) override; 27 void SetAntiAlias(const BaseInfo& baseInfo) override; 28 void SetFontWeight(const BaseInfo& baseInfo, const FontWeight& weight) override; 29 void SetFontStyle(const BaseInfo& baseInfo, const FontStyle& fontStyle) override; 30 void SetFontFamilies(const BaseInfo& baseInfo, const std::vector<std::string>& families) override; 31 void SetFontSize(const BaseInfo& baseInfo, const Dimension& size) override; 32 std::vector<double> GetLineDash(const BaseInfo& baseInfo) override; 33 void SetFillGradient(const BaseInfo& baseInfo, const Ace::Gradient& gradient) override; 34 void SetFillPattern(const BaseInfo& baseInfo, const std::shared_ptr<Ace::Pattern>& pattern) override; 35 void SetFillColor(const BaseInfo& baseInfo, const Color& color, bool colorFlag) override; 36 void SetStrokeGradient(const BaseInfo& baseInfo, const Ace::Gradient& gradient) override; 37 void SetStrokePattern(const BaseInfo& baseInfo, const std::shared_ptr<Ace::Pattern>& pattern) override; 38 void SetStrokeColor(const BaseInfo& baseInfo, const Color& color, bool colorFlag) override; 39 void DrawImage(const BaseInfo& baseInfo, const ImageInfo& imageInfo) override; 40 void PutImageData(const BaseInfo& baseInfo, const ImageData& imageData) override; 41 void CloseImageBitmap(const BaseInfo& baseInfo, const std::string& src) override; 42 std::unique_ptr<ImageData> GetImageData(const BaseInfo& baseInfo, const ImageSize& imageSize) override; 43 void DrawPixelMap(const BaseInfo& baseInfo, const ImageInfo& imageInfo) override; 44 void SetFilterParam(const BaseInfo& baseInfo, const std::string& src) override; 45 void SetTextDirection(const BaseInfo& baseInfo, const TextDirection& direction) override; 46 std::string GetJsonData(const BaseInfo& baseInfo, const std::string& path) override; 47 std::string ToDataURL(const BaseInfo& baseInfo, const std::string& dataUrl, double quality) override; 48 void SetLineCap(const BaseInfo& baseInfo, const LineCapStyle& lineCap) override; 49 void SetLineJoin(const BaseInfo& baseInfo, const LineJoinStyle& lineJoin) override; 50 void SetMiterLimit(const BaseInfo& baseInfo, double limit) override; 51 void SetLineWidth(const BaseInfo& baseInfo, double lineWidth) override; 52 void SetGlobalAlpha(const BaseInfo& baseInfo, double alpha) override; 53 void SetCompositeType(const BaseInfo& baseInfo, const CompositeOperation& type) override; 54 void SetLineDashOffset(const BaseInfo& baseInfo, double lineDashOffset) override; 55 void SetShadowBlur(const BaseInfo& baseInfo, double blur) override; 56 void SetShadowColor(const BaseInfo& baseInfo, const Color& color) override; 57 void SetShadowOffsetX(const BaseInfo& baseInfo, double offsetX) override; 58 void SetShadowOffsetY(const BaseInfo& baseInfo, double offsetY) override; 59 void SetSmoothingEnabled(const BaseInfo& baseInfo, bool enabled) override; 60 void SetSmoothingQuality(const BaseInfo& baseInfo, const std::string& quality) override; 61 void MoveTo(const BaseInfo& baseInfo, double x, double y) override; 62 void LineTo(const BaseInfo& baseInfo, double x, double y) override; 63 void BezierCurveTo(const BaseInfo& baseInfo, const BezierCurveParam& param) override; 64 void QuadraticCurveTo(const BaseInfo& baseInfo, const QuadraticCurveParam& param) override; 65 void ArcTo(const BaseInfo& baseInfo, const ArcToParam& param) override; 66 void Arc(const BaseInfo& baseInfo, const ArcParam& param) override; 67 void Ellipse(const BaseInfo& baseInfo, const EllipseParam& param) override; 68 void SetFillRuleForPath(const BaseInfo& baseInfo, const CanvasFillRule& fillRule) override; 69 void SetFillRuleForPath2D(const BaseInfo& baseInfo, const CanvasFillRule& fillRule, 70 const RefPtr<CanvasPath2D>& path) override; 71 void SetStrokeRuleForPath2D(const BaseInfo& baseInfo, const CanvasFillRule& fillRule, 72 const RefPtr<CanvasPath2D>& path) override; 73 void SetStrokeRuleForPath(const BaseInfo& baseInfo, const CanvasFillRule& fillRule) override; 74 void SetClipRuleForPath(const BaseInfo& baseInfo, const CanvasFillRule& fillRule) override; 75 void SetClipRuleForPath2D(const BaseInfo& baseInfo, const CanvasFillRule& fillRule, 76 const RefPtr<CanvasPath2D>& path) override; 77 void AddRect(const BaseInfo& baseInfo, const Rect& rect) override; 78 void BeginPath(const BaseInfo& baseInfo) override; 79 void ClosePath(const BaseInfo& baseInfo) override; 80 void Restore(const BaseInfo& baseInfo) override; 81 void CanvasRendererSave(const BaseInfo& baseInfo) override; 82 void CanvasRendererRotate(const BaseInfo& baseInfo, double angle) override; 83 void CanvasRendererScale(const BaseInfo& baseInfo, double x, double y) override; 84 void SetTransform(const BaseInfo& baseInfo, TransformParam& param, bool lengthFlag) override; 85 void ResetTransform(const BaseInfo& baseInfo) override; 86 void Transform(const BaseInfo& baseInfo, const TransformParam& param) override; 87 void Translate(const BaseInfo& baseInfo, double x, double y) override; 88 void SetLineDash(const BaseInfo& baseInfo, const std::vector<double>& lineDash) override; 89 void SetTextAlign(const BaseInfo& baseInfo, const TextAlign& align) override; 90 void SetTextBaseline(const BaseInfo& baseInfo, const TextBaseline& baseline) override; 91 double GetMeasureTextWidth(const BaseInfo& baseInfo, const std::string& text) override; 92 double GetMeasureTextHeight(const BaseInfo& baseInfo, const std::string& text) override; 93 void FillRect(const BaseInfo& baseInfo, const Rect& rect) override; 94 void StrokeRect(const BaseInfo& baseInfo, const Rect& rect) override; 95 void ClearRect(const BaseInfo& baseInfo, const Rect& rect) override; 96 TransformParam GetTransform(const BaseInfo& baseInfo) override; 97 RefPtr<Ace::PixelMap> GetPixelMap(const BaseInfo& baseInfo, const ImageSize& imageSize) override; 98 void GetImageDataModel(const BaseInfo& baseInfo, const ImageSize& imageSize, uint8_t* buffer) override; 99 100 private: 101 static void GetImageData(const BaseInfo& baseInfo, const std::shared_ptr<Ace::ImageData>& imageData); 102 }; 103 } // namespace OHOS::Ace::NG 104 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_CANVAS_RENDERER_CANVAS_RENDERER_MODEL_NG_H 105