Redpowder SDK v0.3.0
SDK para desenvolvimento userland no RedstoneOS
📋 Índice
✨ Filosofia
- No-std: Zero dependências de runtime
- Type-safe: Handles tipados, erros explícitos
- Capability-based: Segue modelo do kernel
- GFX-Powered: Tipos gráficos completos via
gfx_types - Math-Included: Funções matemáticas via
rdsmath
📦 Instalação
[]
= { = "../sdk/redpowder" }
📁 Módulos
| Módulo | Função |
|---|---|
syscall |
Invocação de syscalls (inline asm) |
console |
print!, println!, reboot, poweroff |
fs |
Arquivos e diretórios (File, Dir, stat) |
process |
Processos (exit, spawn, yield) |
mem |
Memória (alloc, free, map) |
ipc |
IPC (Port, send, recv) |
time |
Tempo (sleep, clock) |
io |
Handle, Rights |
event |
Eventos e polling |
sys |
sysinfo, debug |
graphics |
Framebuffer, canvas, desenho |
input |
Mouse, teclado, touch |
window |
Janelas (protocolo Firefly) |
gfx |
Re-export completo de gfx_types |
math |
Re-export de rdsmath |
🚀 Uso Rápido
use *;
pub extern "C" !
🎨 Gráficos
Framebuffer Direto
use ;
let mut fb = new?;
fb.clear;
fb.fill;
Canvas (Buffer Local)
use ;
let mut buffer = vec!;
let mut canvas = new;
canvas.clear;
canvas.fill_rect;
canvas.stroke_rect;
canvas.line;
canvas.stroke_circle;
Primitivas de Desenho
use ;
use *;
// Iteradores sobre os pontos
for point in draw_line
for point in draw_circle
🪟 Janelas
use ;
use *;
// Criar janela
let mut window = create?;
// Ou com flags
let mut window = create_with_flags?;
// Desenhar no buffer
window.clear;
window.fill_rect;
// Apresentar
window.present?;
// Loop de eventos
loop
⌨️ Input
Mouse
use ;
let mouse = poll_mouse?;
println!;
if mouse.left_button
if mouse.is_pressed
Teclado
use ;
// Ler um único evento
if let Some = read_key?
// Ler múltiplos eventos
let mut events = ;
let count = poll_keyboard?;
for event in &events
🔢 Math (via rdsmath)
use *;
// ou
use *;
// Constantes
let pi = PI;
let tau = TAU;
// Trigonometria
let s = sinf;
let c = cosf;
let t = tanf;
let a = atan2f;
// Raiz quadrada
let root = sqrtf;
// Interpolação
let value = lerpf; // = 50.0
let smooth = smoothstepf;
// Clamp
let clamped = clampf; // = 100.0
let sat = saturatef; // = 1.0
// Arredondamento
let floor = floorf; // = 3.0
let ceil = ceilf; // = 4.0
let round = roundf; // = 4.0
let abs = absf; // = 5.0
📝 Changelog
v0.3.0 (Current)
- Refatoração completa dos módulos
graphics,windoweinput - Integração total com
gfx_typesv0.2.0 - Integração com
rdsmathv0.1.0 - Estrutura modular (submódulos especializados)
- Novos tipos:
Canvas,Framebuffer, primitivas de desenho - Re-exports de tipos gráficos no prelude
v0.2.0
- Adição de módulo de janelas
- Suporte a IPC
v0.1.0
- Versão inicial
📄 Licença
MIT License - RedstoneOS Team