roo_display
API Documentation for roo_display
Loading...
Searching...
No Matches
roo_display::LinearGradient Class Reference

Linear gradient (horizontal, vertical, or skewed). More...

#include <gradient.h>

Inheritance diagram for roo_display::LinearGradient:
[legend]
Collaboration diagram for roo_display::LinearGradient:
[legend]

Public Member Functions

 LinearGradient (Point origin, float dx, float dy, ColorGradient gradient, Box extents=Box::MaximumBox())
 Create a linear gradient.
 
Box extents () const override
 Return the bounding box encompassing all pixels that need to be drawn.
 
void readColors (const int16_t *x, const int16_t *y, uint32_t count, Color *result) const override
 Read colors for the given points.
 
bool readColorRect (int16_t xMin, int16_t yMin, int16_t xMax, int16_t yMax, Color *result) const override
 Read colors for a rectangle.
 
- Public Member Functions inherited from roo_display::Rasterizable
void readColorsMaybeOutOfBounds (const int16_t *x, const int16_t *y, uint32_t count, Color *result, Color out_of_bounds_color=color::Transparent) const
 Read colors for points that may be out of bounds.
 
std::unique_ptr< PixelStreamcreateStream () const override
 Default createStream() using readColors().
 
std::unique_ptr< PixelStreamcreateStream (const Box &bounds) const override
 Default createStream() for a clipped box using readColors().
 
- Public Member Functions inherited from roo_display::Streamable
virtual TransparencyMode getTransparencyMode () const
 Return the transparency mode for pixels in this stream.
 
- Public Member Functions inherited from roo_display::Drawable
virtual ~Drawable ()
 
virtual Box anchorExtents () const
 Return the bounds used for alignment.
 

Additional Inherited Members

- Static Public Member Functions inherited from roo_display::Drawable
static const DrawableEmpty ()
 A singleton representing a no-op drawable with no bounding box.
 
- Protected Member Functions inherited from roo_display::Rasterizable
void drawTo (const Surface &s) const override
 Default drawTo() using readColors().
 

Detailed Description

Linear gradient (horizontal, vertical, or skewed).

Definition at line 119 of file gradient.h.

Constructor & Destructor Documentation

◆ LinearGradient()

roo_display::LinearGradient::LinearGradient ( Point  origin,
float  dx,
float  dy,
ColorGradient  gradient,
Box  extents = Box::MaximumBox() 
)

Create a linear gradient.

Color value is computed as: $(x - origin.x) * dx + (y - origin.y) * dy$. Use dx = 0 for vertical, dy = 0 for horizontal gradients. No anti-aliasing is performed; for skewed gradients keep a minimum node spacing of $\sqrt{1/dx^2 + 1/dy^2}$.

Definition at line 140 of file gradient.cpp.

Member Function Documentation

◆ extents()

Box roo_display::LinearGradient::extents ( ) const
inlineoverridevirtual

Return the bounding box encompassing all pixels that need to be drawn.

This method is called during a transaction and must not block or perform I/O.

Implements roo_display::Drawable.

Definition at line 131 of file gradient.h.

◆ readColorRect()

bool roo_display::LinearGradient::readColorRect ( int16_t  xMin,
int16_t  yMin,
int16_t  xMax,
int16_t  yMax,
Color result 
) const
overridevirtual

Read colors for a rectangle.

Returns true if all colors are identical (then only result[0] is valid). The caller must ensure the rectangle is within bounds.

Reimplemented from roo_display::Rasterizable.

Definition at line 178 of file gradient.cpp.

References roo_display::FillColor(), and roo_display::ColorGradient::getColor().

◆ readColors()

void roo_display::LinearGradient::readColors ( const int16_t x,
const int16_t y,
uint32_t  count,
Color result 
) const
overridevirtual

Read colors for the given points.

The caller must ensure all points are within bounds.

Implements roo_display::Rasterizable.

Definition at line 149 of file gradient.cpp.

References roo_display::ColorGradient::getColor().


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