soft_engine.h 3.5 KB
Newer Older
Z
Zhouyj_zju 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
/*
 * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef GRAPHIC_LITE_SOFT_ENGINE_H
#define GRAPHIC_LITE_SOFT_ENGINE_H

#include "engines/gfx/gfx_engine_manager.h"

namespace OHOS {
class SoftEngine : public BaseGfxEngine {
public:
    void DrawArc(BufferInfo& dst,
                 ArcInfo& arcInfo,
                 const Rect& mask,
                 const Style& style,
                 OpacityType opacity,
                 uint8_t cap) override;

    void DrawLine(BufferInfo& dst,
                  const Point& start,
                  const Point& end,
                  const Rect& mask,
                  int16_t width,
                  ColorType color,
                  OpacityType opacity) override;

    void DrawLetter(BufferInfo& gfxDstBuffer,
                    const uint8_t* fontMap,
                    const Rect& fontRect,
                    const Rect& subRect,
                    const uint8_t fontWeight,
                    const ColorType& color,
                    const OpacityType opa) override;

    void DrawCubicBezier(BufferInfo& dst,
                         const Point& start,
                         const Point& control1,
                         const Point& control2,
                         const Point& end,
                         const Rect& mask,
                         int16_t width,
                         ColorType color,
                         OpacityType opacity) override;

    void DrawRect(BufferInfo& dst,
                  const Rect& rect,
                  const Rect& dirtyRect,
                  const Style& style,
                  OpacityType opacity) override;

    void DrawTransform(BufferInfo& dst,
                       const Rect& mask,
                       const Point& position,
                       ColorType color,
                       OpacityType opacity,
                       const TransformMap& transMap,
                       const TransformDataInfo& dataInfo) override;

    // x/y: center of a circle
    void ClipCircle(const ImageInfo* info, float x, float y, float radius) override;

    void Blit(BufferInfo& dst,
              const Point& dstPos,
              const BufferInfo& src,
              const Rect& subRect,
              const BlendOption& blendOption) override;

    void Fill(BufferInfo& dst, const Rect& fillArea, const ColorType color, const OpacityType opacity) override;

    void DrawPath(BufferInfo& dst,
                  void* param,
                  const Paint& paint,
                  const Rect& rect,
                  const Rect& invalidatedArea,
                  const Style& style) override;

    void FillPath(BufferInfo& dst,
                  void* param,
                  const Paint& paint,
                  const Rect& rect,
                  const Rect& invalidatedArea,
                  const Style& style) override;

    uint8_t* AllocBuffer(uint32_t size, uint32_t usage) override;

    void FreeBuffer(uint8_t* buffer, uint32_t usage) override;
};
} // namespace OHOS
#endif