Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/corytodd/rndl
Rendering engine for LED Panels
https://github.com/corytodd/rndl
Last synced: 3 days ago
JSON representation
Rendering engine for LED Panels
- Host: GitHub
- URL: https://github.com/corytodd/rndl
- Owner: corytodd
- License: mit
- Created: 2024-02-05T01:31:57.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-06-29T14:14:01.000Z (5 months ago)
- Last Synced: 2024-06-29T15:29:27.211Z (5 months ago)
- Language: C
- Size: 80.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rndl
A WS2812B LED project focused on rendering.
## Build
This library is built using ESP-IDF on an esp32-wroom-32s. I am using a few
WS2812B in my setup.Once you have ESP-IDF on your system and have wired up your panels, build and
flash using these commands.```
make
make flash
```## API Usage
1. Create your driver and configuration in static memory
2. Create your surface in static memory
3. Draw using the surface primitives
4. Render with `surface->render(surface)`## Design
The graphics engine is designed in layers. At each layer N, only the
immediate N-1 layer may be accessed. In this coordinate system,
origin in the upper left corner of the surface. X and Y increase
right and down, respectively.```
Application
↓
Graphics API
↓
Driver API
↓
Hardware
```The application uses the Graphics API to draw pixels. At this layer,
only Graphics objects may be used.- Pixel: a single point with color and amplitude
- Line: a pair of points
- Surface: the state of a collection of pixels in a 2D spaceThe Graphics API maintains an internal buffer of its current 2D state.
The Driver API provides primitives for encoding pixels into a linear
index. The Graphics API is responsible for pushing this buffer to the driverThe Driver API is responsible for encoding and transmitting data to
the target Hardware. Data is encoded into a wire format and then
sent to the Hardware over an interface.