5#ifndef FLUTTER_DISPLAY_LIST_DL_PAINT_H_
6#define FLUTTER_DISPLAY_LIST_DL_PAINT_H_
116 stroke_width_ =
width;
122 stroke_miter_ = miter;
127 return color_source_;
132 color_source_ =
nullptr;
136 color_source_ = source ? source->
shared() :
nullptr;
140 color_source_ = std::move(source);
145 return color_filter_;
150 color_filter_ =
nullptr;
154 color_filter_ = filter ? filter->
shared() :
nullptr;
158 color_filter_ = filter;
163 return image_filter_;
168 image_filter_ =
nullptr;
172 image_filter_ = filter ? filter->
shared() :
nullptr;
176 image_filter_ = filter;
186 mask_filter_ =
nullptr;
190 mask_filter_ = filter ? filter->
shared() :
nullptr;
194 mask_filter_ = filter;
201 return ((color_source_ && color_source_->asRuntimeEffect()) ||
202 (image_filter_ && image_filter_->asRuntimeEffectFilter()));
208#define ASSERT_ENUM_FITS(last_enum, num_bits) \
209 static_assert(static_cast<int>(last_enum) < (1 << num_bits) && \
210 static_cast<int>(last_enum) * 2 >= (1 << num_bits))
212 static constexpr int kBlendModeBits = 5;
213 static constexpr int kDrawStyleBits = 2;
214 static constexpr int kStrokeCapBits = 2;
215 static constexpr int kStrokeJoinBits = 2;
236 std::shared_ptr<const DlColorSource> color_source_;
237 std::shared_ptr<const DlColorFilter> color_filter_;
238 std::shared_ptr<DlImageFilter> image_filter_;
239 std::shared_ptr<const DlMaskFilter> mask_filter_;
virtual std::shared_ptr< D > shared() const =0
bool operator==(DlPaint const &other) const
DlStrokeCap getStrokeCap() const
DlPaint & setColor(DlColor color)
DlPaint & setAntiAlias(bool isAntiAlias)
static const DlPaint kDefault
DlPaint & setInvertColors(bool isInvertColors)
DlBlendMode getBlendMode() const
DlPaint & setColorFilter(const std::shared_ptr< const DlColorFilter > &filter)
static constexpr float kDefaultWidth
DlPaint & setMaskFilter(const std::shared_ptr< DlMaskFilter > &filter)
float getStrokeMiter() const
DlPaint & setImageFilter(const DlImageFilter *filter)
DlStrokeJoin getStrokeJoin() const
DlPaint & setMaskFilter(const DlMaskFilter *filter)
bool usesRuntimeEffect() const
unsigned is_invert_colors_
const DlColorSource * getColorSourcePtr() const
DlPaint & setStrokeCap(DlStrokeCap cap)
const DlMaskFilter * getMaskFilterPtr() const
DlPaint & setStrokeWidth(float width)
DlPaint & setAlpha(uint8_t alpha)
const DlColorFilter * getColorFilterPtr() const
DlPaint & setStrokeMiter(float miter)
DlPaint & setBlendMode(DlBlendMode mode)
const std::shared_ptr< const DlMaskFilter > & getMaskFilter() const
DlScalar getOpacity() const
static constexpr float kDefaultMiter
const DlImageFilter * getImageFilterPtr() const
DlPaint & setImageFilter(const std::shared_ptr< DlImageFilter > &filter)
DlDrawStyle getDrawStyle() const
DlPaint & setImageFilter(std::nullptr_t filter)
const std::shared_ptr< const DlColorSource > & getColorSource() const
const std::shared_ptr< DlImageFilter > & getImageFilter() const
DlPaint & setColorFilter(const DlColorFilter *filter)
float getStrokeWidth() const
const std::shared_ptr< const DlColorFilter > & getColorFilter() const
DlPaint & setMaskFilter(std::nullptr_t filter)
DlPaint & setDrawStyle(DlDrawStyle style)
static constexpr DlColor kDefaultColor
DlPaint & setStrokeJoin(DlStrokeJoin join)
DlPaint & setOpacity(DlScalar opacity)
DlPaint & setColorFilter(std::nullptr_t filter)
DlPaint & setColorSource(std::shared_ptr< const DlColorSource > source)
DlPaint & setColorSource(const DlColorSource *source)
DlPaint & setColorSource(std::nullptr_t source)
bool isInvertColors() const
#define ASSERT_ENUM_FITS(last_enum, num_bits)
impeller::Scalar DlScalar
@ kMiter
extends to miter limit
@ kBevel
connects outside edges
@ kButt
no stroke extension
@ kStrokeAndFill
both strokes and fills shapes
@ kStroke
strokes boundary of shapes
@ kFill
fills interior of shapes
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
static constexpr DlColor kBlack()
constexpr DlScalar getAlphaF() const
static uint8_t toAlpha(DlScalar opacity)
DlColor withAlpha(uint8_t alpha) const