Flutter Impeller
impeller::interop::ColorSource Class Referencefinal

#include <color_source.h>

Inheritance diagram for impeller::interop::ColorSource:
impeller::interop::Object< ColorSource, IMPELLER_INTERNAL_HANDLE_NAME(ImpellerColorSource)> impeller::interop::ObjectBase

Public Member Functions

 ColorSource (std::shared_ptr< flutter::DlColorSource > source)
 
 ~ColorSource () override
 
 ColorSource (const ColorSource &)=delete
 
ColorSourceoperator= (const ColorSource &)=delete
 
bool IsValid () const
 
const std::shared_ptr< flutter::DlColorSource > & GetColorSource () const
 
- Public Member Functions inherited from impeller::interop::ObjectBase
 ObjectBase ()=default
 
virtual ~ObjectBase ()=default
 
 ObjectBase (const ObjectBase &)=delete
 
 ObjectBase (ObjectBase &&)=delete
 
ObjectBaseoperator= (const ObjectBase &)=delete
 
ObjectBaseoperator= (ObjectBase &&)=delete
 
void Retain ()
 
void Release ()
 
uint64_t GetRefCountForTests () const
 

Static Public Member Functions

static ScopedObject< ColorSourceMakeLinearGradient (const Point &start_point, const Point &end_point, const std::vector< flutter::DlColor > &colors, const std::vector< Scalar > &stops, flutter::DlTileMode tile_mode, const Matrix &transformation)
 
static ScopedObject< ColorSourceMakeRadialGradient (const Point &center, Scalar radius, const std::vector< flutter::DlColor > &colors, const std::vector< Scalar > &stops, flutter::DlTileMode tile_mode, const Matrix &transformation)
 
static ScopedObject< ColorSourceMakeConicalGradient (const Point &start_center, Scalar start_radius, const Point &end_center, Scalar end_radius, const std::vector< flutter::DlColor > &colors, const std::vector< Scalar > &stops, flutter::DlTileMode tile_mode, const Matrix &transformation)
 
static ScopedObject< ColorSourceMakeSweepGradient (const Point &center, Scalar start, Scalar end, const std::vector< flutter::DlColor > &colors, const std::vector< Scalar > &stops, flutter::DlTileMode tile_mode, const Matrix &transformation)
 
static ScopedObject< ColorSourceMakeImage (const Texture &image, flutter::DlTileMode horizontal_tile_mode, flutter::DlTileMode vertical_tile_mode, flutter::DlImageSampling sampling, const Matrix &transformation)
 
static ScopedObject< ColorSourceMakeFragmentProgram (const Context &context, const FragmentProgram &program, std::vector< std::shared_ptr< flutter::DlColorSource >> samplers, std::shared_ptr< std::vector< uint8_t >> uniform_data)
 
- Static Public Member Functions inherited from impeller::interop::ObjectBase
static void SafeRetain (void *ptr)
 
static void SafeRelease (void *ptr)
 

Additional Inherited Members

- Public Types inherited from impeller::interop::Object< ColorSource, IMPELLER_INTERNAL_HANDLE_NAME(ImpellerColorSource)>
using InteropClass = ColorSource
 
using InteropCSibling = IMPELLER_INTERNAL_HANDLE_NAME(ImpellerColorSource)
 

Detailed Description

Definition at line 22 of file color_source.h.

Constructor & Destructor Documentation

◆ ColorSource() [1/2]

impeller::interop::ColorSource::ColorSource ( std::shared_ptr< flutter::DlColorSource >  source)
explicit

Definition at line 144 of file color_source.cc.

145  : color_source_(std::move(source)) {}

◆ ~ColorSource()

impeller::interop::ColorSource::~ColorSource ( )
overridedefault

◆ ColorSource() [2/2]

impeller::interop::ColorSource::ColorSource ( const ColorSource )
delete

Member Function Documentation

◆ GetColorSource()

const std::shared_ptr< flutter::DlColorSource > & impeller::interop::ColorSource::GetColorSource ( ) const

Definition at line 153 of file color_source.cc.

154  {
155  return color_source_;
156 }

Referenced by impeller::interop::Paint::SetColorSource().

◆ IsValid()

bool impeller::interop::ColorSource::IsValid ( ) const

Definition at line 149 of file color_source.cc.

149  {
150  return !!color_source_;
151 }

◆ MakeConicalGradient()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeConicalGradient ( const Point start_center,
Scalar  start_radius,
const Point end_center,
Scalar  end_radius,
const std::vector< flutter::DlColor > &  colors,
const std::vector< Scalar > &  stops,
flutter::DlTileMode  tile_mode,
const Matrix transformation 
)
static

Definition at line 51 of file color_source.cc.

59  {
60  auto dl_filter = flutter::DlColorSource::MakeConical(start_center, //
61  start_radius, //
62  end_center, //
63  end_radius, //
64  stops.size(), //
65  colors.data(), //
66  stops.data(), //
67  tile_mode, //
68  &transformation //
69  );
70  if (!dl_filter) {
71  return nullptr;
72  }
73  return Create<ColorSource>(std::move(dl_filter));
74 }

Referenced by impeller::interop::ImpellerColorSourceCreateConicalGradientNew().

◆ MakeFragmentProgram()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeFragmentProgram ( const Context context,
const FragmentProgram program,
std::vector< std::shared_ptr< flutter::DlColorSource >>  samplers,
std::shared_ptr< std::vector< uint8_t >>  uniform_data 
)
static

Definition at line 114 of file color_source.cc.

118  {
119  auto runtime_stage =
120  program.FindRuntimeStage(context.GetContext()->GetRuntimeStageBackend());
121  if (!runtime_stage) {
122  VALIDATION_LOG << "Could not find runtime stage for backend.";
123  return nullptr;
124  }
125  auto runtime_effect =
126  flutter::DlRuntimeEffect::MakeImpeller(std::move(runtime_stage));
127  if (!runtime_effect) {
128  VALIDATION_LOG << "Could not make runtime effect.";
129  return nullptr;
130  }
131 
132  auto dl_filter =
133  flutter::DlColorSource::MakeRuntimeEffect(std::move(runtime_effect), //
134  std::move(samplers), //
135  std::move(uniform_data) //
136  );
137  if (!dl_filter) {
138  VALIDATION_LOG << "Could not create runtime effect color source.";
139  return nullptr;
140  }
141  return Create<ColorSource>(std::move(dl_filter));
142 }
#define VALIDATION_LOG
Definition: validation.h:91

References impeller::interop::FragmentProgram::FindRuntimeStage(), impeller::interop::Context::GetContext(), and VALIDATION_LOG.

Referenced by impeller::interop::ImpellerColorSourceCreateFragmentProgramNew().

◆ MakeImage()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeImage ( const Texture image,
flutter::DlTileMode  horizontal_tile_mode,
flutter::DlTileMode  vertical_tile_mode,
flutter::DlImageSampling  sampling,
const Matrix transformation 
)
static

Definition at line 99 of file color_source.cc.

104  {
105  auto dl_filter = flutter::DlColorSource::MakeImage(image.MakeImage(), //
106  horizontal_tile_mode, //
107  vertical_tile_mode, //
108  sampling, //
109  &transformation //
110  );
111  return Create<ColorSource>(std::move(dl_filter));
112 }

References impeller::interop::Texture::MakeImage().

Referenced by impeller::interop::ImpellerColorSourceCreateImageNew().

◆ MakeLinearGradient()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeLinearGradient ( const Point start_point,
const Point end_point,
const std::vector< flutter::DlColor > &  colors,
const std::vector< Scalar > &  stops,
flutter::DlTileMode  tile_mode,
const Matrix transformation 
)
static

Definition at line 9 of file color_source.cc.

15  {
16  auto dl_filter = flutter::DlColorSource::MakeLinear(start_point, //
17  end_point, //
18  stops.size(), //
19  colors.data(), //
20  stops.data(), //
21  tile_mode, //
22  &transformation //
23  );
24  if (!dl_filter) {
25  return nullptr;
26  }
27  return Create<ColorSource>(std::move(dl_filter));
28 }

Referenced by impeller::interop::ImpellerColorSourceCreateLinearGradientNew().

◆ MakeRadialGradient()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeRadialGradient ( const Point center,
Scalar  radius,
const std::vector< flutter::DlColor > &  colors,
const std::vector< Scalar > &  stops,
flutter::DlTileMode  tile_mode,
const Matrix transformation 
)
static

Definition at line 30 of file color_source.cc.

36  {
37  auto dl_filter = flutter::DlColorSource::MakeRadial(center, //
38  radius, //
39  stops.size(), //
40  colors.data(), //
41  stops.data(), //
42  tile_mode, //
43  &transformation //
44  );
45  if (!dl_filter) {
46  return nullptr;
47  }
48  return Create<ColorSource>(std::move(dl_filter));
49 }

Referenced by impeller::interop::ImpellerColorSourceCreateRadialGradientNew().

◆ MakeSweepGradient()

ScopedObject< ColorSource > impeller::interop::ColorSource::MakeSweepGradient ( const Point center,
Scalar  start,
Scalar  end,
const std::vector< flutter::DlColor > &  colors,
const std::vector< Scalar > &  stops,
flutter::DlTileMode  tile_mode,
const Matrix transformation 
)
static

Definition at line 76 of file color_source.cc.

83  {
84  auto dl_filter = flutter::DlColorSource::MakeSweep(center, //
85  start, //
86  end, //
87  stops.size(), //
88  colors.data(), //
89  stops.data(), //
90  tile_mode, //
91  &transformation //
92  );
93  if (!dl_filter) {
94  return nullptr;
95  }
96  return Create<ColorSource>(std::move(dl_filter));
97 }
const size_t start
const size_t end

References end, and start.

Referenced by impeller::interop::ImpellerColorSourceCreateSweepGradientNew().

◆ operator=()

ColorSource& impeller::interop::ColorSource::operator= ( const ColorSource )
delete

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