Flutter Engine
 
Loading...
Searching...
No Matches
flutter::DlGradientColorSourceBase Class Referenceabstract

#include <dl_gradient_color_source_base.h>

Inheritance diagram for flutter::DlGradientColorSourceBase:
flutter::DlMatrixColorSourceBase flutter::DlColorSource flutter::DlAttribute< DlColorSource, DlColorSourceType > flutter::DlConicalGradientColorSource flutter::DlLinearGradientColorSource flutter::DlRadialGradientColorSource flutter::DlSweepGradientColorSource

Public Member Functions

bool is_opaque () const override
 
bool isGradient () const override
 If the underlying platform data represents a gradient.
 
DlTileMode tile_mode () const
 
int stop_count () const
 
const DlColorcolors () const
 
const float * stops () const
 
- Public Member Functions inherited from flutter::DlMatrixColorSourceBase
const DlMatrixmatrix () const
 
const DlMatrixmatrix_ptr () const
 
- Public Member Functions inherited from flutter::DlColorSource
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 potentially released from the UI thread, this method returns true.
 
virtual const DlImageColorSourceasImage () const
 
virtual const DlLinearGradientColorSourceasLinearGradient () const
 
virtual const DlRadialGradientColorSourceasRadialGradient () const
 
virtual const DlConicalGradientColorSourceasConicalGradient () const
 
virtual const DlSweepGradientColorSourceasSweepGradient () const
 
virtual const DlRuntimeEffectColorSourceasRuntimeEffect () const
 
- Public Member Functions inherited from flutter::DlAttribute< DlColorSource, DlColorSourceType >
virtual DlColorSourceType type () const=0
 
virtual size_t size () const=0
 
virtual std::shared_ptr< DlColorSourceshared () const=0
 
bool operator== (DlColorSource const &other) const
 
bool operator!= (DlColorSource const &other) const
 
virtual ~DlAttribute ()=default
 

Protected Member Functions

 DlGradientColorSourceBase (uint32_t stop_count, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 
size_t vector_sizes () const
 
virtual const void * pod () const =0
 
bool base_equals_ (DlGradientColorSourceBase const *other_base) const
 
void store_color_stops (void *pod, const DlColor *color_data, const float *stop_data)
 
void store_color_stops (void *pod, const DlScalar *color_data_argb, const float *stop_data)
 
- Protected Member Functions inherited from flutter::DlMatrixColorSourceBase
 DlMatrixColorSourceBase (const DlMatrix *matrix)
 
- Protected Member Functions inherited from flutter::DlColorSource
 DlColorSource ()=default
 
- Protected Member Functions inherited from flutter::DlAttribute< DlColorSource, DlColorSourceType >
virtual bool equals_ (DlColorSource const &other) const=0
 

Additional Inherited Members

- Static Public Member Functions inherited from flutter::DlColorSource
static std::shared_ptr< DlColorSourceMakeImage (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< DlColorSourceMakeLinear (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)
 
static std::shared_ptr< DlColorSourceMakeLinear (const DlPoint start_point, const DlPoint end_point, uint32_t stop_count, const DlScalar *colors_argb, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 Make a linear gradient.
 
static std::shared_ptr< DlColorSourceMakeRadial (DlPoint center, DlScalar radius, uint32_t stop_count, const DlColor *colors, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 
static std::shared_ptr< DlColorSourceMakeRadial (DlPoint center, DlScalar radius, uint32_t stop_count, const DlScalar *colors_argb, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 Make a radial gradient.
 
static std::shared_ptr< DlColorSourceMakeConical (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< DlColorSourceMakeConical (DlPoint start_center, DlScalar start_radius, DlPoint end_center, DlScalar end_radius, uint32_t stop_count, const DlScalar *colors_argb, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 Make a conical gradient.
 
static std::shared_ptr< DlColorSourceMakeSweep (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< DlColorSourceMakeSweep (DlPoint center, DlScalar start, DlScalar end, uint32_t stop_count, const DlScalar *colors_argb, const float *stops, DlTileMode tile_mode, const DlMatrix *matrix=nullptr)
 Make a sweep gradient.
 
static std::shared_ptr< DlColorSourceMakeRuntimeEffect (sk_sp< DlRuntimeEffect > runtime_effect, std::vector< std::shared_ptr< DlColorSource > > samplers, std::shared_ptr< std::vector< uint8_t > > uniform_data)
 

Detailed Description

Definition at line 13 of file dl_gradient_color_source_base.h.

Constructor & Destructor Documentation

◆ DlGradientColorSourceBase()

flutter::DlGradientColorSourceBase::DlGradientColorSourceBase ( uint32_t  stop_count,
DlTileMode  tile_mode,
const DlMatrix matrix = nullptr 
)
protected

Member Function Documentation

◆ base_equals_()

bool flutter::DlGradientColorSourceBase::base_equals_ ( DlGradientColorSourceBase const *  other_base) const
protected

Definition at line 234 of file dl_color_source.cc.

235 {
236 if (mode_ != other_base->mode_ || matrix() != other_base->matrix() ||
237 stop_count_ != other_base->stop_count_) {
238 return false;
239 }
240 return (memcmp(colors(), other_base->colors(),
241 stop_count_ * sizeof(colors()[0])) == 0 &&
242 memcmp(stops(), other_base->stops(),
243 stop_count_ * sizeof(stops()[0])) == 0);
244}

References colors(), flutter::DlMatrixColorSourceBase::matrix(), and stops().

◆ colors()

const DlColor * flutter::DlGradientColorSourceBase::colors ( ) const
inline

Definition at line 21 of file dl_gradient_color_source_base.h.

21 {
22 return reinterpret_cast<const DlColor*>(pod());
23 }
virtual const void * pod() const =0
flutter::DlColor DlColor

References pod().

Referenced by base_equals_(), impeller::Paint::ConvertStops(), is_opaque(), flutter::testing::DisplayListStreamDispatcher::setColorSource(), and stops().

◆ is_opaque()

bool flutter::DlGradientColorSourceBase::is_opaque ( ) const
overridevirtual

Implements flutter::DlColorSource.

Definition at line 221 of file dl_color_source.cc.

221 {
222 if (mode_ == DlTileMode::kDecal) {
223 return false;
224 }
225 const DlColor* my_colors = colors();
226 for (uint32_t i = 0; i < stop_count_; i++) {
227 if (my_colors[i].getAlpha() < 255) {
228 return false;
229 }
230 }
231 return true;
232}

References colors(), i, and flutter::kDecal.

◆ isGradient()

bool flutter::DlGradientColorSourceBase::isGradient ( ) const
inlineoverridevirtual

If the underlying platform data represents a gradient.

        TODO(matanl): Remove this flag when the Skia backend is
        removed, https://github.com/flutter/flutter/issues/112498.
Returns
True if the class represents the output of a gradient.

Reimplemented from flutter::DlColorSource.

Definition at line 17 of file dl_gradient_color_source_base.h.

17{ return true; }

◆ pod()

virtual const void * flutter::DlGradientColorSourceBase::pod ( ) const
protectedpure virtual

◆ stop_count()

int flutter::DlGradientColorSourceBase::stop_count ( ) const
inline

◆ stops()

const float * flutter::DlGradientColorSourceBase::stops ( ) const
inline

Definition at line 24 of file dl_gradient_color_source_base.h.

24 {
25 return reinterpret_cast<const float*>(colors() + stop_count());
26 }

References colors(), and stop_count().

Referenced by base_equals_(), impeller::Paint::ConvertStops(), flutter::testing::DisplayListStreamDispatcher::setColorSource(), and flutter::ToSk().

◆ store_color_stops() [1/2]

void flutter::DlGradientColorSourceBase::store_color_stops ( void *  pod,
const DlColor color_data,
const float *  stop_data 
)
protected

Definition at line 299 of file dl_color_source.cc.

301 {
302 do_store_color_stops(pod, color_data, color_data + stop_count_, stop_data);
303}

References pod().

◆ store_color_stops() [2/2]

void flutter::DlGradientColorSourceBase::store_color_stops ( void *  pod,
const DlScalar color_data_argb,
const float *  stop_data 
)
protected

Definition at line 305 of file dl_color_source.cc.

308 {
309 do_store_color_stops(
310 pod, DlScalerToDlColorIterator(color_data_argb),
311 DlScalerToDlColorIterator(color_data_argb + stop_count_ * 4), stop_data);
312}

References pod().

◆ tile_mode()

DlTileMode flutter::DlGradientColorSourceBase::tile_mode ( ) const
inline

◆ vector_sizes()

size_t flutter::DlGradientColorSourceBase::vector_sizes ( ) const
inlineprotected

The documentation for this class was generated from the following files: