36 const Entity& entity)
const {
41 const std::shared_ptr<Geometry>& geometry =
GetGeometry();
42 if (geometry ==
nullptr) {
54 VS::FrameInfo frame_info;
55 frame_info.color = capture.AddColor(
"Color",
GetColor()).Premultiply();
59 return renderer.GetSolidFillPipeline(
options);
61 return ColorSourceContents::DrawGeometry<VS>(
62 renderer, entity, pass, pipeline_callback, frame_info,
71 auto contents = std::make_unique<SolidColorContents>();
73 contents->SetColor(
color);
79 ISize target_size)
const {
83 : std::optional<Color>();
88 color_ = color_filter_proc(color_);
Capture CreateChild(std::string_view label)
Scalar GetOpacityFactor() const
Get the opacity factor for this color source.
std::function< std::shared_ptr< Pipeline< PipelineDescriptor > >(ContentContextOptions)> PipelineBuilderCallback
const std::shared_ptr< Geometry > & GetGeometry() const
Get the geometry that this contents will use to render.
std::function< Color(Color)> ColorFilterProc
Capture & GetCapture() const
const Matrix & GetTransform() const
Get the global transform matrix for this Entity.
static std::shared_ptr< Geometry > MakeFillPath(const Path &path, std::optional< Rect > inner_rect=std::nullopt)
Paths are lightweight objects that describe a collection of linear, quadratic, or cubic segments....
Render passes encode render commands directed as one specific render target into an underlying comman...
virtual void SetCommandLabel(std::string_view label)
The debugging label to use for the command.
VertexShader_ VertexShader
bool IsOpaque() const override
Whether this Contents only emits opaque source colors from the fragment stage. This value does not ac...
~SolidColorContents() override
bool IsSolidColor() const override
void SetColor(Color color)
bool ApplyColorFilter(const ColorFilterProc &color_filter_proc) override
If possible, applies a color filter to this contents inputs on the CPU.
bool Render(const ContentContext &renderer, const Entity &entity, RenderPass &pass) const override
static std::unique_ptr< SolidColorContents > Make(const Path &path, Color color)
std::optional< Color > AsBackgroundColor(const Entity &entity, ISize target_size) const override
Returns a color if this Contents will flood the given target_size with a color. This output color is ...
std::optional< Rect > GetCoverage(const Entity &entity) const override
Get the area of the render pass that will be affected when this contents is rendered.
constexpr bool IsOpaque() const
constexpr Color WithAlpha(Scalar new_alpha) const
static constexpr TRect MakeSize(const TSize< U > &size)