Files
sumi/sketch.go
2025-12-18 16:16:23 -06:00

51 lines
701 B
Go

package main
import (
"github.com/gen2brain/raylib-go/raylib"
)
type Sketch struct {
layers []Layer
}
func (s *Sketch) Draw(ctx *RenderCtx) {
for _, layer := range s.layers {
layer.Draw(ctx)
}
}
type Layer interface {
Draw(ctx *RenderCtx)
}
/** Ports **/
type Ports map[string]Signal
func MakePorts() Ports {
return make(Ports)
}
/**
* materialize current value for all ports
**/
func (p Ports) Eval(t float64) map[string]float64 {
out := make(map[string]float64, len(p))
for name, sig := range p {
out[name] = sig.Eval(t)
}
return out
}
/** RenderCtx **/
type RenderCtx struct {
Width int32
Height int32
Time float64
Ports map[string]float64
Cam rl.Camera2D
}