5#ifndef FLUTTER_DISPLAY_LIST_EFFECTS_DL_COLOR_SOURCE_H_
6#define FLUTTER_DISPLAY_LIST_EFFECTS_DL_COLOR_SOURCE_H_
18class DlImageColorSource;
19class DlLinearGradientColorSource;
20class DlRadialGradientColorSource;
21class DlConicalGradientColorSource;
22class DlSweepGradientColorSource;
23class DlRuntimeEffectColorSource;
46 static std::shared_ptr<DlColorSource>
MakeImage(
47 const sk_sp<const DlImage>&
image,
53 static std::shared_ptr<DlColorSource>
MakeLinear(
65 static std::shared_ptr<DlColorSource>
MakeLinear(
74 static std::shared_ptr<DlColorSource>
MakeRadial(
86 static std::shared_ptr<DlColorSource>
MakeRadial(
120 static std::shared_ptr<DlColorSource>
MakeSweep(
133 static std::shared_ptr<DlColorSource>
MakeSweep(
144 sk_sp<DlRuntimeEffect> runtime_effect,
145 std::vector<std::shared_ptr<DlColorSource>> samplers,
146 std::shared_ptr<std::vector<uint8_t>> uniform_data);
virtual const DlRuntimeEffectColorSource * asRuntimeEffect() const
virtual bool isUIThreadSafe() const =0
If the underlying platform data held by this object is held in a way that it can be stored and potent...
static std::shared_ptr< DlColorSource > MakeSweep(DlPoint center, DlScalar start, DlScalar end, uint32_t stop_count, const DlColor *colors, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
static std::shared_ptr< DlColorSource > MakeImage(const sk_sp< const DlImage > &image, DlTileMode horizontal_tile_mode, DlTileMode vertical_tile_mode, DlImageSampling sampling=DlImageSampling::kLinear, const DlMatrix *matrix=nullptr)
static std::shared_ptr< DlColorSource > MakeLinear(const DlPoint start_point, const DlPoint end_point, uint32_t stop_count, const DlColor *colors, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
virtual const DlRadialGradientColorSource * asRadialGradient() const
virtual const DlLinearGradientColorSource * asLinearGradient() const
virtual const DlImageColorSource * asImage() const
virtual bool is_opaque() const =0
virtual const DlSweepGradientColorSource * asSweepGradient() const
static std::shared_ptr< DlColorSource > MakeRuntimeEffect(sk_sp< DlRuntimeEffect > runtime_effect, std::vector< std::shared_ptr< DlColorSource > > samplers, std::shared_ptr< std::vector< uint8_t > > uniform_data)
virtual bool isGradient() const
If the underlying platform data represents a gradient.
virtual const DlConicalGradientColorSource * asConicalGradient() const
static std::shared_ptr< DlColorSource > MakeConical(DlPoint start_center, DlScalar start_radius, DlPoint end_center, DlScalar end_radius, uint32_t stop_count, const DlColor *colors, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
static std::shared_ptr< DlColorSource > MakeRadial(DlPoint center, DlScalar radius, uint32_t stop_count, const DlColor *colors, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
FlutterVulkanImage * image
#define FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)
impeller::Scalar DlScalar
A 4x4 matrix using column-major storage.