5#ifndef FLUTTER_DISPLAY_LIST_DL_PAINT_H_
6#define FLUTTER_DISPLAY_LIST_DL_PAINT_H_
10#include "flutter/display_list/dl_blend_mode.h"
11#include "flutter/display_list/dl_color.h"
12#include "flutter/display_list/effects/dl_color_filter.h"
13#include "flutter/display_list/effects/dl_color_source.h"
14#include "flutter/display_list/effects/dl_image_filter.h"
15#include "flutter/display_list/effects/dl_mask_filter.h"
16#include "flutter/display_list/effects/dl_path_effect.h"
118 stroke_width_ =
width;
124 stroke_miter_ = miter;
129 return color_source_;
133 color_source_ = std::move(
source);
142 return color_filter_;
146 color_filter_ = filter;
150 color_filter_ = filter ? filter->
shared() :
nullptr;
155 return image_filter_;
159 image_filter_ = filter;
163 image_filter_ = filter ? filter->
shared() :
nullptr;
172 mask_filter_ = filter;
176 mask_filter_ = filter ? filter->
shared() :
nullptr;
185 path_effect_ = pathEffect;
189 path_effect_ = effect ? effect->
shared() :
nullptr;
199#define ASSERT_ENUM_FITS(last_enum, num_bits) \
200 static_assert(static_cast<int>(last_enum) < (1 << num_bits) && \
201 static_cast<int>(last_enum) * 2 >= (1 << num_bits))
203 static constexpr int kBlendModeBits = 5;
204 static constexpr int kDrawStyleBits = 2;
205 static constexpr int kStrokeCapBits = 2;
206 static constexpr int kStrokeJoinBits = 2;
227 std::shared_ptr<const DlColorSource> color_source_;
228 std::shared_ptr<const DlColorFilter> color_filter_;
229 std::shared_ptr<const DlImageFilter> image_filter_;
230 std::shared_ptr<const DlMaskFilter> mask_filter_;
231 std::shared_ptr<const DlPathEffect> path_effect_;
#define SkScalarRoundToInt(x)
virtual std::shared_ptr< D > shared() const =0
bool operator==(DlPaint const &other) const
DlPaint & setPathEffect(const DlPathEffect *effect)
DlStrokeCap getStrokeCap() const
DlPaint & setPathEffect(const std::shared_ptr< DlPathEffect > &pathEffect)
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)
std::shared_ptr< const DlPathEffect > getPathEffect() const
std::shared_ptr< const DlColorSource > getColorSource() const
DlStrokeJoin getStrokeJoin() const
SkScalar getOpacity() const
DlPaint & setMaskFilter(const DlMaskFilter *filter)
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)
bool operator!=(DlPaint const &other) const
DlPaint & setBlendMode(DlBlendMode mode)
static constexpr float kDefaultMiter
const DlImageFilter * getImageFilterPtr() const
const DlPathEffect * getPathEffectPtr() const
DlDrawStyle getDrawStyle() const
std::shared_ptr< const DlMaskFilter > getMaskFilter() const
std::shared_ptr< const DlColorFilter > getColorFilter() const
DlPaint & setImageFilter(const std::shared_ptr< const DlImageFilter > &filter)
DlPaint & setColorFilter(const DlColorFilter *filter)
float getStrokeWidth() const
DlPaint & setOpacity(SkScalar opacity)
std::shared_ptr< const DlImageFilter > getImageFilter() const
DlPaint & setDrawStyle(DlDrawStyle style)
static constexpr DlColor kDefaultColor
DlPaint & setStrokeJoin(DlStrokeJoin join)
DlPaint & setColorSource(std::shared_ptr< const DlColorSource > source)
DlPaint & setColorSource(const DlColorSource *source)
bool isInvertColors() const
#define ASSERT_ENUM_FITS(last_enum, num_bits)
@ 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 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
@ kLastMode
last valid value
constexpr float getAlphaF() const
static constexpr DlColor kBlack()
constexpr DlColor withAlpha(uint8_t alpha) const
constexpr uint32_t argb() const