8000 api: Remove property getter APIs · Issue #2753 · thorvg/thorvg · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
api: Remove property getter APIs #2753
Open
@hermet

Description

@hermet

For a more compact library, I suggest to remove the following property getter interfaces. ThorVG's core policy is based on a 'fire & forget' model. When building rendering or scene models directly, they're likely to have their own data models, and those models will certainly maintain property values separately. It is uncommon and not encouraged to check and reuse property values through objects like paint or shape (still, we allow to access it for a aggressive optimization but it's not our main guidance). This decision has been made based on current thorvg 0.x features & usage, but the policy may change according to functionality expansions and user demands after the 1.0 release. If you are fully rely on the getters, this change might be sensitive. Please feel free leave opinions if you actually needs them or any other thoughts. Thanks.

image

Candidates:

  • uint8_t Paint::opacity() const noexcept
  • CompositeMethod Paint::composite(const Paint** target) const
  • uint32_t Fill::colorStops(const ColorStop** colorStops) const
  • FillSpread Fill::spread() const
  • Matrix Fill::transform() const
  • Result LinearGradient::linear(float* x1, float* y1, float* x2, float* y2) const
  • Result RadialGradient::radial(float* cx, float* cy, float* radius) cons 6716 t
  • Result Shape::fillColor(uint8_t* r, uint8_t* g, uint8_t* b, uint8_t* a = nullptr) const
  • FillRule Shape::fillRule() const
  • float Shape::strokeWidth() const
  • Result Shape::strokeFill(uint8_t* r, uint8_t* g, uint8_t* b, uint8_t* a = nullptr) const
  • uint32_t Shape::strokeDash(const float** dashPattern, float* offset = nullptr) const
  • StrokeCap Shape::strokeCap() const
  • StrokeJoin Shape::strokeJoin() const
  • float Shape::strokeMiterlimit() const

The removal process is scheduled to proceed after the 0.15 release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIsUpdate / Revise APIs

    Type

    No type

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0