ISF15ACP4 Driver 1.0.0
API reference
Loading...
Searching...
No Matches
isf15acp4_graphics_surface.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <cstddef>
9#include <cstdint>
10
11#include "isf15acp4_types.hpp"
12
13namespace isf15acp4 {
14
22enum class GraphicsBackend : uint8_t {
24 BuiltinCanvas = 0,
28 Animator = 2
29};
30
39template <typename Derived>
41public:
42 void Clear(Color565 color) noexcept { static_cast<Derived*>(this)->Clear(color); }
43 void SetPixel(uint8_t x, uint8_t y, Color565 color) noexcept {
44 static_cast<Derived*>(this)->SetPixel(x, y, color);
45 }
46 [[nodiscard]] Color565 GetPixel(uint8_t x, uint8_t y) const noexcept {
47 return static_cast<const Derived*>(this)->GetPixel(x, y);
48 }
49 void DrawHLine(uint8_t x0, uint8_t x1, uint8_t y, Color565 color) noexcept {
50 static_cast<Derived*>(this)->DrawHLine(x0, x1, y, color);
51 }
52 void DrawVLine(uint8_t x, uint8_t y0, uint8_t y1, Color565 color) noexcept {
53 static_cast<Derived*>(this)->DrawVLine(x, y0, y1, color);
54 }
55 void DrawRect(const Rect& rect, Color565 color) noexcept {
56 static_cast<Derived*>(this)->DrawRect(rect, color);
57 }
58 void FillRect(const Rect& rect, Color565 color) noexcept {
59 static_cast<Derived*>(this)->FillRect(rect, color);
60 }
61 void DrawChar(uint8_t x, uint8_t y, char ch, Color565 color, Color565 bg = colors::Black) noexcept {
62 static_cast<Derived*>(this)->DrawChar(x, y, ch, color, bg);
63 }
64 void DrawString(uint8_t x, uint8_t y, const char* text, Color565 color,
65 Color565 bg = colors::Black) noexcept {
66 static_cast<Derived*>(this)->DrawString(x, y, text, color, bg);
67 }
68 void BlitRgb565(uint8_t x, uint8_t y, uint8_t src_width, uint8_t src_height,
69 const Color565* src) noexcept {
70 static_cast<Derived*>(this)->BlitRgb565(x, y, src_width, src_height, src);
71 }
72
73 [[nodiscard]] uint8_t Width() const noexcept { return static_cast<const Derived*>(this)->Width(); }
74 [[nodiscard]] uint8_t Height() const noexcept { return static_cast<const Derived*>(this)->Height(); }
75 [[nodiscard]] std::size_t ByteSize() const noexcept {
76 return static_cast<const Derived*>(this)->ByteSize();
77 }
78 [[nodiscard]] const Color565* Data() const noexcept {
79 return static_cast<const Derived*>(this)->Data();
80 }
81 [[nodiscard]] Color565* Data() noexcept { return static_cast<Derived*>(this)->Data(); }
82 [[nodiscard]] GraphicsBackend Backend() const noexcept {
83 return static_cast<const Derived*>(this)->Backend();
84 }
85
86protected:
87 GraphicsSurface() = default;
88 ~GraphicsSurface() = default;
89};
90
91} // namespace isf15acp4
Drives timed frame updates on top of a GraphicsContext.
Definition isf15acp4_animator.hpp:22
CRTP interface every graphics backend must implement.
Definition isf15acp4_graphics_surface.hpp:40
void DrawHLine(uint8_t x0, uint8_t x1, uint8_t y, Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:49
void SetPixel(uint8_t x, uint8_t y, Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:43
void BlitRgb565(uint8_t x, uint8_t y, uint8_t src_width, uint8_t src_height, const Color565 *src) noexcept
Definition isf15acp4_graphics_surface.hpp:68
void DrawRect(const Rect &rect, Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:55
uint8_t Width() const noexcept
Definition isf15acp4_graphics_surface.hpp:73
void DrawChar(uint8_t x, uint8_t y, char ch, Color565 color, Color565 bg=colors::Black) noexcept
Definition isf15acp4_graphics_surface.hpp:61
Color565 GetPixel(uint8_t x, uint8_t y) const noexcept
Definition isf15acp4_graphics_surface.hpp:46
void Clear(Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:42
const Color565 * Data() const noexcept
Definition isf15acp4_graphics_surface.hpp:78
GraphicsBackend Backend() const noexcept
Definition isf15acp4_graphics_surface.hpp:82
void DrawVLine(uint8_t x, uint8_t y0, uint8_t y1, Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:52
void FillRect(const Rect &rect, Color565 color) noexcept
Definition isf15acp4_graphics_surface.hpp:58
Color565 * Data() noexcept
Definition isf15acp4_graphics_surface.hpp:81
std::size_t ByteSize() const noexcept
Definition isf15acp4_graphics_surface.hpp:75
void DrawString(uint8_t x, uint8_t y, const char *text, Color565 color, Color565 bg=colors::Black) noexcept
Definition isf15acp4_graphics_surface.hpp:64
uint8_t Height() const noexcept
Definition isf15acp4_graphics_surface.hpp:74
Shared types, constants, and color utilities for NKK SmartDisplay OLED drivers.
constexpr Color565 Black
Definition isf15acp4_types.hpp:116
Definition isf15acp4.hpp:19
uint16_t Color565
16-bit RGB565 color value (R5G6B5).
Definition isf15acp4_types.hpp:50
GraphicsBackend
Selectable graphics engine used by SmartDisplay and UI helpers.
Definition isf15acp4_graphics_surface.hpp:22
Axis-aligned rectangle in display coordinates (inclusive bounds).
Definition isf15acp4_types.hpp:96