ISF15ACP4 Driver 1.0.0
API reference
Loading...
Searching...
No Matches
isf15acp4_graphics_context.ipp
Go to the documentation of this file.
1#ifndef ISF15ACP4_GRAPHICS_CONTEXT_HEADER_INCLUDED
2#error "isf15acp4_graphics_context.ipp must be included from isf15acp4_graphics_context.hpp"
3#endif
4
5namespace isf15acp4 {
6
8 : variant_(variant), backend_(backend), canvas_(variant) {}
9
10inline void GraphicsContext::Clear(Color565 color) noexcept {
11 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.fill_screen) {
12 presenter_.fill_screen(presenter_.context, color);
13 return;
14 }
15 canvas_.Clear(color);
16}
17
18inline void GraphicsContext::SetPixel(uint8_t x, uint8_t y, Color565 color) noexcept {
19 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.draw_pixel) {
20 presenter_.draw_pixel(presenter_.context, x, y, color);
21 return;
22 }
23 canvas_.SetPixel(x, y, color);
24}
25
26inline Color565 GraphicsContext::GetPixel(uint8_t x, uint8_t y) const noexcept {
27 return canvas_.GetPixel(x, y);
28}
29
30inline void GraphicsContext::DrawHLine(uint8_t x0, uint8_t x1, uint8_t y, Color565 color) noexcept {
31 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.draw_line) {
32 presenter_.draw_line(presenter_.context, {x0, y}, {x1, y}, color);
33 return;
34 }
35 canvas_.DrawHLine(x0, x1, y, color);
36}
37
38inline void GraphicsContext::DrawVLine(uint8_t x, uint8_t y0, uint8_t y1, Color565 color) noexcept {
39 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.draw_line) {
40 presenter_.draw_line(presenter_.context, {x, y0}, {x, y1}, color);
41 return;
42 }
43 canvas_.DrawVLine(x, y0, y1, color);
44}
45
46inline void GraphicsContext::DrawRect(const Rect& rect, Color565 color) noexcept {
47 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.draw_rect) {
48 presenter_.draw_rect(presenter_.context, rect, color, false);
49 return;
50 }
51 canvas_.DrawRect(rect, color);
52}
53
54inline void GraphicsContext::FillRect(const Rect& rect, Color565 color) noexcept {
55 if (backend_ == GraphicsBackend::HardwareDirect && presenter_.draw_rect) {
56 presenter_.draw_rect(presenter_.context, rect, color, true);
57 return;
58 }
59 canvas_.FillRect(rect, color);
60}
61
62inline void GraphicsContext::DrawChar(uint8_t x, uint8_t y, char ch, Color565 color,
63 Color565 bg) noexcept {
64 canvas_.DrawChar(x, y, ch, color, bg);
65}
66
67inline void GraphicsContext::DrawString(uint8_t x, uint8_t y, const char* text, Color565 color,
68 Color565 bg) noexcept {
69 canvas_.DrawString(x, y, text, color, bg);
70}
71
72inline void GraphicsContext::BlitRgb565(uint8_t x, uint8_t y, uint8_t src_width, uint8_t src_height,
73 const Color565* src) noexcept {
74 canvas_.BlitRgb565(x, y, src_width, src_height, src);
75}
76
77} // namespace isf15acp4
void FillRect(const Rect &rect, Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:54
void DrawHLine(uint8_t x0, uint8_t x1, uint8_t y, Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:30
void DrawRect(const Rect &rect, Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:46
void Clear(Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:10
Color565 GetPixel(uint8_t x, uint8_t y) const noexcept
Definition isf15acp4_graphics_context.ipp:26
void DrawVLine(uint8_t x, uint8_t y0, uint8_t y1, Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:38
void DrawChar(uint8_t x, uint8_t y, char ch, Color565 color, Color565 bg=colors::Black) noexcept
Definition isf15acp4_graphics_context.ipp:62
GraphicsContext(ProductVariant variant, GraphicsBackend backend) noexcept
Definition isf15acp4_graphics_context.ipp:7
void SetPixel(uint8_t x, uint8_t y, Color565 color) noexcept
Definition isf15acp4_graphics_context.ipp:18
void DrawString(uint8_t x, uint8_t y, const char *text, Color565 color, Color565 bg=colors::Black) noexcept
Definition isf15acp4_graphics_context.ipp:67
void BlitRgb565(uint8_t x, uint8_t y, uint8_t src_width, uint8_t src_height, const Color565 *src) noexcept
Definition isf15acp4_graphics_context.ipp:72
Definition isf15acp4.hpp:19
ProductVariant
Supported NKK SmartDisplay OLED product variants.
Definition isf15acp4_types.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