13template <
typename RGB_T>
class IFont;
16
17
18
19
20
21
22
23
24
25template <
typename RGB_T =
RGB565>
34 virtual void end() = 0;
37 virtual bool resize(size_t newWidth, size_t newHeight) = 0;
39 virtual void setPixel(size_t x, size_t y, RGB_T color) = 0;
41 virtual RGB_T
getPixel(size_t x, size_t y)
const = 0;
43 virtual void scroll(
int dx,
int dy) = 0;
45 virtual void clear(RGB_T color = RGB_T(0)) = 0;
47 virtual void drawLine(size_t x0, size_t y0, size_t x1, size_t y1,
50 virtual void drawRect(size_t x, size_t y, size_t w, size_t h,
53 virtual void fillRect(size_t x, size_t y, size_t w, size_t h,
56 virtual void drawCircle(size_t x, size_t y, size_t r, RGB_T color) = 0;
58 virtual void fillCircle(size_t x, size_t y, size_t r, RGB_T color) = 0;
60 virtual void drawSprite(size_t x, size_t y,
const ISurface<RGB_T>& sprite,
61 RGB_T invisibleColor = RGB_T(0)) = 0;
63 virtual void clearSprite(size_t x, size_t y, ISurface<RGB_T>& sprite,
64 RGB_T clearColor = RGB_T(0)) = 0;
66 virtual void copySprite(size_t x, size_t y,
const ISurface<RGB_T>& sprite) = 0;
72 virtual void drawText(int16_t x, int16_t y,
const char* text,
73 RGB_T foreground, RGB_T background = RGB_T(0),
74 bool opaque =
false, uint8_t scale = 1,
75 uint8_t spacing = 1, uint8_t lineSpacing = 1) = 0;
80 virtual const uint8_t*
data()
const = 0;
Font rendering interface for TinyGPU-compatible framebuffers.
Definition: IFont.h:19
virtual ~ISurface()=default
Destroys the framebuffer interface.
virtual void fillRect(size_t x, size_t y, size_t w, size_t h, RGB_T color)=0
Fills a rectangle.
virtual size_t height() const =0
Returns the framebuffer height in pixels.
virtual void drawLine(size_t x0, size_t y0, size_t x1, size_t y1, RGB_T color)=0
Draws a line between two points.
virtual void copySprite(size_t x, size_t y, const ISurface< RGB_T > &sprite)=0
Copies pixels from the framebuffer into a sprite.
virtual void drawRect(size_t x, size_t y, size_t w, size_t h, RGB_T color)=0
Draws a rectangle outline.
virtual void fillCircle(size_t x, size_t y, size_t r, RGB_T color)=0
Fills a circle.
virtual bool resize(size_t newWidth, size_t newHeight)=0
Resizes the framebuffer surface.
virtual void clearSprite(size_t x, size_t y, ISurface< RGB_T > &sprite, RGB_T clearColor=RGB_T(0))=0
Clears the area covered by a sprite.
virtual void setPixel(size_t x, size_t y, RGB_T color)=0
Sets a pixel at the given position.
virtual void scroll(int dx, int dy)=0
Scrolls the framebuffer content by the specified offsets.
virtual void end()=0
Closes the framebuffer and releases resources.
virtual size_t size() const =0
Provides the total data size in bytes.
virtual void drawText(int16_t x, int16_t y, const char *text, RGB_T foreground, RGB_T background=RGB_T(0), bool opaque=false, uint8_t scale=1, uint8_t spacing=1, uint8_t lineSpacing=1)=0
Draws UTF-8 text using the configured font.
virtual void clear(RGB_T color=RGB_T(0))=0
Clears the framebuffer with a single color.
virtual size_t width() const =0
Returns the framebuffer width in pixels.
virtual RGB_T getPixel(size_t x, size_t y) const =0
Returns the pixel at the given position.
virtual IFont< RGB_T > & font()=0
Returns the currently set font for text rendering.
virtual bool begin()=0
Initializes the framebuffer surface.
virtual void drawCircle(size_t x, size_t y, size_t r, RGB_T color)=0
Draws a circle outline.
virtual void drawSprite(size_t x, size_t y, const ISurface< RGB_T > &sprite, RGB_T invisibleColor=RGB_T(0))=0
Draws a sprite using an optional transparent color.
virtual const uint8_t * data() const =0
Provides access to the framebuffer as a byte buffer.
RGB color stored in 16-bit RGB565 format.
Definition: RGB565.h:13
Definition: AVIWriter.h:9