Flutter Engine
 
Loading...
Searching...
No Matches
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
19
20namespace impeller::interop {
21
22class 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,
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,
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
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)
const std::shared_ptr< flutter::DlColorSource > & GetColorSource() const
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)
ColorSource & operator=(const ColorSource &)=delete
static ScopedObject< ColorSource > MakeImage(const Texture &image, flutter::DlTileMode horizontal_tile_mode, flutter::DlTileMode vertical_tile_mode, flutter::DlImageSampling sampling, const Matrix &transformation)
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)
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)
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)
FlutterVulkanImage * image
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