Flutter Impeller
color_source.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_IMPELLER_TOOLKIT_INTEROP_COLOR_SOURCE_H_
6 #define FLUTTER_IMPELLER_TOOLKIT_INTEROP_COLOR_SOURCE_H_
7 
8 #include <vector>
9 
10 #include "flutter/display_list/effects/dl_color_source.h"
19 
20 namespace impeller::interop {
21 
22 class ColorSource final
23  : public Object<ColorSource,
24  IMPELLER_INTERNAL_HANDLE_NAME(ImpellerColorSource)> {
25  public:
27  const Point& start_point,
28  const Point& end_point,
29  const std::vector<flutter::DlColor>& colors,
30  const std::vector<Scalar>& stops,
31  flutter::DlTileMode tile_mode,
32  const Matrix& transformation);
33 
35  const Point& center,
36  Scalar radius,
37  const std::vector<flutter::DlColor>& colors,
38  const std::vector<Scalar>& stops,
39  flutter::DlTileMode tile_mode,
40  const Matrix& transformation);
41 
43  const Point& start_center,
44  Scalar start_radius,
45  const Point& end_center,
46  Scalar end_radius,
47  const std::vector<flutter::DlColor>& colors,
48  const std::vector<Scalar>& stops,
49  flutter::DlTileMode tile_mode,
50  const Matrix& transformation);
51 
53  const Point& center,
54  Scalar start,
55  Scalar end,
56  const std::vector<flutter::DlColor>& colors,
57  const std::vector<Scalar>& stops,
58  flutter::DlTileMode tile_mode,
59  const Matrix& transformation);
60 
62  const Texture& image,
63  flutter::DlTileMode horizontal_tile_mode,
64  flutter::DlTileMode vertical_tile_mode,
65  flutter::DlImageSampling sampling,
66  const Matrix& transformation);
67 
69  const Context& context,
70  const FragmentProgram& program,
71  std::vector<std::shared_ptr<flutter::DlColorSource>> samplers,
72  std::shared_ptr<std::vector<uint8_t>> uniform_data);
73 
74  explicit ColorSource(std::shared_ptr<flutter::DlColorSource> source);
75 
76  ~ColorSource() override;
77 
78  ColorSource(const ColorSource&) = delete;
79 
80  ColorSource& operator=(const ColorSource&) = delete;
81 
82  bool IsValid() const;
83 
84  const std::shared_ptr<flutter::DlColorSource>& GetColorSource() const;
85 
86  private:
87  std::shared_ptr<flutter::DlColorSource> color_source_;
88 };
89 
90 } // namespace impeller::interop
91 
92 #endif // FLUTTER_IMPELLER_TOOLKIT_INTEROP_COLOR_SOURCE_H_
static ScopedObject< 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)
Definition: color_source.cc:76
const std::shared_ptr< flutter::DlColorSource > & GetColorSource() const
ColorSource(std::shared_ptr< flutter::DlColorSource > source)
ColorSource & operator=(const ColorSource &)=delete
static ScopedObject< 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 ScopedObject< ColorSource > MakeImage(const Texture &image, flutter::DlTileMode horizontal_tile_mode, flutter::DlTileMode vertical_tile_mode, flutter::DlImageSampling sampling, const Matrix &transformation)
Definition: color_source.cc:99
ColorSource(const ColorSource &)=delete
static ScopedObject< 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)
Definition: color_source.cc:30
static ScopedObject< 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)
Definition: color_source.cc:9
static ScopedObject< 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)
Definition: color_source.cc:51
float Scalar
Definition: scalar.h:19
A 4x4 matrix using column-major storage.
Definition: matrix.h:37
const size_t start
const size_t end