|
roo_display
API Documentation for roo_display
|
Drawable that can provide a color for any point within its extents. More...
#include <rasterizable.h>
Public Member Functions | |
| virtual void | readColors (const int16_t *x, const int16_t *y, uint32_t count, Color *result) const =0 |
| Read colors for the given points. | |
| 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. | |
| virtual bool | readColorRect (int16_t xMin, int16_t yMin, int16_t xMax, int16_t yMax, Color *result) const |
| Read colors for a rectangle. | |
| std::unique_ptr< PixelStream > | createStream () const override |
Default createStream() using readColors(). | |
| std::unique_ptr< PixelStream > | createStream (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 | extents () const =0 |
| Return the bounding box encompassing all pixels that need to be drawn. | |
| virtual Box | anchorExtents () const |
| Return the bounds used for alignment. | |
Protected Member Functions | |
| void | drawTo (const Surface &s) const override |
Default drawTo() using readColors(). | |
Additional Inherited Members | |
Static Public Member Functions inherited from roo_display::Drawable | |
| static const Drawable * | Empty () |
| A singleton representing a no-op drawable with no bounding box. | |
Drawable that can provide a color for any point within its extents.
Rasterizables can be used as overlays, backgrounds, and filters. A Rasterizable is also a Streamable. The minimum requirement is to implement readColors(). If your class can stream pixels or draw more efficiently than per-pixel access, override createStream() and/or drawTo(). If large areas share the same color, override readColorRect() to improve performance.
Definition at line 19 of file rasterizable.h.
|
overridevirtual |
Default createStream() using readColors().
Implements roo_display::Streamable.
Definition at line 134 of file rasterizable.cpp.
References roo_display::Drawable::extents().
|
overridevirtual |
Default createStream() for a clipped box using readColors().
Implements roo_display::Streamable.
Definition at line 138 of file rasterizable.cpp.
Default drawTo() using readColors().
Reimplemented from roo_display::Drawable.
Definition at line 290 of file rasterizable.cpp.
References bgcolor, fill_mode, roo_display::Streamable::getTransparencyMode(), roo_display::kExtents, and roo_display::kNone.
|
virtual |
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 in roo_display::Fill, roo_display::Clear, roo_display::LinearGradient, roo_display::RasterizableStack, roo_display::Raster< PtrTypeT, ColorModeT, pixel_order, byte_order >, roo_display::Raster< const roo::byte *, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< const roo::byte *, typename Target::ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< const roo::byte *PROGMEM, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< roo::byte *, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::SmoothShape, and roo_display::RoundRectShadow.
Definition at line 113 of file rasterizable.cpp.
References readColors().
Referenced by roo_display::SmoothShape::readColorRect().
|
pure virtual |
Read colors for the given points.
The caller must ensure all points are within bounds.
Implemented in roo_display::Fill, roo_display::Clear, roo_display::RadialGradient, roo_display::RadialGradientSq, roo_display::LinearGradient, roo_display::AngularGradient, roo_display::RasterizableStack, roo_display::Offscreen< ColorMode, pixel_order, byte_order, pixels_per_byte, storage_type >, roo_display::Offscreen< Monochrome >, roo_display::Raster< PtrTypeT, ColorModeT, pixel_order, byte_order >, roo_display::Raster< const roo::byte *, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< const roo::byte *, typename Target::ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< const roo::byte *PROGMEM, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::Raster< roo::byte *, ColorMode, ColorPixelOrder::kMsbFirst, roo_io::kBigEndian >, roo_display::SimpleRasterizable< Getter >, roo_display::SimpleTiledRasterizable< Getter >, roo_display::FilledRect, roo_display::RoundRectShadow, roo_display::SmoothShape, and roo_display::TransformedRaster< RasterType, TransformationType >.
Referenced by readColorRect(), and readColorsMaybeOutOfBounds().
| void roo_display::Rasterizable::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.
Out-of-bounds points are set to out_of_bounds_color.
Definition at line 59 of file rasterizable.cpp.
References roo_display::Box::contains(), roo_display::Drawable::extents(), and readColors().
Referenced by roo_display::BlendingFilter< Blender >::fill(), and roo_display::BlendingFilter< Blender >::write().