5#ifndef FLUTTER_DISPLAY_LIST_EFFECTS_DL_PATH_EFFECT_H_
6#define FLUTTER_DISPLAY_LIST_EFFECTS_DL_PATH_EFFECT_H_
10#include "flutter/display_list/dl_attributes.h"
11#include "flutter/fml/logging.h"
16class DlDashPathEffect;
68 size_t size()
const override {
69 return sizeof(*this) +
sizeof(
SkScalar) * count_;
72 std::shared_ptr<DlPathEffect>
shared()
const override {
79 return reinterpret_cast<const SkScalar*
>(
this + 1);
81 int count()
const {
return count_; }
90 return count_ == that->count_ && phase_ == that->phase_ &&
107 explicit DlDashPathEffect(
const DlDashPathEffect* dash_effect)
108 : DlDashPathEffect(dash_effect->
intervals(),
110 dash_effect->phase_) {}
112 SkScalar* intervals_unsafe() {
return reinterpret_cast<SkScalar*
>(
this + 1); }
virtual T type() const =0
std::shared_ptr< DlPathEffect > shared() const override
static std::shared_ptr< DlPathEffect > Make(const SkScalar intervals[], int count, SkScalar phase)
const DlDashPathEffect * asDash() const override
size_t size() const override
DlPathEffectType type() const override
bool equals_(DlPathEffect const &other) const override
std::optional< SkRect > effect_bounds(SkRect &rect) const override
const SkScalar * intervals() const
virtual const DlDashPathEffect * asDash() const
virtual std::optional< SkRect > effect_bounds(SkRect &) const =0
#define FML_DCHECK(condition)
#define FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)