23 auto res = fml::MakeRefCounted<ImageShader>();
24 res->AssociateWithDartWrapper(wrapper);
30 int filter_quality_index,
31 Dart_Handle matrix_handle) {
34 return ToDart(
"ImageShader constructor called with non-genuine Image.");
38 tonic::Float64List matrix4(matrix_handle);
41 sampling_is_locked_ = filter_quality_index >= 0;
54 if (sampling_is_locked_ || sampling == image_shader->
sampling()) {
55 return cached_shader_;
61 return image_->width();
65 return image_->height();
69 cached_shader_.reset();
74ImageShader::ImageShader() =
default;
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)
DlImageSampling sampling() const
std::shared_ptr< DlColorSource > WithSampling(DlImageSampling sampling) const
static DlImageSampling SamplingFromIndex(int filterQualityIndex)
std::shared_ptr< DlColorSource > shader(DlImageSampling) override
Dart_Handle initWithImage(CanvasImage *image, DlTileMode tmx, DlTileMode tmy, int filter_quality_index, Dart_Handle matrix_handle)
static void Create(Dart_Handle wrapper)
#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName)
FlutterVulkanImage * image
#define FML_DCHECK(condition)
DlMatrix ToDlMatrix(const SkMatrix &matrix)
Dart_Handle ToDart(const T &object)
FlutterVulkanImageHandle image
A 4x4 matrix using column-major storage.