============================================================================
LEGACY RASTERTARGET API (Deprecated - for backward compatibility)
============================================================================
CANVAS IMPLEMENTATIONS
|
| template<typename Coord> |
| Coord | aaRatioDispatch (Coord num, Coord denom, Coord, fl::true_type) |
| |
| template<typename Coord> |
| Coord | aaRatioDispatch (Coord num, Coord, Coord inv_denom, fl::false_type) |
| |
| void | computeBandShift (fl::i32 band, fl::u8 &shift_out, fl::u16 &inv_out) |
| | Precompute right-shift and reciprocal multiplier for AA division.
|
| |
| template<typename PixelT, typename Coord, bool Overwrite> |
| void | drawDiscCore (Canvas< PixelT > &canvas, const PixelT &color, Coord cx, Coord cy, Coord r) |
| |
| template<typename PixelT, typename Coord, bool Overwrite> |
| void | drawLineCore (Canvas< PixelT > &canvas, const PixelT &color, Coord x0, Coord y0, Coord x1, Coord y1) |
| |
| template<typename PixelT, typename Coord, bool Overwrite> |
| void | drawRingCore (Canvas< PixelT > &canvas, const PixelT &color, Coord cx, Coord cy, Coord r, Coord thickness) |
| |
| template<typename PixelT, typename Coord, bool Overwrite> |
| void | drawStrokeLineCore (Canvas< PixelT > &canvas, const PixelT &color, Coord x0, Coord y0, Coord x1, Coord y1, Coord thickness, LineCap cap) |
| |
| const fl::u8 distanceAA_LUT[256] | FL_ALIGN_PROGMEM (256) |
| | 256-byte antialiasing lookup table Maps normalized squared distance d²/r_max² (scaled 0..255) to brightness byte Entry i = round(255 * max(0, 1 - sqrt(i/255))) Provides smooth antialiasing fringe for circles and discs
|
| |
| fl::i32 | isqrt32_ceil (fl::i32 n) |
| | Integer square root using Newton iteration Computes ceil(sqrt(n)) for positive integers More accurate than digit-by-digit for the ceiling case.
|
| |
| fl::i32 | isqrt32_floor (fl::i32 n) |
| | Integer square root using digit-by-digit algorithm Computes floor(sqrt(n)) for positive integers Uses only shifts, adds, and comparisons — no division.
|
| |
| template<typename PixelT, bool Overwrite> |
| void | renderDiscRow (PixelT *buf, int w, int py, fl::i32 d2_row, const DiscCtx< PixelT > &f) |
| | Render one scanline of a disc using incremental d².
|
| |
| template<typename PixelT, bool Overwrite> |
| void | renderRingRow (PixelT *buf, int w, int py, fl::i32 d2_row, const RingCtx< PixelT > &g) |
| | Render one scanline of a ring using incremental d² with phase-based scanning.
|
| |
| template<typename PixelT, bool Overwrite> |
| void | renderStrokeRow (PixelT *buf, int w, int py, fl::i32 cross_start, fl::i32 dot_start, const StrokeCtx< PixelT > &sc) |
| | Render one scanline of a stroke line using phase-based scanning.
|
| |
| template<typename Coord> |
| fl::i32 | toFixed8 (Coord val) |
| | Convert any Coord type to 8.8 fixed-point (fl::i32).
|
| |
| template<> |
| fl::i32 | toFixed8< double > (double val) |
| |
| template<> |
| fl::i32 | toFixed8< fl::s16x16 > (fl::s16x16 val) |
| |
| template<> |
| fl::i32 | toFixed8< float > (float val) |
| |
| template<> |
| fl::i32 | toFixed8< int > (int val) |
| |
| template<typename Coord> |
| fl::i32 | toQ16 (Coord val) |
| | Convert any Coord type to Q16.16 raw i32 for integer inner loops.
|
| |
| template<> |
| fl::i32 | toQ16< double > (double val) |
| |
| template<> |
| fl::i32 | toQ16< fl::s16x16 > (fl::s16x16 val) |
| |
| template<> |
| fl::i32 | toQ16< float > (float val) |
| |
| template<> |
| fl::i32 | toQ16< int > (int val) |
| |