libepaper 2.0.0
A C++23 library for controlling Waveshare e-paper displays on Raspberry Pi, featuring transparent sleep/wake management and a fluent builder API.
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations
commands.hpp File Reference

Immutable command structures for drawing operations. More...

#include "epaper/core/geometry.hpp"
#include "epaper/core/types.hpp"
#include "epaper/graphics/font.hpp"
#include <cstdint>
#include <string>
#include <string_view>
Include dependency graph for commands.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  epaper::LineCommand
 Command for drawing a line between two points. More...
 
struct  epaper::RectangleCommand
 Command for drawing a rectangle. More...
 
struct  epaper::CircleCommand
 Command for drawing a circle. More...
 
struct  epaper::PointCommand
 Command for drawing a point (pixel or multi-pixel dot). More...
 
struct  epaper::TextCommand
 Command for drawing text. More...
 

Namespaces

namespace  epaper
 

Enumerations

enum class  epaper::TextContent { epaper::String , epaper::Number , epaper::Decimal }
 Content type for text rendering. More...
 

Detailed Description

Immutable command structures for drawing operations.

Defines value types representing drawing commands. Each command is a plain struct (no methods beyond constructors) that encapsulates all parameters needed to perform a drawing operation.

Design Pattern:

Command Pattern (Data-Oriented)
├─ Immutable: All members const or effectively const after construction
├─ Value Semantics: Cheap to copy, no ownership issues
├─ Serializable: POD-like structs (could be written to binary format)
└─ Decoupled: Commands independent of execution (Display handles rendering)

Rationale:

Lifetime:

Thread Safety: